南邮数学实验答案

第一次练习

教学要求:熟练掌握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 x

limit((627*x-sin(627*x))/x^3,x,0)

结果:

1003003001/6

 

程序:

syms x

limit((627*x-sin(627*x))/x^3,x,inf)

结果:

0

 

 

1.2 ,求 

程序:

syms x

diff(exp(x)*cos(627*x/1000),2)

结果:

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


1.3 计算

程序:

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

结果:

2.13935019514228

 

 

 

 

 

1.4 计算

程序:

syms x

int(x^4/(627^2+4*x^2))

结果:

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

 

 

 

 

 

1.5

程序:

syms x

diff(exp(x)*cos(627*x),10)

结果:

- 9389137388146839380380277888*cos(627*x)*exp(x) -149759579095532896918284384*sin(627*x)*exp(x)

 

 

1.6 给出在的泰勒展式(最高次幂为4).

程序:

syms x

taylor(sqrt(627/1000+x),4)

结果:

(62500*627^(1/2)*1000^(1/2)*x^3)/246491883- (125*627^(1/2)*1000^(1/2)*x^2)/393129 + (627^(1/2)*1000^(1/2)*x)/1254 +(627^(1/2)*1000^(1/2))/1000

 

1.7 Fibonacci数列的定义是,

用循环语句编程给出该数列的前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          34          55

 

 Columns 11 through 20

 

          89         144         233         377         610         987        1597        2584        4181        6765

 


1.8 对矩阵,求该矩阵的逆矩阵,特征值,特征向量,行列式,计算,并求矩阵(是对角矩阵),使得。

程序与结果:

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

inv(a)

  0.2283    0.0679   -0.3642

        0    0.5000         0

   1.4567   -0.3642   -0.7283

eig(a)

-0.6865 + 1.5082i

 -0.6865 - 1.5082i

  2.0000     

[p,d]=eig(a)

p =

 

  0.2937 - 0.3372i   0.2937 +0.3372i   0.2425         

       0                  0             0.9701         

  0.8944             0.8944             0.0000         

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

d =

 

  -0.6865 + 1.5082i        0                  0         

       0            -0.6865 -1.5082i        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进行函数作图):

函数文件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)  (2)

程序:

t=-10:0.01:10;

x1=cos(t);

y1=sin(t);

z1=t;

plot3(x1,y1,z1,'k');hold on

