当前位置:文档之家› 南京邮电大学数学实验练习题参考答案

南京邮电大学数学实验练习题参考答案

第一次练习教学要求:熟练掌握Matlab 软件的基本命令和操作,会作二维、三维几何图形,能够用Matlab 软件解决微积分、线性代数与解析几何中的计算问题。

补充命令 vpa(x,n)显示x 的n 位有效数字,教材102页fplot(‘f(x)’,[a,b])函数作图命令,画出f(x)在区间[a,b]上的图形在下面的题目中m 为你的学号的后3位(1-9班)或4位(10班以上) 计算30sin lim x mx mx x →-与3sin limx mx mxx →∞- 程序: syms xlimit((1001*x-sin(1001*x))/x^3,x,0) 结果: 程序: syms xlimit((1001*x-sin(1001*x))/x^3,x,inf) 结果: 0cos1000x mxy e =,求''y 程序: syms xdiff(exp(x)*cos(1001*x/1000),2) 结果:-2001/1000000*exp(x)*cos(1001/1000*x)-1001/500*exp(x)*sin(1001/1000*x)计算221100xy e dxdy +⎰⎰程序:dblquad(@(x,y) exp(x.^2+y.^2),0,1,0,1) 结果:计算4224x dx m x +⎰ 程序: syms xint(x^4/(1000^2+4*x^2)) 结果:(10)cos ,xy e mx y =求程序: syms xdiff(exp(x)*cos(1000*x),10) 结果:给出0x =的泰勒展式(最高次幂为4).程序: syms xtaylor(sqrt(1001/1000+x),5) 结果:Fibonacci 数列{}n x 的定义是121,1x x ==,12,(3,4,)n n n x x x n --=+=用循环语句编程给出该数列的前20项(要求将结果用向量的形式给出)。

程序: x=[1,1]; for n=3:20x(n)=x(n-1)+x(n-2); end x 结果:Columns 1 through 101 123 5 8 13 21 34 55 Columns 11 through 2089 144 233 377 610 987 1597 2584 4181 6765对矩阵211020411000A m ⎛⎫ ⎪- ⎪= ⎪ ⎪- ⎪⎝⎭,求该矩阵的逆矩阵,特征值,特征向量,行列式,计算6A ,并求矩阵,P D (D 是对角矩阵),使得1A PDP -=。

程序与结果:a=[-2,1,1;0,2,0;-4,1,1001/1000]; inv(a) eig(a)[p,d]=eig(a) p =- +0 0 注:p 的列向量为特征向量 d =+ 0 0 0 - 0 0 0 a^60 0作出如下函数的图形(注:先用M 文件定义函数,再用fplot 进行函数作图): 函数文件: function y=f(x) if 0<=x&x<=1/2 y=*x; else 1/2<x&x<=1 y=*(1-x); end程序:fplot(@f,[0,1])在同一坐标系下作出下面两条空间曲线(要求两条曲线用不同的颜色表示)(1)cos sin x t y t z t =⎧⎪=⎨⎪=⎩ (2)2cos 2sin x t y t z t =⎧⎪=⎨⎪=⎩程序: t=-10::10; x1=cos(t); y1=sin(t); z1=t;plot3(x1,y1,z1,'k');hold on x2=cos(2*t); y2=sin(2*t); z2=t;plot3(x2,y2,z2,'r');hold off已知422134305,203153211A B m -⎛⎫⎛⎫ ⎪ ⎪=-=-- ⎪ ⎪ ⎪ ⎪-⎝⎭⎝⎭,在MATLAB 命令窗口中建立A 、B 矩阵并对其进行以下操作:(1) 计算矩阵A 的行列式的值det()A(2) 分别计算下列各式:1122,*,.*,,,,TA B A B A B AB A B A A ---解:(1)程序:a=[4,-2,2;-3,0,5;1,5*1001,3]; b=[1,3,4;-2,0,3;2,-1,1];det(a) -130158(2) 2*a-b 7 -7 0-4 0 70 10011 5a*b12 10 127 -14 -7 -10003 0 15022a.*b4 -6 86 0 15 2 -5005 3a*inv(b) +003 *inv(a)*ba^2 24 10002 4 -7 25031 9-15008 15013 25036A' 4 -3 1 -2 0 50052 5 3已知22()2()x f x μσ--=分别在下列条件下画出)(x f 的图形:(1)/600m σ=,μ分别为0,1,1-(在同一坐标系上作图);(2)0μ=,σ分别为1,2,4,/100m (在同一坐标系上作图). (1)程序: x=-5::5;h=inline('1/sqrt(2*pi)/s*exp(-(x-mu).^2/(2*s^2))'); y1=h(0,1001/600,x);y2=h(-1,1001/600,x);y3=h(1,1001/600,x); plot(x,y1,'r+',x,y2,'k-',x,y3,'b*') (2)程序:z1=h(0,1,x);z2=h(0,2,x);z3=h(0,4,x); z4=h(0,1001/100,x); plot(x,z1,'r+',x,z2,'k-',x,z3,'b*',x,z4, 'y:') 作出24z mx y =+的函数图形。

