数学建模实验作业参考例子
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例1.1 求解线性方程组
命令如下:
>> a=[2,3,-1;8,2,3;45,3,9];
>> b=[2;4;23];
>> x=inv(a)*b
x =
0.5531
0.2051
-0.2784
例1.2 绘制正弦曲线和余弦曲线。
命令如下:
>> x=[0:0.5:360]*pi/180;
>> plot(x,sin(x),x,cos(x)) ;
例1.3 输入10个学生的成绩并对成绩按升序排序。
>>g=[45 56 34 24 76 89 32];
>>f=sort(g)
f =
24 32 34 45 56 76 89
例1.4 设有常微分方程初值问题,试求其数值解,并与精确解相比较。
(1)建立函数文件funt.m:
function yp=funt(t,y)
yp=(y^2-t-2)/4/(t+1);
(2)求解微分方程:
t0=0;tf=10;y0=2;
[t,y]=ode23('funt',[t0,tf],y0);
y1=sqrt(t+1)+1;
t'
例2.1 计算表达式的值,并将结果赋给变量x,然后显示出结果。
在MA TLAB命令窗口输入命令:
>>x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) %计算表达式的值
2.2 A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
例2.3 分别建立3×3、3×2和与矩阵A同样大小的零矩阵。
(1)建立一个3×3零矩阵:zeros(3)
>> zeros(3)
ans =
0 0 0
0 0 0
0 0 0
)建立一个3×2零矩阵:zeros(3,2)
>> zeros(3,2)
ans =
0 0
0 0
0 0
(3)建立与矩阵A同样大小零矩阵:zeros(size(A))
>> A=[2 4 7 5;7 8 9 10];zeros(size(A))
ans =
0 0 0 0
0 0 0 0
例2.4 产生5阶随机方阵A,其元素为[10,90]区间的随机整数,然后判断A的元素是否能被3整除。
(1) 生成5阶随机方阵A。
>> A=fix((90-10+1)*rand(5)+10)
A =
86 71 59 42 14
28 46 74 85 38
59 11 84 84 75
49 76 69 43 10
82 46 24 82 21
(2) 判断A的元素是否可以被3整除。
>> P=rem(A,3)==0
P =
0 0 0 1 0
0 0 0 0 0
0 0 1 1 1
0 0 1 0 0
0 0 1 0 1
例3.1 建立一个命令文件将变量a,b的值互换,然后运行该命令文件。
首先建立命令文件并以文件名exch.m存盘:
clear;
a=1:10; b=[11,12,13,14;15,16,17,18];
c=a;a=b;b=c;
a
b
ant
a =
11 12 13 14
15 16 17 18
b =
1 2 3 4 5 6 7 8 9 10
例3.2 建立一个函数文件将变量a,b的值互换,然后在命令窗口调用该函数文件。
首先建立函数文件fexch.m:
function [a,b]=fexch(a,b) % exch
c=a;a=b;b=c;
clear;
x=1:10; y=[11,12,13,14;15,16,17,18];
[x,y]=fexch(x,y)
例3.5 输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为数字字符则输出其对应的数值,若为其他字符则原样输出。
c=input('请输入一个字符','s');
if c>='A' & c<='Z'
disp(setstr(abs(c)+1));
elseif c>='a'& c<='z'
disp(setstr(abs(c)-1));
elseif c>='0'& c<='9'
disp(abs(c)-abs('0'));
else
disp(c);
end
例3.6 某商场对顾客所购买的商品实行打折销售,
已知打折标准为:
商品价格小于200元时,折扣率为0;
商品价格大于或等于200元且小于500时,折扣率为0.03;
商品价格大于或等于500且小于1000元时,折扣率为0.05;
商品价格大于或等于1000且小于2500元时,折扣率为0.08;
商品价格大于或等于2500且小于5000元时,折扣率为0.1;
商品价格大于或等于5000元时,折扣率为0.14;
求所售商品的实际销售价格。
>>price=input('请输入商品价格');
switch fix(price/100)
case {0,1}
rate=0;
case {2,3,4}
rate=3/100;
case num2cell(5:9)
rate=5/100;
case num2cell(10:24)
rate=8/100;
case num2cell(25:49)
rate=10/100;
otherwise
rate=14/100;
end
price=price*(1-rate)
请输入商品价格890
price =
845.5000
例3.7 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。
程序如下:
A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12];
try
C=A*B;
catch
C=A.*B;
end
C
lasterr %显示出错原因
C =