x2=cos(;

y2=sin(2*t);

z2=t;

plot3(x2,y2,z2,'r');hold off

 

 

 

 

 

1.11 已知,在MATLAB命令窗口中建立A、B矩阵并对其进行以下操作:

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

(2) 分别计算下列各式:

解:(1)程序:

a=[4,-2,2;-3,0,5;1,5*627,3];b=[1,3,4;-2,0,3;2,-1,1];det(a)

-81538

(2) 2*a-b           

           7          -7           0

          -4           0           7

           0        6271           5

a*b                  12         10          12

           7         -14          -7

       -6263           0        9412

a.*b                   4          -6           8

           6           0          15

           2       -3135           3

a*inv(b)      -0.0000         0   2.0000

    0.0286    1.6000   0.0857

  716.8286 -626.6000 -984.5143

inv(a)*b        0.3464    0.5766   0.5382

    0.0007   -0.0008  -0.0007

   -0.1921    0.3460   0.9229

a^2          24       6262           4

          -7       15681           9

       -9398        9403       15686

A'                 4          -3           1

          -2           0        5005

           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*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 作出的函数图形。

程序:x=-5:0.1:5;y=-10:0.1:10;

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

mesh(X,Y,Z);

1.14对于方程,先画出左边的函数在合适的区间上的图形,借助于软件中的方程求根的命令求出所有的实根,找出函数的单调区间,结合高等数学的知识说明函数为什么在这些区间上是单调的,以及该方程确实只有你求出的这些实根。最后写出你做此题的体会。

解:作图程序:(注:x范围的选择是经过试探而得到的)

x=-1.7:0.02:1.7;y=x.^5-627/200*x-0.1;

plot(x,y);grid on;

由图形观察,在x=-1.5,x=0,x=1.5附近各有一个实根

求根程序:solve('x^5-627/200*x-0.1')

结果: 

 -1.4906852047544424910680160298802

                                                                                                      -0.019980020616193485540810824654811

                                                                         1.500676329192316320110463906588700421518815060273901630060819255

 1.495764171739511484743570420265584278874768154469167692755643546*i+ 0.004994448089159828249181473973153383352756761740138087409772356778

                                0.004994448089159828249181473973153383352756761740138087409772356778 -1.4957641717395114847435704202656*i

三个实根的近似值分别为:

-1.490685,-0.019980,1.500676

由图形可以看出,函数在区间单调上升,在区间单调下降,在区间单调上升。

diff('x^5-1001/200*x-0.1',x)

结果为5*x^4-1001/200

solve('5*x^4-1001/200.')得到两个实根:-1.0002499与1.0002499

可以验证导函数在内为正,函数单调上升

导函数在内为负,函数单调下降

导函数在内为正,函数单调上升

根据函数的单调性,最多有3个实根。

 

 

1.15  求的所有根。(先画图后求解)(要求贴图)

作图命令:(注:x范围的选择是经过试探而得到的)

x=-5:0.001:15;y=exp(x)-3*627*x.^2;

plot(x,y);grid on;

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

 

将(-5,5)内图形加细,最终发现在(-0.03,0.03)内有两个根。

用solve('exp(x)-3*627.0*x^2',x)可以求出3个根为:

 .18417113274368129311145677478702e-1

    13.162041092091149185726742857195

 -.18084038990284796648194134222365e-1

即:-0.018417,0.018084,13.16204


第二次练习

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

2.1 设,数列是否收敛?若收敛,其值为多少?精确到8位有效数字。

解:程序代码如下(m=627):

>> f=inline('(x+627/x)/2');

x0=3;

for i=1:20;

x0=f(x0);

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

end

运行结果:

1,3

2,3

3,3

4,3

5,3

6,3

7,3

8,3

9,3

10,3

11,3

12,3

13,3

14,3

15,3

16,3

17,3

18,3

19,3

20,3

由运行结果可以看出,,数列收敛,其值为3

 

2.2 求出分式线性函数的不动点,再编程判断它们的迭代序列是否收敛。

解:取m=627.

(1)程序如下:

f=inline('(x-1)/(x+627)');

x0=2;

for i=1:20;

x0=f(x0);

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

end

运行结果:

1,0.00158983

2,-0.00159236

3,-0.00159744

4,-0.00159745

5,-0.00159745

6,-0.00159745

7,-0.00159745

8,-0.00159745

9,-0.00159745

10,-0.00159745

11,-0.00159745

12,-0.00159745

13,-0.00159745

14,-0.00159745

15,-0.00159745

16,-0.00159745

17,-0.00159745

18,-0.00159745

19,-0.00159745

20,-0.00159745

由运行结果可以看出,,分式线性函数收敛,其值为-0.00159745。易见函数的不动点为--0.00159745(吸引点)。

(2)程序如下:

f=inline('(x+393129)/(x+627)');

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

解:程序如下:

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

运行结果:

 

 

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

3.3

3.5

3.56

3.568

3.6

3.84

序列收敛情况

T=2

T=4

T=8

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

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运行结果:

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

当=3.56时,得:

 

当=3.568时,得:

当=3.6时,得:

当=3.84时,得:

2.5 对于Martin迭代,取参数为其它的值会得到什么图形?参考下表(取自63页练习13)

m

m

m

-m

-m

m

-m

m/1000

-m

m/1000

m/1000

0.5

m/1000

m

-m

m/100

m/10

-10

-m/10

17

4

 

解:取m=627;迭代次数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的一些分析。

若分式线性函数的迭代收敛到指定的数,则为的不动点,因此

化简得:。

若为整数,易见。

取满足这种条件的不同的以及迭代初值进行编。

解:取m=10000;根据上述提示,取:

a=e=1,b=10000,c=1,d=0.

程序如下(初值为1200):

f=inline('(x+9)/(x^2+1)');

x0=1;

for i=1:100;

x0=f(x0);

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

end

运行结果如下:

1,5

2,0.538462

3,7.3945

4,0.294449

5,8.55291

6,0.236714

7,8.74661

8,0.228979

9,8.7692

10,0.228106

11,8.77169

12,0.22801

13,8.77197

14,0.227999

15,8.772

16,0.227998

17,8.772

18,0.227998

19,8.772

20,0.227998

21,8.772

22,0.227998

23,8.772

24,0.227998

25,8.772

26,0.227998

27,8.772

28,0.227998

29,8.772

30,0.227998

31,8.772

32,0.227998

33,8.772

34,0.227998

35,8.772

36,0.227998

37,8.772

38,0.227998

39,8.772

40,0.227998

41,8.772

42,0.227998

43,8.772

44,0.227998

45,8.772

46,0.227998

47,8.772

48,0.227998

49,8.772

50,0.227998

51,8.772

52,0.227998

53,8.772

54,0.227998

55,8.772

56,0.227998

57,8.772

58,0.227998

59,8.772

60,0.227998

61,8.772

62,0.227998

63,8.772

64,0.227998

65,8.772

66,0.227998

67,8.772

68,0.227998

69,8.772

70,0.227998

71,8.772

72,0.227998

73,8.772

74,0.227998

75,8.772

76,0.227998

77,8.772

78,0.227998

79,8.772

80,0.227998

81,8.772

82,0.227998

83,8.772

84,0.227998

85,8.772

86,0.227998

87,8.772

88,0.227998

89,8.772

90,0.227998

91,8.772

92,0.227998

93,8.772

94,0.227998

95,8.772

96,0.227998

97,8.772

98,0.227998

99,8.772

100,0.227998

若初值取为1000,运行结果:

1,0.011

2,9998.8

3,0.000200036

4,10000

5,0.0002

6,10000

7,0.0002

8,10000

9,0.0002

10,10000

11,0.0002

12,10000

13,0.0002

14,10000

15,0.0002

16,10000

17,0.0002

18,10000

19,0.0002

20,10000

21,0.0002

22,10000

23,0.0002

24,10000

25,0.0002

26,10000

27,0.0002

28,10000

29,0.0002

30,10000

31,0.0002

32,10000

33,0.0002

34,10000

35,0.0002

36,10000

37,0.0002

38,10000

39,0.0002

40,10000

41,0.0002

42,10000

43,0.0002

44,10000

45,0.0002

46,10000

47,0.0002

48,10000

49,0.0002

50,10000

51,0.0002

52,10000

53,0.0002

54,10000

55,0.0002

56,10000

57,0.0002

58,10000

59,0.0002

60,10000

61,0.0002

62,10000

63,0.0002

64,10000

65,0.0002

66,10000

67,0.0002

68,10000

69,0.0002

70,10000

71,0.0002

72,10000

73,0.0002

74,10000

75,0.0002

76,10000

77,0.0002

78,10000

79,0.0002

80,10000

81,0.0002

82,10000

83,0.0002

84,10000

85,0.0002

86,10000

87,0.0002

88,10000

89,0.0002

90,10000

91,0.0002

92,10000

93,0.0002

94,10000

95,0.0002

96,10000

97,0.0002

98,10000

99,0.0002

100,10000

若初值取为-1,运行结果:

1,4999.5

2,0.0006001

3,10000

4,0.0002

5,10000

6,0.0002

7,10000

8,0.0002

9,10000

10,0.0002

11,10000

12,0.0002

13,10000

14,0.0002

15,10000

16,0.0002

17,10000

18,0.0002

19,10000

20,0.0002

21,10000

22,0.0002

23,10000

24,0.0002

25,10000

26,0.0002

27,10000

28,0.0002

29,10000

30,0.0002

31,10000

32,0.0002

33,10000

34,0.0002

35,10000

36,0.0002

37,10000

38,0.0002

39,10000

40,0.0002

41,10000

42,0.0002

43,10000

44,0.0002

45,10000

46,0.0002

47,10000

48,0.0002

49,10000

50,0.0002

51,10000

52,0.0002

53,10000

54,0.0002

55,10000

56,0.0002

57,10000

58,0.0002

59,10000

60,0.0002

61,10000

62,0.0002

63,10000

64,0.0002

65,10000

66,0.0002

67,10000

68,0.0002

69,10000

70,0.0002

71,10000

72,0.0002

73,10000

74,0.0002

75,10000

76,0.0002

77,10000

78,0.0002

79,10000

80,0.0002

81,10000

82,0.0002

83,10000

84,0.0002

85,10000

86,0.0002

87,10000

88,0.0002

89,10000

90,0.0002

91,10000

92,0.0002

93,10000

94,0.0002

95,10000

96,0.0002

97,10000

98,0.0002

99,10000

100,0.0002

 


第三次练习

教学要求:理解线性映射的思想,会用线性映射和特征值的思想方法解决诸如天气等实际问题。

3.1 对,,求出的通项.

程序:

A=sym('[4,2;1,3]');

[P,D]=eig(A)

Q=inv(P)

syms n;                                               

xn=P*(D.^n)*Q*[1;2]                   

结果:

P =

 [  2,-1]

[  1,  1]

D =

 [ 5, 0]

[ 0, 2]

Q =

 [ 1/3,  1/3]

[-1/3,  2/3]

xn =

2*5^n-2^n

   5^n+2^n

 

 

3.2 对于练习1中的,,求出的通项.

程序:

A=sym('[2/5,1/5;1/10,3/10]');                  %没有sym下面的矩阵就会显示为小数

[P,D]=eig(A)

Q=inv(P)

xn=P*(D.^n)*Q*[1;2] 

结果:

P =

 [  2, -1]

[  1,  1]

D =

 [ 1/2,   0]

[   0, 1/5]

Q =

 [  1/3, 1/3]

[ -1/3,  2/3]

xn =

  2*(1/2)^n-(1/5)^n

   (1/2)^n+(1/5)^n

 

3.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,%g\n',i,t);

   end

end                                  

结论:在迭代18次后,发现数列存在极限为0.5

1,-0.597298

2,-0.282275

3,0.0445866

4,0.277259

5,0.402189

6,0.459283

7,0.483443

8,0.493333

9,0.497326

10,0.498929

11,0.499572

12,0.499829

13,0.499931

14,0.499973

15,0.499989

16,0.499996

17,0.499998

18,0.499999

19,0.5

20,0.5

 

3.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;

fori=1:1:100

       a=max(x);

       b=min(x);

       m=a*(abs(a)>abs(b))+b*(abs(a)<=abs(b));

    y=x/m;

    x=A*y;

end

x                                %也可以用f0,不能把x1,y一起输出

y

m

 

程序输出:

x1 =

 

    0.9819

    3.2889

   -1.2890

  -11.2213

 

y =

 

  -0.0875

   -0.2931

    0.1149

1.0000

m =

 

-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.2555

 

 

D =

 

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

end

P

 

 

P =

 

  Columns 1 through 14

 

    0.5000    0.5625   0.5938    0.6035    0.6069   0.6081    0.6085    0.6086   0.6087    0.6087    0.6087   0.6087    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.2174   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    0.1739   0.1739    0.1739    0.1739

 

  Columns 15 through 21

 

    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.1739    0.1739    0.1739   0.1739    0.1739    0.1739   0.1739

结论:9天后,天气状态趋于稳定P*=(0.6087,0.2174,0.1739)T

 

 

 

3.7 对于问题2,求出矩阵的特征值与特征向量,并将特征向量与上一题中的结论作对比. (122页练习14)

>> [P,D]=eig(A2)

 

P =

 

   -0.9094  -0.8069    0.3437

   -0.3248   0.5116   -0.8133

   -0.2598   0.2953    0.4695

 

 

D =

 

    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/23

syms k

pk=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),把它们用一个公式表示出来?

