MATLAB实习报告.docx
- 文档编号:11776091
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:32
- 大小:262.19KB
MATLAB实习报告.docx
《MATLAB实习报告.docx》由会员分享,可在线阅读,更多相关《MATLAB实习报告.docx(32页珍藏版)》请在冰豆网上搜索。
MATLAB实习报告
1.求f(x)=4x6-x+x3-95在(0,100)上最大值、最小值,根。
(使用函数fminbnd、roots)。
程序:
symsx
f='4*x.^6+x.^3-x-95';
x1=fminbnd(f,0,100)
x2=fminbnd('-4*x.^6-x.^3+x+95',0,100)
x=x1;minf=eval(f)
x=x2;maxf=eval(f)
p=[40010-1-95];
x=roots(p)
结果:
x1=
0.4432
x2=
99.9999
minf=
-95.3258
maxf=
4.0000e+012
x=
1.6860
0.8525+1.4852i
0.8525-1.4852i
-1.7050
-0.8431+1.4514i
-0.8431-1.4514i
2.求解常微分方程x’’=-x’+x+1,x’(0)=1,x(0)=0(使用函数dsolve)。
程序:
y=dsolve('D2x=-Dx+x+1','Dx(0)=0,x(0)=0')
结果:
y=
exp(1/2*(5^(1/2)-1)*t)*(1/10*5^(1/2)+1/2)+exp(-1/2*(5^(1/2)+1)*t)*(-1/10*5^(1/2)+1/2)-1
3.已知t=an2+bn,测得对应数据如下:
(多项式插值interp1)
t=[0,20,40,60,80,100,120,140,160,183.5];
n=[0,1153,2045,2800,3466,4068,4621,5135,5619,6152];
试求a和b的值。
程序:
n=[0,1153,2045,2800,3466,4068,4621,5135,5619,6152];
t=[0,20,40,60,80,100,120,140,160,183.5];
A=polyfit(n,t,2);
a=A
(1),b=A
(2)
结果:
a=
2.5083e-006
b=
0.0144
4.请用梯形法、辛普森法分别计算积分值
(trapz、quad)
程序:
F=(x)sqrt(x.^2+x+1);
Q=quad(F,0,1)
x=0:
0.01:
1;
y=sqrt(x.^2+x+1);
q=trapz(x,y)
结果:
Q=
1.3369
q=
1.3369
5.计算二重积分
(使用函数dblquad)
程序:
F=(x,y)x.^2+y.^2+x*y+2*x+y+1;
Q=dblquad(F,0,2,0,1)
结果:
Q=
11.3333
6.矩阵M=[1,2,6;4,2,7;8,9,3],求M的LU分解,QR分解,对角阵,特征值分解。
(使用函数lu、qr、shol、eig)
程序:
A=[123;456;789];
[LU]=lu(a)
[QR]=qr(a)
[XD]=eig(a)
结果:
L=
1
U=
2.5083e-006
Q=
1
R=
2.5083e-006
X=
1
D=
2.5083e-006
7.a=3,A=4,b=a2,B=b2-1,c=a+A-2B,C=a+B+2c,求C。
(使用函数solve)
程序:
D=solve('a=3,A=4','b=a^2','B=b^2-1','c=a+A-2*B','C=a+B+2*c');
C=D.C
结果:
C=
-223
8.用两种方法求解Ax=b的解。
(A为四阶随机矩阵,b为四阶向量,自己创建)。
程序:
A=fix(50*rand(4))
B=fix(50*rand(4,1))
ifdet(A)~=0
x=A\B
X=inv(A)*B
else
C=B;
D=[AC]
rref(B)
end
结果:
A=
47444146
11382236
3022308
2403920
B=
46
45
20
44
x=
-0.8583
0.0430
1.3169
0.6621
X=
-0.8583
0.0430
1.3169
0.6621
9.
,用两种方法求函数的根,并求其极值与零点。
程序:
y1='x.^3+(x-0.8).^2/(x+1.25).^3-5*(x+1/x)';
ezplot(y1,[-100,100])
[xmin,ymin]=fminbnd(y1,0,60);
ymin
y2='-x.^3-(x-0.8).^2/(x+1.25).^3+5*(x+1/x)';
[xmax,y]=fminbnd(y2,-50,-20);
ymax=-y
结果:
ymin=
-1.1489e+005
ymax=
-7.8999e+003
10、f(x)的定义如下:
,写一个matlab函数func1实现该函数。
程序:
functiony=hs(x)
x=input('请输入x值:
x=');
ifx<0&x~=-4
y=x.^2+x-6;
elseifx>=0&x<10&x~=2&x~=3
y=x.^2-5*x+6;
else
y=x.^2-x+1;
end
结果:
请输入x值:
x=5.6
ans=
9.3600
11、写一个MATLAB小程序,求出最小的n值,使得n!
>realmax。
程序:
n=1;
whileprod(1:
n)<=realmax
n=n+1;
end
n
结果:
n=
171
12、写一个MATLAB函式myfun.m来计算下列方程式:
y=0.5*exp(x/3)-x*x*sin(x)
其中x是函式的输入,y是函式的输出。
你的函式必须能够处理当x是纯量或是向量的两种情况。
程序:
functiony=myfun(x)
y=0.5*exp(x./3)-x.*x.*sin(x);
end
结果:
myfun([2,3])
ans=
-2.66330.0891
13、写一个MATLAB函式pifun.m来计算下列级数:
f(n)=4*(1-1/3+1/5-1/7+1/9-1/11+...)
其中n为函式的输入,级数和f(n)则是函式的输出。
此外,你必须进行下列事项:
(1)使用tic和toc指令来测量pifun(100000)的计算时间。
如果你不知道如何使用这两个指令,请使用helptic及helptoc来查出它们的用法。
我的计算机是Pentium-450,所得的计算时间约为2秒。
请说明你的计算机规格以及其计算时间。
程序:
functionf=pifun(n)
tic
y=0;
fori=0:
n
y=y+(-1)^(i)*1/(2*i+1);
end
f=4*y;
toc
t=toc
end
结果:
pifun(100000)
Elapsedtimeis0.006173seconds.
t=
0.0062
ans=
3.1416
14、写一个MATLAB的递归函式fibo.m来计算Fibonacci数列,其定义如下:
fibo(n+2)=fibo(n+1)+fibo(n)
此数列的启始条件如下:
fibo
(1)=0,fibo
(2)=1.
程序:
functiona=fibo(n)
ifn==1
a=0;
elseifn==2
a=[01];
elseb=fibo(n-1);
a=[b,b(end-1)+b(end)];
end
end
结果:
fibo(6)
ans=
011235
15.求下列函数的极小点:
1)
;
2)
;
3)
.
第1),2)题的初始点可任意选取,
第3)题的初始点取为
.
程序:
f='x
(1)^2+4*x
(2)^2+9*x(3)^2-2*x
(1)+18*x
(2)';
[x,fm]=fminsearch(f,[0,0,0])
f='x
(1)^2+3/2*x
(2)^2-2*x
(1)*x
(2)+x
(1)-2*x
(2)';
[x,fm]=fminsearch(f,[0,0])
f='(x
(1)-1)^4+x
(2)^2';
[x,fm]=fminsearch(f,[0,1])
结果:
x=
1.0000-2.25000.0000
fm=
-21.2500
x=
0.50001.0000
fm=
-0.7500
x=
1.0000-0.0000
fm=
4.2415e-017
16. 解线性方程组
并求系数矩阵的行列式。
程序:
A=[51-10;103-1;-1-105;0024];
b=[123-1];
x=A\b'
det(A)
结果:
x=
1.4000
-5.9000
0.1000
-0.3000
ans=
70
17.设f(x,y)=4sin(x3y),求
。
程序:
symsxy
f=4*sin(x.^3*y);
y1=diff(f,x);
y2=diff(y1,y);
x=2;y=3;eval(y2)
结果:
ans=
1.0636e+003
18.求方程3x4+4x3-20x+5=0的所有解。
程序:
symsx;
p=sym2poly(3*(x.^4)+4*(x.^3)-20*x+5);
x=roots(p)
结果:
x=
-1.5003+1.5470i
-1.5003-1.5470i
1.4134
0.2539
19.对于迭代模型
取初值x0=0,y0=0,进行3000次迭代,对于k>1000,在(xk,yk)处亮一点(注意不要连线)可得所谓Henon引力线图。
程序:
x
(1)=0;y
(1)=0;
fork=1:
3000
x(k+1)=1+y(k)-1.4*x(k)^2;y(k+1)=0.3*x(k);
end
plot(x(1001:
3001),y(1001:
3001),'.');
结果:
20.某公司投资2000万元建成一条生产线。
投产后,在时刻t的追加成本和追加收益分别为G(t)=
(百万元/年),H(t)=
(百万元/年)。
试确定该生产线在合适何时停产可获最大利润?
最大利润是多少?
要求:
写出数学模型、M函数(如果需要的话)、运算命令和计算结果。
程序:
fplot('18-t^(2/3)',[0,20]);gridon;holdon;
fplot('5+t+2*t^(2/3)',[0,20],'r');holdoff;
[t,f,h]=fsolve('18-x^(2/3)-5-x-2*x^(2/3)',4)
t=linspace(0,t,100);y=18-t.^(2/3)-5-t-2*t.^(2/3);
trapz(t,y)-20
结果:
t=
4.6465
f=
1.1458e-013
h=
1
ans=
6.3232
21.一幢楼房的后面是一个很大的花园。
在花园中紧靠着楼房建有一个温室,温室高10英尺,延伸进花园7尺。
清洁工要打扫温室上方的楼房的窗户。
他只有借助于梯子,一头放在花园中,一头靠在楼房的墙上,攀援上去进行工作。
他只有一架20米长的梯子,你认为他能否成功?
能满足要求的梯子的最小长度是多少?
步骤:
1.先进行问题分析,明确问题;
2.建立模型,并运用Matlab函数求解;
3.对结果进行分析说明;
4.设计程序画出图形,对问题进行直观的分析和了解(主要用画线函数plot,line)
程序:
symsx
a=7;
b=10;
L=a/cos(x)+b/sin(x);
L1=diff(L,'x')
s=solve([char(L1),'=0'],'x')
vpa(s)
x=0.8447,Lmin=eval(L)
结果:
L1=
7/cos(x)^2*sin(x)-10/sin(x)^2*cos(x)
s=
atan(1/7*490^(1/3))
-atan(1/14*490^(1/3)-1/14*i*3^(1/2)*490^(1/3))
-atan(1/14*490^(1/3)+1/14*i*3^(1/2)*490^(1/3))
ans=
.0082
-.7521+.5832*i
-.7521-.5832*i
x=
0.8447
Lmin=
23.9159
22.某大学青年教师从31岁开始建立自己的养老基金,他把已有的积蓄10000元也一次性地存入,已知月利率为0.001(以复利计),每月存入700元,试问当他60岁退休时,他的退休基金有多少?
又若,他退休后每月要从银行提取1000元,试问多少年后他的基金将用完?
程序:
functiony=tsum(interest,principal,time,acknowl,basicmoney)
tsum=0;
fori=1:
time
sum=(1+interest)^i;
tsum=tsum+sum;
end
tsum=principal*tsum+basicmoney*(1+interest)^time
i=1;
tsum1=(tsum-acknowl)*(1+interest);
while(tsum1>=1000)
tsum1=(tsum1-acknowl)*(1+interest);
i=i+1;
end
y=i/12;
end
结果:
tsum=
3.1778e+005
ans=
31.8333
29.请设计一个程序,程序完成下列功能:
(1)让用户输入一个矩阵A;
(2)在A中找出小于0的矩阵元素的位置;
(3)在A中统计出等于0的元素的个数;
(4)显示A的行数和列数;
(5)找出矩阵A各元素中的最大值(显示值,不显示元素位置)。
程序:
A=input('¾ØÕóA:
A=');
n=0;MAX=A(1,1);
[pq]=size(A);
fori=1:
p
forj=1:
q
k=A(i,j);
ifk<0
k=A(i,j),disp(i),disp(j)
end
ifk==0
n=n+1;
end
ifMAX MAX=k; end end end n [pq]=size(A) MAX 结果: 矩阵A: A=[1,0;-6,5] k= -6 2 1 n= 1 p= 2 q= 2 MAX= 5 30.请设计一个程序,程序完成下列功能: (1)让用户依次输入两个字符串s1和s2; (2)比较两个字符串的长度并显示比较结果; (3)判断s1与s2有没有长度在3个字符以上的相同子串,显示判断结果。 程序: s1=input('字符1','s'); s2=input('字符2','s'); l1=length(s1); l2=length(s2); ifl1==l2 disp('长度相等') elseifl1>l2 disp('s1>s2') else disp('s1 end e=strncmp(s1,s2,3); ife==0 disp('没有') else disp('有') end 结果: 字符1: asdfgedf 字符2: asdfwedsfger s1 有 31.首先由计算机产生[1,100]之间的随机整数,然后由用户猜测所产生的随机数。 根据用户猜测的情况给出不同提示,如猜测的数大于产生的数,则显示“High”,小于则显示“Low”,等于则显示“Youwon”,同时退出游戏。 用户最多可以猜7次 程序: N=fix(100*rand (1)) j=0; x=input('猜想一个数') whilex~=N ifx>N disp('High') end ifx disp('Low') end j=j+1 ifj==7 break end x=input('猜想一个数') end 结果: N= 5 请猜一个数: 15 x= 15 High j= 1 请猜一个数: 356 x= 356 High j= 2 请猜一个数: 1 x= 1 Low j= 3 请猜一个数: 5 x= 5 32.编写程序模拟氏双缝干涉 两相干光源到接收屏上P点距离r1=(D2+(y-a/2)2)1/2,r2=(D2+(y+a/2)2)1/2,相位差 Φ=2π(r2-r1)/λ,光强I=4I0cos2(Φ/2)编写程序 程序: lam=500e-9 a=2e-3;D=1; ym=5*lam*D/a;xs=ym; n=101;ys=linspace(-ym,ym,n); fori=1: n r1=sqrt((ys(i)-a/2).^2+D^2); r2=sqrt((ys(i)+a/2).^2+D^2); phi=2*pi*(r2-r1)./lam; B(i,: )=sum(4*cos(phi/2).^2); end N=255; Br=(B/4.0)*N subplot(1,2,1) image(xs,ys,Br); colormap(gray(N)); subplot(1,2,2) plot(B,ys) 结果: 33.编写程序模拟光栅衍射 公式: I=I0(sinα/α)2(sin(λβ)/sinβ)2 α=(πa/λ)sinΦ β=(πd/λ)sinΦ 程序: lam=500e-9;N=2; a=2e-4;D=5;d=5*a; ym=2*lam*D/a;xs=ym; n=1001; ys=linspace(-ym,ym,n); fori=1: n sinphi=ys(i)/D; alpha=pi*a*sinphi/lam; beta=pi*d*sinphi/lam; B(i,: )=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2; B1=B/max(B); end NC=255; Br=(B/max(B))*NC; subplot(1,2,1) image(xs,ys,Br); colormap(gray(NC)); subplot(1,2,2) plot(B1,ys); 结果: 34假设汽车系在下列各年度的人口统计如表所示 类别 大一新生 学士毕业生 年份 2004 98 94 2005 105 97 2006 121 110 试用一个二维矩阵A表示上述数据。 由上题矩阵A来算出下列各数值: (1)汽车系在2004、2005、2006年之间的每年平均新生、毕业生人数。 (2)3年来汽车系共有多少毕业生? (3)在哪几年,新生数目比毕业生多? (4)三年来每年的毕业生对新生的比例平均值为何? 程序: A=[20049894;200510597;2006121110]; m=0;n=0;k=0; fori=1: 3 m=m+A(i,2); n=n+A(i,3); ifA(i,2)>A(i,3) A(i,1) end k=k+A(i,3)/A(i,2); end average1=m/3 average2=n/3 n k/3 结果: ans= 2004 ans= 2005 ans= 2006 average1= 108 average2= 100.3333 n= 301 ans= 0.9307 35.使用randn产生一个10x10的矩阵A (1)计算B=(A+A’)/2。 请注意,B一定是一个对称矩阵 (2)计算矩阵B的特征向量e1e2…e10(使用函数eig) (3)验证在i不等于j的情况下,ei和ej的积必定为0 程序: A=rand(10,10) B=(A+A')/2 [sf]=eig(A); S fori=1: 10 forj=1: 10 ifi~=j dot(f(i),f(j)) end end end 结果: A= Columns1through7 0.58280.20910.41540.21400.68330.45140.6085 0.42350.37980.30500.64350.21260.04390.0158 0.51550.78330.87440.32000.83920.02720.0164 0.33400.68080.01500.96010.62880.31270.1901 0.43290.46110.76800.72660.13380.01290.5869 0.22590.56780.97080.41200.20710.38400.0576 0.57980.79420.99010.74460.60720.68310.3676 0.76040.05920.78890.26790.62990.09280.6315 0.52980.60290.43870.43990.37050.03530.7176 0.64050.05030.49830.93340.57510.61240.6927 Columns8through10 0.08410.12100.2319 0.45440.45080.2393 0.44180.71590.0498 0.35330.89280.0784 0.15360.27310.6408 0.67560.25480.1909 0.69920.86560.8439 0.72750.23240.1739
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 实习 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)