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

发布 2020-04-15 15:40:28 阅读 6599

例1.1 求解线性方程组。

命令如下:> a=[2,3,-1;8,2,3;45,3,9];

> b=[2;4;23];

> x=inv(a)*bx =

例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 =

例1.4 设有常微分方程初值问题,试求其数值解,并与精确解相比较。

(1)建立函数文件。

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,然后显示出结果。

在matlab命令窗口输入命令:

>>x=(5+cos(47*pi/180))/1+sqrt(7)-2*i) %计算表达式的值。

2.2 a=[1 2 3;4 5 6;7 8 9]a =

例2.3 分别建立×2和与矩阵a同样大小的零矩阵。

1)建立一个3×3零矩阵:zeros(3)

> zeros(3)ans =

建立一个3×2零矩阵:zeros(3,2)

> zeros(3,2)ans =

3)建立与矩阵a同样大小零矩阵:zeros(size(a))

> a=[2 4 7 5;7 8 9 10];zeros(size(a))ans =

例2.4 产生5阶随机方阵a,其元素为[10,90]区间的随机整数,然后判断a的元素是否能被3整除。

(1) 生成5阶随机方阵a。

> a=fix((90-10+1)*rand(5)+10)a =

2) 判断a的元素是否可以被3整除。

>> p=rem(a,3)==0p =

例3.1 建立一个命令文件将变量a,b的值互换,然后运行该命令文件。

首先建立命令文件并以文件名存盘:

clear;

a=1:10; b=[11,12,13,14;15,16,17,18];

c=a;a=b;b=c;ab

anta =

b =例3.2 建立一个函数文件将变量a,b的值互换,然后在命令窗口调用该函数文件。

首先建立函数文件。

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'))

elsedisp(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 rate=0;

case 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;

endprice=price*(1-rate)

请输入商品**890

price =

例3.7 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。

程序如下:a=[1,2,3;4,5,6]; b=[7,8,9;10,11,12];

tryc=a*b;

catchc=a.*b;endc

lasterr %显示出错原因。c =

ans =error using ==

inner matrix dimensions must agree.

例3.8 已知求y的表达式,当n=100时,求y的值。

程序如下 y=0;n=100;

for i=1:n

y=y+1/i/i;endy

补充知识: 在实际matlab编程中,为提高程序的执行速度,常用向量运算来代替循环操作:

n=100; i=1:n;

f=1./i.^2;

y=sum(f)

例3.9 求定积分。

程序如下:a=0;b=3*pi;n=1000; h=(b-a)/n;

x=a:h:b; f=exp(-0.5*x).*sin(x+pi/6);

for i=1:n

s(i)= f(i)+f(i+1))*h/2;

ends=sum(s)

补充知识:事实上,matlab提供了有关数值积分的标准函数,实际应用中可直接调用这些函数求数值积分。

例3.10 已知5个学生4门功课的成绩,求每名学生的总成绩。

程序如下:s=0;

a=[65,76,56,78;98,83,74,85;76,67,78,79;98,58,42,73;67,89,76,87]

for k=a

s=s+k;

enddisp(s');

结果为:a =

例3.11 产生一个长度为6的调和数列。

程序如下:x=zeros(1,6);

i=1;while i<=6

x(i)=1/i;

i=i+1;

endformat rat %使用分数表示数值。

disp(x

例3.12 用while语句实现例3.8。

数学建模实验作业

实验二 matlab程序设计。一 实验目的。熟悉matlab软件环境,掌握matlab软件编程 二 实验内容与要求。1 matlab工作环境 2 变量 数组与矩阵 3 程序设计 4 内部函数与自定义函数 三 实验习题。1 建立矩阵a,然后找出大于4的元素的位置。2 产生5阶随机方阵a,其元素为 10...

数学建模作业实验

图论组合优化实验。解 分类讨论 只用一台,花钱 购置 2.5 维护 0.3 0.5 0.8 1.2 四年后卖了得1.1 共支出 2.5 0.3 0.5 0.8 1.2 1.1 4.2万元 用两台 分两种 第一 各用两年,购置 2.5 2.8 维护 2 0.3 0.5 卖了得 2 1.6 共支出 2....

数学建模作业实验

6多元分析试验。解 1 由题可以得出如下的r程序 则可以得出y关于x1 x2 x3的线性回归方程 y 10.12799 0.05140x1 0.58695 x2 0.28685x3 由上述的结果可以得知方程的常量与x2显著性为 表示十分的显著,x3显著性为 表示显著,而x2为不显著。由此结果可以看出...