程序:for b=1:998

   a=sqrt((b+2)^2-b^2);

    if(a==floor(a))

       fprintf('a=%i,b=%i,c=%i\n',a,b,b+2)

   end

end

运行结果:

a=4,b=3,c=5

a=6,b=8,c=10

a=8,b=15,c=17

a=10,b=24,c=26

a=12,b=35,c=37

a=14,b=48,c=50

a=16,b=63,c=65

a=18,b=80,c=82

a=20,b=99,c=101

a=22,b=120,c=122

a=24,b=143,c=145

a=26,b=168,c=170

a=28,b=195,c=197

a=30,b=224,c=226

a=32,b=255,c=257

a=34,b=288,c=290

a=36,b=323,c=325

a=38,b=360,c=362

a=40,b=399,c=401

a=42,b=440,c=442

a=44,b=483,c=485

a=46,b=528,c=530

a=48,b=575,c=577

a=50,b=624,c=626

a=52,b=675,c=677

a=54,b=728,c=730

a=56,b=783,c=785

a=58,b=840,c=842

a=60,b=899,c=901

a=62,b=960,c=962

勾股数,的解是:

 

以下是推导过程:

由,有

显然,,从而是2的倍数.设,代入上式得到:

因为,从而.

 

4.2 将上一题中改为,,,,分别找出所有的勾股数.将它们与时的结果进行比较,然后用公式表达其结果。

