数学建模上机练习习题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习1基础练习
一、矩阵及数组操作:
1.利用基本矩阵产生3×3和15×8的单位矩阵、全1矩阵、全0矩阵、均匀分布随机矩阵([-1,1]之间)、正态分布矩阵(均值为1,方差为4)。
A=eye(3) B=eye(15,8)C=ones(3)D=ones(15,8)E=zeros (3) F=zeros(15,8) G=(-1+(1-(-1))*rand(3)) H=1+sqrt(4)*randn(5)
2.利用fix及rand函数生成[0,10]上的均匀分布的10×10的整数随机矩阵a,然后统计a中大于等于5的元素个数
a=fix(0+(10-0)*rand(10));
K=find(a>=5);
Num=length(K)或者num=sum(sum(a>=5))
num =
53
3.在给定的矩阵中删除含有整行内容全为0的行,删除整列内容全为0的列。
如已给定矩阵A在给定的矩阵中删除含有整行内容全为0的行
在命令窗口中输入A(find(sum(abs(A'))==0),:)=[];
删除整列内容全为0的列。A(:,find(sum(abs(A'))==0))=[];
二、绘图:
4.在同一图形窗口画出下列两条曲线图像: y1=2x+5; y2=x ^2-3x+1, 并且用legen d标注 x=0:0.01:10; y1=2*x+5;
y 2=x.^2-3*x+1; plot(x,y 1,x,y2,'r') leg en d('y 1', 'y2')
12345678910
-1001020304050607080
5.画出下列函数的曲面及等高线: z=x^2+y^2+sin(xy). 在命令窗口输入:
[x,y]=meshgrid(0:0.25:4*pi);
z=x.^2+y.^2+sin(x.*y);
contour3(x,y,z);
meshc(x,y,z)
5
10
15
5
10
15
100
200
300
400
三、程序设计:
6.编写程序计算(x在[-3,3],间隔0.01)
建立M文件d.m
x=input('请输入x的值:');
if x>=-3&x<-1
y=(-x.^2-4*x-3)/2;
elseif x>=-1&x<1
y=-x.^2+1;
elseif x>=1&x<=3
y=(-x.^2+4*x-3)/2;
else
y='error'
end
y
在命令窗口输入x 的值:
7.有一列分数序列:
求前15项的和。
a=1;
b=2;
sum=0;
fork=1:15
c=b/a;
sum=sum+c;
t=b;
b=a+b;
a=t;
end
sum
sum =
24.5701
8.用至少三种方法编写函数实现求任意整数n的阶乘。方法一:
function f=factor(n)
if n<=1
f=1;
else
f=factor(n-1)*n;
end
方法二:functionresult=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)
9.将任意大于6的偶数m写成两个素数p1、p2的和(试着写出所有的m=p1+p2的可能形式)。
解:
functiony=f(n);
n=input('请输入n的值:');
if mod(n,2);
error('n不是素数.请重新运行程序.')
elseif n<=6;
error('n必须大于6.请重新运行程序.')
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
的可能形式)?
解:functiony=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;
四、数据处理与拟合初步:
11.通过测量得到一组数据:
分别采用y=c1+c2e^(-t)和y=d1+d2te^(-t)进行拟合,并画出拟合曲线进行对比。