当前位置:文档之家› 南邮_数学实验答案(全)

南邮_数学实验答案(全)

第一次练习

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

补充命令

vpa(x,n) 显示x 的n 位有效数字,教材102页

fplot(‘f(x)’,[a,b]) 函数作图命令,画出f(x)在区间[a,b]上的图形

在下面的题目中m 为你的学号的后3位(1-9班)或4位(10班以上) 1.1 计算30sin lim

x mx mx x →-与3sin lim x mx mx

x

→∞- 程序:

syms x

limit((1001*x-sin(1001*x))/x^3,x,0) 结果:

1003003001/6

程序: syms x

limit((1001*x-sin(1001*x))/x^3,x,inf) 结果: 0

1.2 cos

1000

x

mx

y e =,求''y 程序: syms x

diff(exp(x)*cos(1001*x/1000),2) 结果:

-2001/1000000*exp(x)*cos(1001/1000*x)-1001/500*exp(x)*sin(1001/1000*x)

1.3 计算

2

2

11

00

x

y e dxdy +??

程序:

dblquad(@(x,y) exp(x.^2+y.^2),0,1,0,1) 结果:

2.13935019514228

1.4 计算4

2

2

4x dx m x

+? 程序: syms x

int(x^4/(1000^2+4*x^2)) 结果:

1/12*x^3-1002001/16*x+1003003001/32*atan(2/1001*x)

1.5 (10)cos ,x y e mx y =求

程序: syms x

diff(exp(x)*cos(1000*x),10) 结果:

-1009999759158992000960720160000*exp(x)*cos(1001*x)-10090239998990319040000160032*exp(x)*sin(1001*x)

1.6 0x =的泰勒展式(最高次幂为4).

程序: syms x

taylor(sqrt(1001/1000+x),5) 结果:

1/100*10010^(1/2)+5/1001*10010^(1/2)*x-1250/1002001*10010^(1/2)*x ^2+625000/1003003001*10010^(1/2)*x^3-390625000/1004006004001*10010^(1/2)*x^4

1.7 Fibonacci 数列{}n x 的定义是121,1x x ==,

12,(3,4,)n n n x x x n --=+=用循环语句编程给出该数列的前20项(要求

将结果用向量的形式给出)。 程序: x=[1,1]; for n=3:20

x(n)=x(n-1)+x(n-2); end x

结果:

Columns 1 through 10

1 1

2

3 5 8 13 21 3

4 55

Columns 11 through 20

89 144 233 377 610 987 1597 2584 4181 6765

1.8对矩阵

211

020

41

1000

A

m

??

?

-

?

= ?

?

-

?

??

,求该矩阵的逆矩阵,特征值,特

征向量,行列式,计算6

A,并求矩阵,P D(D是对角矩阵),使得1

A PDP-

=。

程序与结果:

a=[-2,1,1;0,2,0;-4,1,1001/1000];

inv(a)

0.50100100100100 -0.00025025025025 -0.50050050050050

0 0.50000000000000 0

2.00200200200200 -0.50050050050050 -1.00100100100100

eig(a)

-0.49950000000000 + 1.32230849275046i

-0.49950000000000 - 1.32230849275046i

2.00000000000000

[p,d]=eig(a)

p =

0.3355 - 0.2957i 0.3355 + 0.2957i 0.2425

0 0 0.9701

0.8944 0.8944 0.0000

注:p的列向量为特征向量

d =

-0.4995 + 1.3223i 0 0

0 -0.4995 - 1.3223i 0

0 0 2.0000

a^6

11.9680 13.0080 -4.9910

0 64.0000 0

19.9640 -4.9910 -3.0100

1.9 作出如下函数的图形(注:先用M 文件定义函数,再用fplot 进行函数作图):

1202

()12(1)12

x x f x x x ?

≤≤??=??-<≤??

函数文件f.m: function y=f(x)

if 0<=x&x<=1/2

y=2.0*x;

else 1/2

y=2.0*(1-x);

end

程序:fplot(@f,[0,1])

1.10 在同一坐标系下作出下面两条空间曲线(要求两条曲线用不同的颜色表示)

(1)cos sin x t y t z t =??=??=? (2)2cos 2sin x t y t z t =??

=??=?

程序:

t=-10:0.01: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

1.11 已知422134305,203153211A B m -???? ? ?

=-=-- ? ? ? ?-????

,在MA TLAB 命令窗口中

建立A 、B 矩阵并对其进行以下操作:

(1) 计算矩阵A 的行列式的值det()A

(2) 分别计算下列各式:1122,*,.*,,,,T A 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 7

0 10011 5

a*b 12 10 12 7 -14 -7

-10003 0 15022

a.*b 4 -6 8

6 0 15 2 -5005 3

a*inv(b) 1.0e+003 *

-0.0000 0 0.0020 0.0000 0.0016 0.0001 1.1443 -1.0006 -1.5722

inv(a)*b 0.3463 0.5767 0.5383

0.0004 -0.0005 -0.0005 -0.1922 0.3460 0.9230

a^2 24 10002 4

-7 25031 9 -15008 15013 25036 A' 4 -3 1

-2 0 5005 2 5 3

1.12

已知22