(1)时通项:

a=8,b=6,c=10

a=12,b=16,c=20

a=16,b=30,c=34 

a=20,b=48,c=52

a=24,b=70,c=74

a=28,b=96,c=100

a=32,b=126,c=130

a=36,b=160,c=164

a=40,b=198,c=202

a=44,b=240,c=244

a=48,b=286,c=290

a=52,b=336,c=340

a=56,b=390,c=394

a=60,b=448,c=452

a=64,b=510,c=514

a=68,b=576,c=580

a=72,b=646,c=650

a=76,b=720,c=724

a=80,b=798,c=802

a=84,b=880,c=884

a=88,b=966,c=970

(2)5时通项: 

a=15,b=20,c=25

a=25,b=60,c=65

a=35,b=120,c=125

a=45,b=200,c=205

a=55,b=300,c=305

a=65,b=420,c=425

a=75,b=560,c=565

a=85,b=720,c=725

a=95,b=900,c=905

(3)6时通项

a=12,b=9,c=15

a=18,b=24,c=30

a=24,b=45,c=51

a=30,b=72,c=78

a=36,b=105,c=111

a=42,b=144,c=150

a=48,b=189,c=195

a=54,b=240,c=246

a=60,b=297,c=303

a=66,b=360,c=366

a=72,b=429,c=435