程序:x=-5::5;y=-10::10;[X Y]=meshgrid(x,y);Z=1001*X.^2+Y.^4; mesh(X,Y,Z); 对于方程50.10200mxx --=,先画出左边的函数在合适的区间上的图形,借助于软件中的方程求根的命令求出所有的实根,找出函数的单调区间,结合高等数学的知识说明函数为什么在这些区间上是单调的,以及该方程确实只有你求出的这些实根。

最后写出你做此题的体会。

解:作图程序:(注:x 范围的选择是经过试探而得到的) x=::;y=x.^5-1001/200*; plot(x,y);grid on;由图形观察,在x=,x=0,x=附近各有一个实根 求根程序:solve('x^5-1001/200*') 结果:三个实根的近似值分别为: ,,由图形可以看出,函数在区间(,1)-∞-单调上升,在区间(1,1)-单调下降,在区间(1,)∞单调上升。

diff('x^5-1001/200*',x) 结果为5*x^4-1001/200solve('5*x^4-1001/200.')得到两个实根:与可以验证导函数在(, 1.0002499)-∞-内为正,函数单调上升 导函数在( 1.0002499,1.0002499)-内为负,函数单调下降 导函数在(1.0002499,)∞内为正,函数单调上升 根据函数的单调性,最多有3个实根。

求23m 0x e x -=的所有根。

(先画图后求解)(要求贴图) 作图命令:(注:x 范围的选择是经过试探而得到的) x=-5::15;y=exp(x)-3*1001*x.^2; plot(x,y);grid on;可以看出,在(-5,5)内可能有根,在(10,15)内有1个根将(-5,5)内图形加细,最终发现在,内有两个根。

用solve('exp(x)-3**x^2',x)可以求出3个根为:即:,,第二次练习教学要求:要求学生掌握迭代、混沌的判断方法,以及利用迭代思想解决实际问题。

设11()/23n nn m x x x x +⎧=+⎪⎨⎪=⎩,数列{}n x 是否收敛?若收敛,其值为多少?精确到8位有效数字。

解:程序代码如下(m=1000): >> f=inline('(x+1000/x)/2'); x0=3; for i=1:20; x0=f(x0);fprintf('%g,%g\n',i,x0); end 运行结果: 1, 11, 2, 12, 3, 13, 4, 14, 5, 15, 6, 16, 7, 17, 8, 18, 9, 19, 10, 20,由运行结果可以看出,,数列{}n x 收敛,其值为。

求出分式线性函数2121(),()x x m f x f x x m x m-+==++的不动点,再编程判断它们的迭代序列是否收敛。

解:取m=1000. (1)程序如下:f=inline('(x-1)/(x+1000)'); x0=2; for i=1:20;fprintf('%g,%g\n',i,x0);end运行结果:1, 11,2, 12,3, 13,4, 14,5, 15,6, 16,7, 17,8, 18,9, 19,10, 20,由运行结果可以看出,,分式线性函数收敛,其值为。

易见函数的不动点为(吸引点)。

(2)程序如下:f=inline('(x+1000000)/(x+1000)');x0=2;for i=1:20;x0=f(x0);fprintf('%g,%g\n',i,x0);end运行结果:1, 11,2, 12,3, 13,4, 14,5, 15,6, 16,7, 17,8, 18,9, 19,由运行结果可以看出,,分式线性函数收敛,其值为。

易见函数的不动点为(吸引点)。

下面函数的迭代是否会产生混沌?(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 运行结果:函数()(1)(01)f x x x x α=-≤≤称为Logistic 映射,试从“蜘蛛网”图观察它取初值为00.5x =产生的迭代序列的收敛性,将观察记录填人下表,若出现循环,请指出它的周期.(56页练习8)解:当α=时,程序代码如下: f=inline('*x*(1-x)'); x=[]; y=[]; x(1)=;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运行结果:当α=时,上述程序稍加修改,得:当α=时,得:当α=时,得:当α=时,得:当α=时,得:a b c为其它的值会得到什么图形?参考下表(取自63页练习13)对于Martin迭代,取参数,,解:取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:Nm(:,n+1)=[f(m(1,n),m(2,n)),g(m(1,n))];endplot(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,,20000),得:执行Martin (10,10000,-10000,20000),得:执行Martin (100,1000,-10,20000),得:执行Martin (-1000,17,4,20000),得:能否找到分式函数2ax b cx dx e +++(其中,,,,a b c d e 是整数),使它产生的迭代序列(迭代的初始值也是(。

相关主题