()2()x f x μσ--=分别在下列条件下画出)(x f 的图形:

(1)/600m σ=,μ分别为0,1,1-(在同一坐标系上作图); (2)0μ=,σ分别为1,2,4,/100m (在同一坐标系上作图). (1)程序: x=-5:0.1: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:')

1.13 作出24

z mx y =+的函数图形。 程序:x=-5:0.1:5;y=-10:0.1:10;

[X Y]=meshgrid(x,y);Z=1001*X.^2+Y.^4; mesh(X,Y,Z);

1.14对于方程5

0.10200

m

x x -

-=,先画出左边的函数在合适的区间上的图形,借助于软件中的方程求根的命令求出所有的实根,找出函数的单调区间,结合高等数学的知识说明函数为什么在这些区间上是单调的,以及该方程确实只有你求出的这些实根。最后写出你做此题的体会。 解:作图程序:(注:x 范围的选择是经过试探而得到的) x=-1.7:0.02:1.7;y=x.^5-1001/200*x-0.1; plot(x,y);grid on;

由图形观察,在x=-1.5,x=0,x=1.5附近各有一个实根 求根程序:solve('x^5-1001/200*x-0.1') 结果:

-1.4906852047544424910680160298802 -.19980020616193485540810824654811e-1

.49944480891598282491814739731534e-2-1.4957641717395114847435704202656*i

.49944480891598282491814739731534e-2+1.4957641717395114847435704202656*i 1.5006763291923163201104639065887 三个实根的近似值分别为:

-1.490685,-0.019980,1.500676 由图形可以看出,函数在区间(,1)-∞-单调上升,在区间(1,1)-单调下降,在区间(1,)∞单调上升。

diff('x^5-1001/200*x-0.1',x) 结果为5*x^4-1001/200

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

1.15 求23m 0x e x -=的所有根。(先画图后求解)(要求贴图) 作图命令:(注:x 范围的选择是经过试探而得到的) x=-5:0.001:15;y=exp(x)-3*2926*x.^2; plot(x,y);grid on;

6

可以看出,在(-5,5)内可能有根,在(10,15)内有1个根

将(-5,5)内图形加细,最终发现在(-0.03,0.03)内有两个根。 用solve('exp(x)-3*2926.0*x^2',x)可以求出3个根为: .18417113274368129311145677478702e-1 13.162041092091149185726742857195 -.18084038990284796648194134222365e-1 即:-0.018417,0.018084,13.16204

第二次练习

教学要求:要求学生掌握迭代、混沌的判断方法,以及利用迭代思想解决实际问题。

2.1 设11

()/23n n

n m x x x x +?

=+???=?,数列{}n x 是否收敛?若收敛,其值为多少?

精确到8位有效数字。 解:程序代码如下(m=2926): >> f=inline('(x+2926/x)/2'); x0=3; for i=1:20; x0=f(x0);

fprintf('%g,%g\n',i,x0); end 运行结果:

1,168.167 11,31.6228 2,87.0566 12,31.6228 3,49.2717 13,31.6228 4,34.7837 14,31.6228 5,31.7664 15,31.6228 6,31.6231 16,31.6228 7,31.6228 17,31.6228 8,31.6228 18,31.6228 9,31.6228 19,31.6228 10,31.6228 20,31.6228

由运行结果可以看出,,数列{}n x 收敛,其值为31.6228。

2.2求出分式线性函数

2

12

1

(),()

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;

x0=f(x0);

fprintf('%g,%g\n',i,x0);

end

运行结果:

1,0.000998004 11,-0.001001

2,-0.000999001 12,-0.001001

3,-0.001001 13,-0.001001

4,-0.001001 14,-0.001001

5,-0.001001 15,-0.001001

6,-0.001001 16,-0.001001

7,-0.001001 17,-0.001001

8,-0.001001 18,-0.001001

9,-0.001001 19,-0.001001

10,-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,%g\n',i,x0); end 运行结果:

1,998.006 11,618.332 2,500.999 12,618.302 3,666.557 13,618.314 4,600.439 14,618.309 5,625.204 15,618.311 6,615.692 16,618.31 7,619.311 17,618.311 8,617.929 18,618.31 9,618.456 19,618.31 10,618.255 20,618.31

由运行结果可以看出,,分式线性函数收敛,其值为618.31。易见函数的不动点为618.31(吸引点)。 2.3 下面函数的迭代是否会产生混沌?(56页练习7(1))

1202

()12(1)1

2

x x f x x x ?

≤≤??=??-<≤??

解:程序如下:

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));

end

plot(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 -

2 abs(x - 1/2)

00.050.10.150.20.250.30.350.40.450.5

x

2.4 函数()(1)(01)f x x x x α=-≤≤称为Logistic 映射,试从“蜘蛛网”图观察它取初值为00.5x =产生的迭代序列的收敛性,将观察记录填人下表,若出现循环,请指出它的周期.(56页练习8)

解:当α=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)); end

plot (x,y,'r'); hold on; syms x;

ezplot(x,[0,1]); ezplot(f(x),[0,1]); axis([0,1,0,1]); hold off 运行结果:

-(33 x (x - 1))/10

x

当α=3.5时,上述程序稍加修改,得:

-(7 x (x - 1))/2

00.10.20.30.40.50.60.70.80.91

x

当α=3.56时,得:

-(89 x (x - 1))/25

00.10.20.30.40.50.60.70.80.91

x

当 =3.568时,得:

-(446 x (x - 1))/125

x

当α=3.6时,得:

-(18 x (x - 1))/5

00.10.20.30.40.50.60.70.80.91

x

当α=3.84时,得:

-(96 x (x - 1))/25

x

a b c为其它的值会得到什么图形?参考下

2.5对于Martin迭代,取参数,,

表(取自63页练习13)

解:取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),得:

x 104执行Martin(-10000,-10000,10000,20000),得:

x 104

执行Martin(-10000,10,-10000,20000),得:

执行Martin(10,10,0.5,20000),得:

相关主题
文本预览
相关文档 最新文档