a=78,b=504,c=510

a=84,b=585,c=591

a=90,b=672,c=678

a=96,b=765,c=771

a=102,b=864,c=870

a=108,b=969,c=975

(4)7时通项

a=21,b=28,c=35

a=35,b=84,c=91

a=49,b=168,c=175

a=63,b=280,c=287

a=77,b=420,c=427

a=91,b=588,c=595

a=105,b=784,c=791

综上:当c-b=k为奇数时,通项

当c-b=k为偶数时,通项

 

4.3 对,(),对哪些存在本原勾股数?(140页练习12)

程序:for k=1:200

   for b=1:999

       a=sqrt((b+k)^2-b^2);

       if((a==floor(a))&gcd(gcd(a,b),(b+k))==1)

           fprintf('%i,',k);

            break;

       end

   end

end

运行结果:1,2,8,9,18,25,32,49,50,72,81,98,121,128,162,169,200,

 

4.4 设方程(11.15)的解构成数列,观察数列,,

,,.你能得到哪些等式?试根据这些等式推导出关于的递推关系式. (142页练习20)

解:1000以内解构成的数列,, ,  ,  如下:

   n      1           2           3           4           5           6

        2          7          26          97         362        1351

        1          4          15          56         209         780

    3          11         41         153         571        2131

   4          15          56         209         780        2911

    1          3          11          41         153         571

