数学建模实验作业参考例子

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 =

相关文档
最新文档