数学建模Matlab上机实训题目答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学建模Matlab上机实训题目
一、矩阵及数组操作:
1.利用基本矩阵产生3×3和15×8的单位矩阵、
解:
全1矩阵、
解:
全0矩阵、
解:
均匀分布随机矩阵([-1,1]之间)、解:
正态分布矩阵(均值为1,方差为4)
解:
2.利用fix及rand函数生成[0,10]上的均匀分布的10×10的整数随机矩阵a,然后统计a中大于等于5的元素个数。
解:
3.在给定的矩阵中删除含有整行内容全为0的行,删除整列内容全为0的列。解:
a=[1 2 0 4;0 0 0 0;5 6 0 8; 9 1 0 2];
a(:,find(sum(abs(a'))==0))=[];
a(find(sum(abs(a'))==0),:)=[]
二、绘图:
4.在同一图形窗口画出下列两条曲线图像:
y1=2x+5;y2=x^2-3x+1,
并且用legend标注。
解:
5.画出下列函数的曲面及等高线:
z=x^2+y^2+sin(xy).
解:
三、程序设计:
6.编写程序计算(x在[-3,3],间隔0.01)解:
7.有一列分数序列:
求前15项的和。
解:
8.用至少三种方法编写函数实现求任意整数n的阶乘。解:
方法一:
function f=factor(n)
if n<=1;
f=1;
else
f=factor(n-1)*n;
end
方法二:
function result=fa(n)
n=input('please input n:');
result=1;
for i=1:n;
result=result*i;
end
方法三:
n=input('please input n:');
x=1:n;
prod(x)
please input n:5
ans =
120
9*.将任意偶数m写成两个素数p1、p2的和(试着写出所有的m=p1+p2的可能形式)。解:
function y=f(n);
n=input('请输入n的值:');
if mod(n,2);
error('n不是素数.请重新运行程序.')
else
for m=1:n;
for k=m:n;
if (isprime(m))&(isprime(k))&(m+k==n);
disp([num2str(n),'=',num2str(m),'+',num2str(k)]);
break;
end;
end;
end;
end;
10*.是否任意3的倍数m可以写成两个素数p1、p2、p3的和(试着写出所有的m=p1+p2+p3 的可能形式)?
解:
function y=fg(n);
n=input('请输入n的值:');
if mod(n,3);
error('n不是3的倍数.请重新运行.')
elseif n<6;
error('n必须不小于6.')
else
for m=1:n;
for k=m:n;
for p=k:n
if(isprime(m))&(isprime(k))&(isprime(p))&(m+k+p==n);
disp([num2str(n),'=',num2str(m),'+',num2str(k),'+',num2str(p)]);
break;
end;
end;
end;
end;
end;
四、数据处理与拟合初步:
分别采用y=c1+c2e^(-t)和y=d1+d2te^(-t)进行拟合,并画出拟合曲线进行对比。解:
12.计算下列定积分:Z1:
解:
function f=jifenl(x)
f=exp(-2*x);
[z1,n]=quad(@jifen1,0,2)
Z2:
解:x=0:0.01:2;
z2=exp(2*x);
trapz(x,z2)
ans =
26.8000
Z3:
解:
t=-1:0.01:1;
z3=x.^2-3*x+0.5;
trapz(x,z3)
ans =
-2.3333
13.微分方程组
当t=0时,x1(0)=1,x2(0)=-0.5,求微分方程t在[0,25]上的解,并画出相空间轨道图像。解:
t=0:0.01:25;
x=1/2+1/2*exp(-t);
y=1/8+1/6*exp(-t)-19/24*exp(-4*t);
plot(t,x,t,y)
14.设通过测量得到时间t与变量y的数据:
t=[0 0.3 0.8 1.1 1.6 2.3];
y=[0.5 0.82 1.14 1.25 1.35 1.41];
分别采用多项式:y=a0+a1t+a2t2
和指数函数y=b0+b1e-t+b2te-t
进行拟合,并计算均方误差、画出拟合效果图进行比较。解:
t=[0 0.3 0.8 1.1 1.6 2.3];
y=[0.5 0.82 1.14 1.25 1.35 1.41];
tt=0:0.01:2.3;
a=polyfit(t,y,2)
yy1=polyval(a,tt);
z1=polyval(a,t);
wucha1=sqrt(sum((z1-y).^2))
B=[ones(size(t')) exp(-t)' (t.*exp(-t))'];