我们发现这些解的关系似乎是:

=     

=    

因为=,所以。

有以下结论:

    (4.1)

可以看成一个线性映射,令

,

(4.1)可写成:                 

 

4.5 选取对随机的,根据的概率求出的近似值。(取自130页练习7)

提示:(1)最大公约数的命令:gcd(a,b)

(2)randint(1,1,[u,v])产生一个在[u,v]区间上的随机整数

程序:

m=10000;s=0;

for i=1:m

    a=randint(1,2,[1,10^9]);

    if gcd(a(1),a(2))==1;

        s=s+1;

    end

end

pi=sqrt(6*m/s)

运行结果:

pi =

 

3.1510

 

4.6 用求定积分的MonteCarlo法近似计算。(102页练习16)

提示:Monte Carlo法近似计算的一个例子。

对于第一象限的正方形,内画出四分之一个圆


向该正方形区域内随即投点,则点落在扇形区域内的概率为.

投次点,落在扇形内的次数为,则,因此.

程序如下

n=100000;nc=0;

for i=1:n

    x=rand;y=rand;

   if(x^2+y^2<=1)

       nc=nc+1;

    end

end

pi=4*nc/n

解:程序:

a=0;b=1;m=1000;

H=1;s=0;

for i=1:m

    xi=rand();

    yi=H*rand();

    if yi

        s=s+1;

    end

end

pi=4*H*(b-a)*s/m

运行结果:

pi =

 

    3.1480

 


综合题

一、方程求根探究

  设方程

  1.用matlab命令求该方程的所有根;

  2.用迭代法求的所有根,设迭代函数为

1)验证取该迭代函数的正确性;

2)分别取初值为-1.1,-1,-0.9,….,0.9,1,1.1,观察迭代结果,是否得到了原方程的根;

3)总结出使得迭代序列收敛到每个根时,初值的范围,比如要使迭代序列收敛到0(方程的一个根)初值应该在什么集合中选取,找出每个根的这样的初值集合。寻找的方法,可以是理论分析方法或数值实验方法。

 

解答:

1. 用solve命令即可求出所有解;

2. 1)提示:验证原方程与同解,以及验证迭代函数在不动点附近的导数绝对值是否小于1

2)代码省略,结果:初值取-1.1,-1,-0.9,-0.8,0.7时收敛到-1,初值取-0.7,0.8,0.9,1,1.1时收敛到1,初值取-0.6,-0.5,。。。,0.5,0.6时收敛到0;

3)在中分别取初值,最后分别收敛到-1,1,0;在内有无穷多个收敛到-1的初值小开区间,也有无穷多个收敛到0的小开区间,它们相互交替着;这种状态反射到内,即:在内有无穷多个收敛到1的初值小开区间,也有无穷多个收敛到0的小开区间,它们也是相互交替着,这些小区间与内小开区间对应。

 

 

二、1.三次曲线

 (a)对k=0及其邻近的k的正值和负值,把的图形画在一个公共屏幕上。k的值是怎样影响到图形的形状的?

(b)求,它是一个二次函数。求该二次函数的判别式,对什么样的k值,该判别式为正?为零?为负?对什么k值有两个零点?一个或没有零点?现在请说明k的值对f 图形的形状有什么影响。

(c)对其他的k值做实验。当会发生什么情形?当呢?

 

 

解答:

(a)先用m文件定义函数f(x,k)=x^3+k*x

由fplot('[f(x,-0.6),f(x,-0.3),f(x,0),f(x,0.3),f(x,3)]',[-3,3])

得下图

