南郵數學實驗答案

第一次練習

教學要求:熟練掌握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<x&x<=1

    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<sqrt(1-xi^2);

        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也會發生跳躍,但由於誤差擴大,跳躍幅度相對應該比較小。


、通過本課程學習,談談你開設對這門課的認識,對教學以及上機實驗提出自己的和建議

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章