数学建模matlab作业.docx
《数学建模matlab作业.docx》由会员分享,可在线阅读,更多相关《数学建模matlab作业.docx(11页珍藏版)》请在冰豆网上搜索。
数学建模matlab作业
数统应数20121323003王妍
数统应数20121323022胡可旺
1生成5阶矩阵,使其元素满足均值为1,方差为4的正态分布;
代码:
y=1+sqrt(4)*randn(5)
结果:
2,生成一个20行5列矩阵A,其元素分别以概率0.7、0.1、0.2取自0、1、4这三个整数,
然后将“删除A的全零行”之后的结果赋给矩阵B;
fori=1:
20
forj=1:
5
p=rand();
ifp<=0.7
A(i,j)=0;
elseifp>0.7&&p<=0.8
A(i,j)=1;
else
A(i,j)=4;
end
end
end
B=[];
fori=1:
20
flag=true;
forj=1:
5
ifA(i,j)~=0
flag=false;
break;
end
end
if~flag
B=[B;A(i,:
)];
end
end
B
3,(函数文件)对于输入的正整数,判断其是否为素数
function[output_args]=u3(n)
%U3Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
y=1;
fori=2:
1:
sqrt(n)
ifrem(n,i)==0
y=0;
break
end
end
if(y==1)
fprintf('是素数')
else
fprintf('不是素数')
end
4,(函数文件)对于输入的正整数,求出其中0的个数;
function[i]=u4(n)
%U4Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
i=0;
whilen/10~=0
ifrem(n,10)==0
i=i+1;
end
n=fix(n/10);
end
5,(函数文件)有n个人围成一圈,按序列编号。
从第一个人开始报数,数到m时该人退出,
并且下一个从1开始重新报数,那么最后剩下的那个人的原始编号为多少?
(n>m,例如n=20,m=7
function[x]=u5(n,m)
%U5Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
x=1:
n;
y=zeros(1,n-m+1);
t=0;
p=size(x,2);
s=fix(p/m);
whiles>0
j=1;
whilej<=s
y(t+j)=x(m*j);
j=j+1;
end
x([m:
m:
m*s])=[];
ifm*s
x=x([((m-1)*s+1):
(p-s),1:
((m-1)*s)]);
end
t=t+s;
p=size(x,2);
s=fix(p/m);
end
6,对曲线|x^2+y^2+z^2=4
|x+y+z=1作图,并修饰
ezplot('x^2+y^2+(1-x-y)^2-4',[-2,2,-2,2])
曲面作图:
z=x^2+y^2+sin(xy),定义域自拟;
x=0:
100;y=0:
100;
[x,y]=meshgrid(x,y);
z=x.^2+y.^2+sin(x.*y);
plot3(x,y,z)
8,函数f(x)定义为如下的行列式:
|xx^2x^3|
|12x3x^2|
|026x|
求f(x)在x=1处的数值导数,并画图比较数值导数与真实导函数之间的差别
symsx;
A=[
xx^2x^3;
12*x3*x^2;
026*x];
B=det(A);
y=diff(B,x)
subs(y,1)
lims=[-5,5];
fplot('y',lims);
holdon;
fplot('6*x^2',lims)
9,当x取值pi/6,2pi/6,...,5pi/6时,
求(sin(x))^2+(cos(2x))^2的数值导数和数值二阶导数;
symsx;
A=sin(x).^2+cos(2*x).^2;
x=pi/6:
pi/6:
5*pi/6;
subs(diff(A),x)
subs((diff(A,2)),x)
10,已知整数1,2,...,10的平方根,请用三次样条插值估算2.3的平方根
N=1:
1:
10;
M=sqrt(N);
Y=interp1(N,M,2.3,'spline')
11,某一过程测量得:
x:
1.20001.40001.60001.80002.00002.20002.40002.6000
y:
2.94623.40943.80904.16434.47944.76545.02545.2668
请用函数y=a+b*log5(x)对此进行曲线拟合;
x=[1.2000,1.4000,1.6000,1.8000,2.0000,2.2000,2.4000,2.6000];
y=[2.9462,3.4094,3.8090,4.1643,4.4794,4.7654,5.0254,5.2668];
fun1=@(c,x)c
(2).*log(x)./log(5)+c
(1);
b=lsqcurvefit(fun1,[1,1],x,y);
plot(x,y,'+',x,fun1(b,x))
12,线性规划(linprog):
某工厂生产甲、乙、丙三种产品,单位产品所需工时分别为2、3、1个工时;
单位产品所需原材料分别为3、1、5公斤;单位产品利润分别为2元、3元、5元。
工厂每天可利用的工时为12个,可供应的原材料为15公斤。
试确定使总利润为最大的日生产计划和最大利润
f=[-2,-3,-5];
a=[2,3,1;3,1,5];b=[12;15];
[x,y]=linprog(f,a,b,[],[],[0,0,0]);%linprog是求min的
x=x
z=-y