可见k值不影响凹凸性,但单调性、单调区间以及极值随k值发生改变;k在0附近,小于0时,函数在某[-a,a]区间上单调递减,该区间长度随着k值增大而减小,k大于等于0时,函数单调增加。

(b) ;判别式,k为负、零、正时判别式分别为正、零、负;故k<0时,有两个零点,k=0时有一个零点,k>0时没有零点。以上说明原函数f(x)的驻点个数随着k值符号而变化,当k由负变正时,驻点由两个变成一个再到没有驻点,相应的单调区间由三个变成一个,单增单减单增,变为单增。

(c) k值越小单减区间长度越大,当时,f(x)单减区间变为无穷大对称区间,图形近乎垂直直线;当时,单增区间变为无穷大对称区间,图形近乎垂直直线。

 

 

 

 

2.四次曲线

(a)对k=-4及其邻近的k值,把的图形画在一个公共屏幕上。k的值是怎样影响到图形的形状的?

(b)求,它是一个二次函数。求该二次函数的判别式,对什么样的k值,该判别式为正?为零?为负?对什么k值有两个零点?一个或没有零点?现在请说明k的值对f 图形的形状有什么影响。

 

解答:

(a)先用m文件定义函数f(x,k)=x^4+k*x^3+6*x^2

  fplot('[f(x,-4.2),f(x,-5),f(x,-4.5),f(x,-4),f(x,-3.5),f(x,-2.5)]',[-1,4])

得图

由图可以看出,在x<1时,图形受k值影响不大,x>1时k值对图形的影响比较显著,通过改变k值画图发现:在-4附近,k小于-4时,曲线在某[a,b](a>0)区间内是上凸的,在其他区间内上凹;k大于-4时,上面的凸区间不存在,也就是曲线总是上凹的。

 (b) ,判别式,当时,判别式为0,时判别式大于0,时判别式小于0;也就是时有两个零点,时有一个零点时没有零点。由二阶导数与凹凸性的关系可知,在k=-4附近,(a)中关于曲线凹凸的判断基本上是正确的

 

 

三、对于级数,通过下面的步骤探索它的行为

1.      对于其部分和数列,当你试图求时,发生了什么?

解答:用命令sk=symsum(1/n^3/(sin(n))^2,1,k)及limit(sk,k,inf)得不到结果,命令symsum(1/n^3/(sin(n))^2,1,inf)也得不到结果。这表明极限可能并不存在。

 

2.      画出部分和数列的前100个点,它们是否显示出收敛?你估计极限是多少?

解答:前100个点图形如下

上图似乎显示着sk的极限存在,并且极限值约为4.8左右

 

3.      接着画出部分和数列的前200个点,用你自己的话论述部分和数列的行为。

此图可以更加确定,部分和数列sk的极限是存在的,结论跟2中的一样

 

4.      画出前400个点,当=355时发生了什么?计算数355/113,通过你的计算解释当=355时发生了什么。你猜测对的什么值同一现象可能还会出现,并通过实验加以验证。

解答:

此图否定了2与3的推断,因为部分和数列在=355时发生了跳跃;355/113=3.141592920353983近似等于圆周率(约为3.141592653589793),也就是355,而sin113=0,因此sin335的值很小,对应于部分和sk,在=355时由于分母很小因而得到一个很大的加项,于是图形上的点发生了跳跃。我们可以通过观察或计算的倍数来获得sk的比较大的加项,由于710=355*2,因此sk在=710时也会发生跳跃;我们也可直接由命令(1:500)*pi观察1500以内的数哪些接近的倍数(此略)。

另外,由的各种分数表示(近似)可知,以上的部分和sk在k=22时也会发生跳跃,因为。同上,当k=44,66,88,110,132等等时,sk也会发生跳跃,但由于误差扩大,跳跃幅度相对应该比较小。


、通过本课程学习,谈谈你开设对这门课的认识,对教学以及上机实验提出自己的和建议

 

 

 

你可能感兴趣的:(matlab,matlab,数学)