数学建模编程-重要知识点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.建立符号变量和符号常量
MATLAB 提供了两个建立符号对象的函数:sym 和syms ,两个函数的用法不同。 (1) sym 函数
sym 函数用来建立单个符号量,一般调用格式为: 符号量名=sym('符号字符串')
该函数可以建立一个符号量,符号字符串可以是常量、变量、函数或表达式。
应用sym 函数还可以定义符号常量,使用符号常量进行代数运算时和数值常量进行的运算不同。下面的命令用于比较符号常量与数值常量在代数运算时的差别。 (2) syms 函数
函数sym 一次只能定义一个符号变量,使用不方便。MATLAB 提供了另一个函数syms ,一次可以定义多个符号变量。syms 函数的一般调用格式为: syms 符号变量名1 符号变量名2 … 符号变量名n
用这种格式定义符号变量时不要在变量名上加字符串分界符(‘),变量间用空格而不要用逗号分隔。
矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=187624323A ,矩阵⎥⎥
⎥⎦
⎤
⎢⎢⎢⎣⎡=333222111B ;分别求出A x B 及A 与B 中对应元素之间的乘积的程序语句。
答案:A=[3 2 3;4 2 6;7 8 1];B=[1 1 1;2 2 2;3 3 3];
>> A*B,A.*B
ans =
16 16 16 26 26 26 26 26 26
ans =
3 2 3 8
4 12
21 24 3
方阵的行列式:det (A ) 方阵的逆:inv (A )
方阵的特征值与特征向量:[V ,D]=eig[A]
例 绘制y=x3的函数图、对数坐标图、半对数坐标图
x=[1:1:100];
subplot(2,3,1);
plot(x,x.^3);
grid on;
title 'plot-y=x^3';
subplot(2,3,2);
loglog(x,x.^3);
grid on;
title 'loglog-logy=3logx';
subplot(2,3,3);
plotyy(x,x.^3,x,x);
grid on;
title 'plotyy-y=x^3,logy=3logx';
subplot(2,3,4);
semilogx(x,x.^3);
grid on;
title 'semilogx-y=3logx';
subplot(2,3,5);
semilogy(x,x.^3);
grid on;
title 'semilogy-logy=x^3';
在数据处理和分析应用的其他函数
下面是矩阵操作的一些例子:
>>a=[1,4,6,8,10] %一维矩阵>>a(3) % a的第三个元素
ans =
6
»x =[1 2 3 4 5 6 7 8
4 5 6 7 8 9 10 11]; %二维2x8 矩阵» x(3) % x的第三个元素
ans =
2
» x([1 2 5]) % x的第一、二、五个元素
ans =
1 4 3
>> x(2,3) % x的第二行第三列的元素
ans =
6
x(1:5) % x的第前五个元素
ans =
1 4
2 5 3
» x(10:end) % x的第十个元素后的元素
ans =
8 6 9 7 10 8 11
» x(10:-1:2) % x的第十个元素和第二个元素的倒排
ans =
8 5 7 4 6 3 5 2 4
» x(find(x>5)) % x中大于5的元素
ans =
6 7 8 6 9 7 10 8 11 » x(4)=100 %给x的第四个元素重新给值
x =
1 2 3 4 5 6 7 8
4 100 6 7 8 9 10 11
» x(3)=[] % 删除第三个元素(不是二维数组)
x =
Columns 1 through 12
1 4 100 3 6 4 7 5 8 6 9 7
Columns 13 through 15
10 8 11
» x(16)=1 % 加入第十六个元素
x =
Columns 1 through 12
1 4 100 3 6 4 7 5 8 6 9 7
Columns 13 through 16
10 8 11 1
当元素很多的时候,则须采用以下的方式:
» x=(1:2.5:120); % 以:起始值=1,增量值=2,终止值=120的矩阵
例建立矩阵A,然后找出大于4的元素的位置。
(1) 建立矩阵A。
A=[4,-65,-54,0,6;56,0,67,-45,0]
(2) 找出大于4的元素的位置。
find(A>4)
例3-1 分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。
程序1:
首先建立命令文件并以文件名f2c.m存盘。
clear; %清除工作空间中的变量
f=input('Input Fahrenheit temperature:');
c=5*(f-32)/9
然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,执行情况为:Input Fahrenheit temperature:73
c =
22.7778
例3-2 输入x,y的值,并将它们的值互换后输出。
程序如下:
x=input('Input x please.');
y=input('Input y please.');
z=x;
x=y;
y=z;
disp(x);
disp(y);
例3-3 求一元二次方程ax2 +bx+c=0的根。
程序如下:
a=input('a=?');
b=input('b=?');
c=input('c=?');
d=b*b-4*a*c;
x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];
disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);
例3-4 计算分段函数的值。
程序如下:
x=input('请输入x的值:');
if x<=0
y= (x+sqrt(pi))/exp(2);
else
y=log(x+sqrt(1+x*x))/2;
end
y