南邮MATLAB数学实验规范标准答案(全).doc
*-第一次练习教学要求:熟练掌握Matlab软件的基本命令和操作,会作二维、三维几何图形,能够用Matlab软件解决微积分、线性代数与解析几何中的计算问题。补充命令vpa(x,n)显示x的n位有效数字,教材102页fplot(f(x),a,b)函数作图命令,画出f(x)在区间a,b上的图形在下面的题目中为你的学号的后3位(1-9班)或4位(10班以上)1.1 计算与 syms xlimit(902*x-sin(902*x)/x3)ans =366935404/3limit(902*x-sin(902*x)/x3,inf)ans =01.2 ,求 syms xdiff(exp(x)*cos(902*x/1000),2)ans = (46599*cos(451*x)/500)*exp(x)/250000 - (451*sin(451*x)/500)*exp(x)/2501.3 计算dblquad(x,y) exp(x.2+y.2),0,1,0,1)ans =2.13941.4 计算 syms xint(x4/(9022+4*x2) ans = (91733851*atan(x/451)/4 - (203401*x)/4 + x3/121.5 syms xdiff(exp(x)*cos(902*x),10)ans =-356485076957717053044344387763*cos(902*x)*exp(x)-3952323024277642494822005884*sin(902*x)*exp(x)1.6 给出在的泰勒展式(最高次幂为4). syms xtaylor(sqrt(902/1000+x),5,x) ans = -(9765625*451(1/2)*500(1/2)*x4)/82743933602 +(15625*451(1/2)*500(1/2)*x3)/91733851 -(125*451(1/2)*500(1/2)*x2)/406802 + (451(1/2)*500(1/2)*x)/902 +(451(1/2)*500(1/2)/5001.7 Fibonacci数列的定义是用循环语句编程给出该数列的前20项(要求将结果用向量的形式给出)。x=1,1;for n=3:20 x(n)=x(n-1)+x(n-2);endxx=Columns 1 through 10 1 1 2 3 5 8 13 21 34 55Columns 11 through 20 89 144 233 377 610 987 1597 2584 4181 67651.8 对矩阵,求该矩阵的逆矩阵,特征值,特征向量,行列式,计算,并求矩阵(是对角矩阵),使得。A=-2,1,1;0,2,0;-4,1,902/1000;inv(A)ans =0.4107 0.0223 -0.4554 0 0.5000 0 1.8215 -0.4554 -0.9107eig(A)ans =-0.5490 + 1.3764i -0.5490 - 1.3764i 2.0000 det(A)ans =4.3920P,D=eig(A)P = %特征向量0.3245 - 0.3078i 0.3245 + 0.3078i 0.2425 0 0 0.9701 0.8944 0.8944 0.0000 D = -0.5490 + 1.3764i 0 0 0 -0.5490 - 1.3764i 0 0 0 2.0000 P*D6*inv(P) %A6的值ans =15.3661 12.1585 + 0.0000i -5.8531 0 64.0000 0 23.4124 -5.8531 + 0.0000i -1.6196 1.9 作出如下函数的图形(注:先用M文件定义函数,再用fplot进行函数作图):m文件: function y=fenduan(x) if x<=1/2 y=2*xelse x<=1 y=2-2*xendend执行函数:fplot(fenduan,0,1); grid on title(第1.9题图) 得下图: 1.10 在同一坐标系下作出下面两条空间曲线(要求两条曲线用不同的颜色表示)(1)(2)t=-10:0.01:10;x1=cos(t);y1=sin(t);z1=t;plot3(x1,y1,z1);hold onx2=cos(2*t);y2=sin(2*t);z2=t;plot3(x2,y2,z2,m);grid ontitle(第1.10题图)得下图:1.11 已知,在MATLAB命令窗口中建立A、B矩阵并对其进行以下操作:(1) 计算矩阵A的行列式的值(2) 分别计算下列各式:解:A=4,-2,2;-3,0,5;1,5*902,3; B=1,3,4;-2,0,3;2,-1,1;det(A)ans = -1172882*A-Bans = 7 -7 0 -4 0 7 0 9021 5A*Bans =12 10 12 7 -14 -7 -9013 0 13537A.*Bans = 4 -6 8 6 0 15 2 -4510 3A*inv(B)ans =1.0e+003 * -0.0000 0 0.0020 0.0000 0.0016 0.0001 1.0311 -0.9016 -1.4167inv(A)*Bans = 0.3463 0.5767 0.5383 0.0005 -0.0006 -0.0005 -0.1922 0.3460 0.9230A*Aans = 24 9012 4 -7 22556 9 -13523 13528 22561Aans =4 -3 1 -2 0 4510 2 5 3 1.12 已知分别在下列条件下画出的图形:(1),分别为(在同一坐标系上作图);(2),分别为(在同一坐标系上作图).(1)x=-5:0.1:5;h=inline(1/sqrt(2*pi)/s*exp(-(x-mu).2/(2*s2);y1=h(0,902/600,x);y2=h(-1,902/600,x);y3=h(1,902/600,x);plot(x,y1,b,x,y2,m,x,y3,y)grid ontitle(第1.12题) (2) z1=h(0,1,x);z2=h(0,2,x);z3=h(0,4,x); z4=h(0,902/100,x);plot(x,z1,x,z2,y,x,z3,m,x,z4, g)grid ontitle(第1.12题) z1=h(0,1,x);z2=h(0,2,x);z3=h(0,4,x); z4=h(0,902/100,x); 1.13 作出的函数图形。x=-10:0.2:10;y=x;X Y=meshgrid(x,y);Z=902*X.2+Y.4;mesh(X,Y,Z);title(第1.13题) 1.14对于方程,先画出左边的函数在合适的区间上的图形,借助于软件中的方程求根的命令求出所有的实根,找出函数的单调区间,结合高等数学的知识说明函数为什么在这些区间上是单调的,以及该方程确实只有你求出的这些实根。最后写出你做此题的体会。解:作图程序:(注:x范围的选择是经过试探而得到的)x=-1.7:0.02:1.7;y=x.5-902/200*x-0.1;plot(x,y);grid on; title(第1.14题) 由图形观察,在x=-1.5,x=0,x=1.5附近各有一个实根 solve(x5-902/200*x-0.1) ans = -1.4516870267499636199995749888894 -0.022172950190557703188753959027919 1.4627751059480654637229232196174 1.4573364935933870280941533926624*i + 0.0055424354962279297327028641499658 0.0055424354962279297327028641499658 - 1.4573364935933870280941533926624*i 三个实根的近似值分别为:-1.4517,-0.0222,1.4628由图形可以看出,函数在区间单调上升,在区间单调下降,在区间单调上升。syms xdiff(x5-902/200*x-0.1,x)结果为5*x4-4.51solve(5*x4-902/200) ans = -(451(1/4)*500(3/4)/500 (451(1/4)*500(3/4)/500 -(451(1/4)*500(3/4)*i)/500 (451(1/4)*500(3/4)*i)/500vpa(ans)ans = -0.97454440927373918149075795211629 0.97454440927373918149075795211629 -0.97454440927373918149075795211629*i 0.97454440927373918149075795211629*i得到两个实根:-0.9745与0.9745可以验证导函数在内为正,函数单调上升导函数在内为负,函数单调下降导函数在内为正,函数单调上升根据函数的单调性,最多有3个实根。1.15 求的所有根。(先画图后求解)(要求贴图)作图命令:(注:x范围的选择是经过试探而得到的)x=-5:0.001:15;y=exp(x)-3*902*x.2;plot(x,y);grid on;title(第1.15题图)得到下图 进一步细化x=-0.05:0.0001:0.05;y=exp(x)-3*902*x.2;plot(x,y);grid on;title(第1.15题图)x=10:0.001:15;y=exp(x)-3*902*x.2;plot(x,y);grid on;title(第1.15题图)可看出解在-0.02,0.02,13附近,进一步求得fzero(exp(x)-3*902*x2,0.02)ans =0.0194fzero(exp(x)-3*902*x2,-0.02)ans =-0.0190 fzero(exp(x)-3*902*x2,13)ans =13.0391第二次练习教学要求:要求学生掌握迭代、混沌的判断方法,以及利用迭代思想解决实际问题。2.1 设,数列是否收敛?若收敛,其值为多少?精确到8位有效数字。解:程序代码如下(m=902):f=inline(x+902/x)/2);x0=3;for i=1:20;x0=f(x0);fprintf(%g %8fn,i,x0);end1 151.8333332 78.8870293 45.1605514 32.5668675 30.1318646 30.0334767 30.0333158 30.0333159 30.03331519 30.03331520 30.033315由运行结果可以看出,数列收敛,其值为30.03315。2.2 求出分式线性函数的不动点,再编程判断它们的迭代序列是否收敛。解:取m=1000.(1)程序如下:f=inline(x-1)/(x+1000);x0=2;for i=1:20;x0=f(x0);fprintf(%g,%gn,i,x0);end运行结果:1,0.000998004 11,-0.0010012,-0.000999001 12,-0.0010013,-0.001001 13,-0.0010014,-0.001001 14,-0.0010015,-0.001001 15,-0.0010016,-0.001001 16,-0.0010017,-0.001001 17,-0.0010018,-0.001001 18,-0.0010019,-0.001001 19,-0.00100110,-0.001001 20,-0.001001由运行结果可以看出,分式线性函数收敛,其值为-0.001001。易见函数的不动点为-0.001001(吸引点)。(2)程序如下:f=inline(x+1000000)/(x+1000);x0=2;for i=1:20;x0=f(x0);fprintf(%g,%gn,i,x0);end运行结果:1,998.006 11,618.3322,500.999 12,618.3023,666.557 13,618.3144,600.439 14,618.3095,625.204 15,618.3116,615.692 16,618.317,619.311 17,618.3118,617.929 18,618.319,618.456 19,618.3110,618.255 20,618.31由运行结果可以看出,分式线性函数收敛,其值为618.31。易见函数的不动点为618.31(吸引点)。2.3 下面函数的迭代是否会产生混沌?(56页练习7(1)解:程序如下:f=inline(1-2*abs(x-1/2);x=;y=;x(1)=rand();y(1)=0;x(2)=x(1);y(2)=f(x(1);for i=1:100;x(1+2*i)=y(2*i);x(2+2*i)=x(1+2*i);y(2+2*i)=f(x(2+2*i);endplot(x,y,r);hold on;syms x;ezplot(x,0,1/2);ezplot(f(x),0,1);axis(0,1/2,0,1);hold off运行结果:2.4 函数称为Logistic映射,试从“蜘蛛网”图观察它取初值为产生的迭代序列的收敛性,将观察记录填人下表,若出现循环,请指出它的周期(56页练习8)3.33.53.563.5683.63.84序列收敛情况T=2T=4T=8T=9混沌混沌解:当=3.3时,程序代码如下:f=inline(3.3*x*(1-x);x=;y=;x(1)=0.5;y(1)=0;x(2)=x(1);y(2)=f(x(1);for i=1:1000;x(1+2*i)=y(2*i);x(2+2*i)=x(1+2*i);y(1+2*i)=x(1+2*i);y(2+2*i)=f(x(2+2*i);endplot (x,y,r);hold on;syms x;ezplot(x,0,1);ezplot(f(x),0,1);axis(0,1,0,1);hold off运行结果:当=3.5时,上述程序稍加修改,得:当=3.56时,得:当=3.568时,得:当=3.6时,得:当=3.84时,得:2.5 对于Martin迭代,取参数为其它的值会得到什么图形?参考下表(取自63页练习13)mmm-m-mm-mm/1000-mm/1000m/10000.5m/1000m-mm/100m/10-10-m/10174解:取m=10000;迭代次数N=20000;在M-文件里面输入代码:function Martin(a,b,c,N)f=(x,y)(y-sign(x)*sqrt(abs(b*x-c);g=(x)(a-x);m=0;0;for n=1:N m(:,n+1)=f(m(1,n),m(2,n),g(m(1,n); end plot(m(1,:),m(2,:),kx); axis equal在命令窗口中执行Martin(10000,10000,10000,20000),得:执行Martin(-10000,-10000,10000,20000),得:执行Martin(-10000,10,-10000,20000),得:执行Martin(10,10,0.5,20000),得:执行Martin(10,10000,-10000,20000),得:执行Martin(100,1000,-10,20000),得:执行Martin(-1000,17,4,20000),得:2.6 能否找到分式函数(其中是整数),使它产生的迭代序列(迭代的初始值也是整数)收敛到(对于为整数的学号,请改为求)。如果迭代收敛,那么迭代的初值与收敛的速度有什么关系.写出你做此题的体会.提示:教材54页练习4的一些分析。若分式线性函数的迭代收敛到指定的数,则为的不动点,因此化简得:。若为整数,易见。取满足这种条件的不同的以及迭代初值进行编。解:迭代收敛到指定的数,则为的不动点,所以 =,解得a=e,d=0,b=902c 取m=902;根据上述提示,取:a=e=1,b=902,c=1,d=0,程序如下: f=inline(x+902)/(x2+1);x0=1;for i=1:100;x0=f(x0);fprintf(%g %gn,i,x0);end 结果如下1 451.52 0.006639583 901.9674 0.0022174135 901.9986 0.00221737 901.9988 0.00221739 901.99810 0.002217311 901.99812 0.002217313 901.99814 0.002217315 901.99816 0.002217317 901.99895 901.99896 0.002217397 901.99898 0.002217399 901.998100 0.002217 初值为-1,结果为1 450.52 0.006664163 901.9674 0.002217425 901.9986 0.00221737 901.9988 0.00221739 901.99810 0.002217311 901.99812 0.002217313 901.99814 0.002217315 901.99816 0.002217317 901.99818 0.002217319 901.99895 901.99896 0.002217397 901.99898 0.002217399 901.998100 0.0022173 初值为1000,结果为1 0.0019022 901.9993 0.00221734 901.9985 0.00221736 901.9987 0.00221738 901.9989 0.002217310 901.99811 0.002217312 901.99813 0.002217314 901.99815 0.002217316 901.99817 0.002217318 901.99819 0.002217320 901.99893 0.002217394 901.99895 0.002217396 901.99897 0.002217398 901.99899 0.0022173100 901.998第三次练习教学要求:理解线性映射的思想,会用线性映射和特征值的思想方法解决诸如天气等实际问题。3.1 对,求出的通项. >> syms n>> A=sym(4,2;1,3);x=1;2;P,D=eig(A) %没有sym下面的矩阵就会显示为小数P = -1, 2 1, 1 D = 2, 0 0, 5>> An=P*Dn*inv(P) An = 2n/3 + (2*5n)/3, (2*5n)/3 - (2*2n)/3 5n/3 - 2n/3, (2*2n)/3 + 5n/3 >> xn=An*x xn = 2*5n - 2n 2n + 5n3.2 对于练习1中的,求出的通项. >> syms n>> A=sym(2/5,1/5;1/10,3/10); x=1;2;P,D=eig(A) P = -1, 2 1, 1 D = 1/5, 0 0, 1/2 >> An=P*Dn*inv(P) An = (2*(1/2)n)/3 + (1/5)n/3, (2*(1/2)n)/3 - (2*(1/5)n)/3 (1/2)n/3 - (1/5)n/3, (1/2)n/3 + (2*(1/5)n)/3xn = 2*(1/2)n - (1/5)n (1/2)n + (1/5)n3.3 对随机给出的,观察数列.该数列有极限吗?>> A=4,2;1,3;a=;x=2*rand(2,1)-1;for i=1:20 a(i,1:2)=x; x=A*x; end for i=1:20 if a(i,1)=0 else t=a(i,2)/a(i,1); fprintf(%g,%gn,i,t); endend 结论:在迭代17次后,发现数列存在极限为0.53.4 对120页中的例子,继续计算.观察及的极限是否存在. (120页练习9)>> A=2.1,3.4,-1.2,2.3;0.8,-0.3,4.1,2.8;2.3,7.9,-1.5,1.4;3.5,7.2,1.7,-9.0;x0=1;2;3;4;x=A*x0;for i=1:1:100a=max(x);b=min(x);m=a*(abs(a)>abs(b)+b*(abs(a)<=abs(b); y=x/m; x=A*y;endx %也可以用fprintf(%gn,x1),不能把x1,y一起输出ym程序输出:x1 = 0.9819 3.2889 -1.2890 -11.2213y = -0.0875 -0.2931 0.11491.0000m =-11.2213结论:及的极限都存在.3.5 求出的所有特征值与特征向量,并与上一题的结论作对比. (121页练习10)>> A=2.1,3.4,-1.2,2.3;0.8,-0.3,4.1,2.8;2.3,7.9,-1.5,1.4;3.5,7.2,1.7,-9.0;P,D=eig(A)P = -0.3779 -0.8848 -0.0832 -0.3908 -0.5367 0.3575 -0.2786 0.4777 -0.6473 0.2988 0.1092 -0.7442 -0.3874 -0.0015 0.9505 0.2555D = 7.2300 0 0 0 0 1.1352 0 0 0 0 -11.2213 0 0 0 0 -5.8439结论:A的绝对值最大特征值等于上面的的极限相等,为什么呢?还有,P的第三列也就是-11.2213对应的特征向量和上题求解到的y也有系数关系,两者都是-11.2213的特征向量。3.6 设,对问题2求出若干天之后的天气状态,并找出其特点(取4位有效数字). (122页练习12)>> A2=3/4,1/2,1/4;1/8,1/4,1/2;1/8,1/4,1/4;P=0.5;0.25;0.25;for i=1:1:20 P(:,i+1)=A2*P(:,i);endPP = Columns 1 through 10 0.5000 0.5625 0.5938 0.6035 0.6069 0.6081 0.6085 0.6086 0.6087 0.6087 0.2500 0.2500 0.2266 0.2207 0.2185 0.2178 0.2175 0.2174 0.2174 0.2174 0.2500 0.1875 0.1797 0.1758 0.1746 0.1741 0.1740 0.1739 0.1739 0.1739 Columns 11 through 200.6087 0.6087 0.6087 0.6087 0.6087 0.6087 0.6087 0.6087 0.6087 0.6087 0.2174 0.2174 0.2174 0.2174 0.2174 0.2174 0.2174 0.2174 0.2174 0.2174 0.1739 0.1739 0.1739 0.1739 0.1739 0.1739 0.1739 0.1739 0.1739 0.1739 Column 21 0.6087 0.2174 0.1739结论:9天后,天气状态趋于稳定P*=(0.6087,0.2174,0.1739)T3.7 对于问题2,求出矩阵的特征值与特征向量,并将特征向量与上一题中的结论作对比. (122页练习14)>> A2=3/4,1/2,1/4;1/8,1/4,1/2;1/8,1/4,1/4; P,D=eig(A2)P = -0.9094 -0.8069 0.3437 -0.3248 0.5116 -0.8133 -0.2598 0.2953 0.4695D = 1.0000 0 0 0 0.3415 0 0 0 -0.0915分析:事实上,q=k(-0.9094, -0.3248, -0.2598)T均为特征向量,而上题中P*的3个分量之和为1,可令k(-0.9094, -0.3248, -0.2598)T=1,得k=-0.6696.有q=(0.6087, 0.2174, 0.1739),与P*一致。3.8对问题1,设为的两个线性无关的特征向量,若,具体求出上述的,将表示成的线性组合,求的具体表达式,并求时的极限,与已知结论作比较. (123页练习16)>> A=3/4,7/18;1/4,11/18;P,D=eig(A);syms k pk;a=solve(u*P(1,1)+v*P(1,2)-1/2,u*P(2,1)+v*P(2,2)-1/2,u,v);pk=a.u*D(1,1).k*P(:,1)+a.v*D(2,2).k*P(:,2) pk = -5/46*(13/36)k+14/23 5/46*(13/36)k+9/23或者:p0=1/2;1/2;P,D=eig(sym(A);B=inv(sym(P)*p0 B = 5/46 9/23syms kpk=B(1,1)*D(1,1).k*P(:,1)+B(2,1)*D(2,2).k*P(:,2) pk = -5/46*(13/36)k+14/23 5/46*(13/36)k+9/23>> vpa(limit(pk,k,100),10) ans = .6086956522 .3913043478结论:和用练习12中用迭代的方法求得的结果是一样的。第四次练习教学要求:会利用软件求勾股数,并且能够分析勾股数之间的关系。会解简单的近似计算问题。4.1 求满足,的所有勾股数,能否类似于(11.8),把它们用一个公式表示出来?解法程序1:for b=1:998 a=sqrt(b+2)2-b2); if(a=floor(a) fprintf(a=%i,b=%i,c=%in,a,b,b+2) endend运行结果:a=4,b=3,c=5a=6,b=8,c=10a=8,b=15,c=17a=10,b=24,c=26a=12,b=35,c=37a=14,b=48,c=50a=16,b=63,c=65a=18,b=80,c=82a=20,b=99,c=101a=22,b=120,c=122a=24,b=