數(shù)值分析實驗報告_第1頁
數(shù)值分析實驗報告_第2頁
數(shù)值分析實驗報告_第3頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數(shù)值分析實驗報告(第二章)實驗題目:分別用二分法、牛頓迭代法、割線法、史蒂芬森迭代法求方程的根 ,觀察不同初始值下的收斂性,并給出結論。問題分析:題目有以下幾點要求:1. 不同的迭代法計算根,并比較收斂性。2. 選定不同的初始值,比較收斂性。實驗原理:各個迭代法簡述二分法:取有根區(qū)間的重點,確定新的有根區(qū)間的區(qū)間長度僅為區(qū)間長度的一版。對壓縮了的有根區(qū)間重復以上過程,又得到新的有根區(qū)間 ,其區(qū)間長度為的一半,如此反復,可得一系列有根區(qū)間,區(qū)間收斂到一個點即為根。牛頓迭代法:不動點迭代法的一種特例,具有局部二次收斂的特性。迭代 格式為割線法:是牛頓法的改進,具有超線性收斂的特性,收斂階為1.61

2、8.迭代 格式為史蒂芬森迭代法:采用不動點迭代進行預估校正。至少是平方收斂的。迭 代格式為這里可采用牛頓迭代法的迭代函數(shù)實驗內容:1. 寫出該問題的函數(shù)代碼如下:fun ctio npy= f(x)syms k;y=(kA2+1)*(k-1)A5;yy=diff(y,k);py(1)=subs(y,k,x);py(2)=subs(yy,k,x);endm(1)=a;while abs(a-b)>et=(a+b)/2;s1=f(a);2. 分別寫出各個迭代法的迭代函數(shù)代碼如下:二分法:function y=dichotomie(a,b,e)i=i+1;s3=f(t);if s1(1)*s3

3、(1)<=0b=t;elsea=t;endm(i)=t;i=i+1;endy=t,i+1,m;end牛頓迭代法 :function y=NewtonIterative(x,e)i=2;en=2*e;m(1)=x;while abs(en)>=es=f(x);t=x-s(1)/s(2);en=t-x;x=t;m(i)=t;end y=x,i+1,m;end牛頓割線法 :function y=Secant(x1,x2,e)i=3; m(1)=x1,m(2)=x2;while abs(x2-x1)>=es1=f(x1);s2=f(x2);t=x2-(x2-x1)*s2(1)/(s2

4、(1)-s1(1);x1=x2;x2=t;m(i)=t;i=i+1;endy=x2,i+1,m;end史蒂芬森迭代法 :Function p=StephensonIterative(x,e) i=2;m(2)=x;x=t;en=2*e;m(i)=t;while abs(en)>=ei=i+1;y=fai(x);endz=fai(y);p=x,i+1,m;endt=x-(y-xF2/(z-2*y+x);en=t-x;3. 因為 經(jīng)常被使用 ,故可以寫一個 函數(shù) 代碼如下 : function y=fai(x)s=f(x);y=x-s(1)/s(2);end4. 可以繪制不同的圖形來比較不同

5、迭代法的收斂性和不同初值下的收斂性代碼如下 :clear all;%相同初始值 , 不同迭代法下的收斂 x1=dichotomie(0,3,1e-10);x2=NewtonIterative(0,1e-10);x3=Secant(0,2, 1e-10);x4=StephensonIterative(0,1e-10);x1(2),x2(2),x3(2),x4(2)figure,subplot(2,2,1),plot(x1(3:x1(2),title(' 二分法 ');subplot(2,2,2),plot(x2(3:x2(2),title(' 牛頓迭代法 ');s

6、ubplot(2,2,3),plot(x3(3:x3(2),title(' 牛頓割線法 ');subplot(2,2,4),plot(x4(3:x4(2),title('史蒂芬森迭代法figure,subplot(2,2,1),plot(x1(4:x1(2)-1)-x1(1)./(x1(3:x1(2)-2)-x1(1),title('二分法 ' );subplot(2,2,2),plot(x2(4:x2(2)-1)-x2(1)./(x2(3:x2(2)-2)-x2(1),title('牛頓迭代法 ');subplot(2,2,3),plo

7、t(x3(4:x3(2)-1)-x3(1)./(x3(3:x3(2)-2)-x3(1),title('牛頓割線法 ' );subplot(2,2,4),plot(x4(4:x4(2)-1)-x4(1)./(x4(3:x4(2)-2)-x4(1),title('史蒂芬森迭代法%不同初始值 , 相同迭代法下的收斂性x5=dichotomie(-1,1,1e-10);x6=dichotomie(-2,3,1e-10);x7=dichotomie(0,4,1e-10);x8=dichotomie(-4,4,1e-10);x9=NewtonIterative(-2,1e-10);

8、x10=NewtonIterative(-4,1e-10);x11=NewtonIterative(4,1e-10);x12=NewtonIterative(6,1e-10);figure,subplot(1,2,1), plot(1:x1(2)-2,x1(3:x1(2),1:x5(2)-2,x5(3:x5(2),1:x6(2)-2,x6(3:x6(2),1:x7(2)-2,x7(3:x7(2),1:x8(2)- 2,x8(3:x8(2),title( '二分法 ');subplot(1,2,2),plot(1:x2(2)-2,x2(3:x2(2),1:x9(2)-2,x9(3

9、:x9(2),1:x10(2)-2,x10(3:x10(2),1:x11(2)-2,x11(3:x11(2),1:x12(2)-2,x12(3:x12(2),title( ' 牛頓迭代法 ');x13=Secant(-1,1, 1e-10);x14=Secant(-4,5, 1e-10);x15=Secant(0,7, 1e-10);x16=Secant(-8,2, 1e-10);x17=StephensonIterative(-1,1e-10);x18=StephensonIterative(-4,1e-10);x19=StephensonIterative(4,1e-10)

10、;x20=StephensonIterative(6,1e-10);figure,subplot(1,2,1),plot(1:x3(2)-2,x3(3:x3(2),1:x13(2)-2,x13(3:x13(2),1:x14(2)-2,x14(3:x14(2),1:x15(2)-2,x15(3:x15(2),1:x16(2)-2,x16(3:x16(2),title( '牛頓割線法 ');subplot(1,2,2),plot(1:x4(2)-2,x4(3:x4(2),1:x17(2)-2,x17(3:x17(2),1:x18(2)-2,x18(3:x18(2),1:x19(2)

11、-2,x19(3:x19(2),1:x20(2)-2,x20(3:x20(2),title( '史蒂芬森迭代法 ');實驗結果 :1. 各個迭代值分布1.510.50102030400.5 -01.510.500 1050100史蒂芬森迭代法02468圖1.1不同迭代法下的得到的迭代值迭代值的情況如下:二分法牛頓迭代法牛頓割線法史蒂芬森迭代法00001.50000000000.20000000002.00000000001.35555555560.75000000000.37049180320.33333333330.98161652831.12500000000.507644

12、20760.38071968010.99994600030.93750000000.61461894470.49828334190.99999999951.03125000000.69738690980.57049963330.98437500000.76155380910.63938062441.00781250000.81154111860.69427858790.99609375000.85067638570.74116926531.00195312500.88144821230.78027159970.99902343750.90572974000.8132927871當二分法的初始區(qū)

13、間選為,誤差限為,牛頓迭代法初值選為,誤差限為,牛頓割線法初始點為,誤差限為,史蒂芬森迭代法初始點選為,誤差限為,迭代情況如圖所示。迭代次數(shù)分別為38次,100次,140次,9次。故而,史蒂芬森迭代法速度最快,效果最 好。2收斂情況0-5-100-1-29x 10一分法0.8-0.711 h 1 0.61I-a0.5; 1 110.4牛頓迭代法10203040牛頓割線法0.4史蒂芬森迭代法 1X0.2- -0-0.2./ :=EE-0.4:>EE50100圖1.2不同迭代法下迭代值得收斂情況10203040二分法收斂效果較差,牛頓迭代法和牛頓割線法相近,史蒂芬森迭代法收斂次數(shù)高于1,效果

14、最好3. 不同初值的收斂情況O6543210-1-2-3-4050100150圖1.3二分法,牛頓迭代法下不同初值的收斂情況圖1.4牛頓割線法,史蒂芬森迭代法下不同初值的收斂情況1. 二分法的五個初始區(qū)間分別為;2. 牛頓迭代法的五個初始值分別為;3. 牛頓割線法的五個初始區(qū)間分別為;4. 史蒂芬森迭代法的五個初始值分別為;由圖可知,它們最終均達到收斂。收斂性分析及結論:1. 二分法收斂較慢且不能求解崇根,但算法簡單;此處牛頓法具有了平方收斂; 從迭代次數(shù)上看,牛頓割線法較牛頓法的多,所以收斂性較差,是超線性收 斂;史蒂芬森迭代法收斂效果最好。2. 因為牛頓迭代法是局部的二次收斂,所以要注重初

15、值的選取,本次實驗中選 擇的初值均得到了收斂,效果比較好。牛頓割線法也應注意初值的選取。(第三章)實驗題目:1. 區(qū)間作等距劃分:以為結點對函數(shù)一進行插值逼近(1) 分別取用牛頓插值對進行逼近,并在同一坐標系下做出 函數(shù)的圖形,進行比較。寫出插值函數(shù)對 的逼近程度與節(jié)點個數(shù)的關 系,并分析原因;(2) 試用三次樣條插值對進行逼近,在同一坐標下畫出圖形,觀察樣條插 值函數(shù)對 的逼近程度與節(jié)點個數(shù)的關系;(3) 整體插值有何局限性?如何避免?2. 已知一組數(shù)據(jù)如下,求其擬合曲線.表2.1數(shù)據(jù)表01234567891023478101114161819106.42108.2109.5110109.9

16、3110.49110.59110.6110.76111111.2(1) 求以上數(shù)據(jù)形如的擬合曲線及其平方誤差;(2) 求以上數(shù)據(jù)形如的擬合曲線及其平方誤差;(3) 通過觀察(1)( 2)的結果,寫出你對數(shù)據(jù)擬合的認識.問題分析:題目除上述要求之外還有以下幾點:1. 明確整體插值和分段插值的不同。牛頓插值多項式屬于整體插值,三次樣條 插值屬于低次分段插值。2將結果在同一坐標下繪制出。但是為了方便分析節(jié)點個數(shù)對于插值效果的影 響,也可以單獨繪制。3. 第二題中為了確定各個參數(shù)的大小,可以進行適當變換,轉化為線性,運用 最小二乘法,得到擬合。實驗原理:牛頓插值多項式:對于給定的插值節(jié)點構造次數(shù)不超過

17、的插值多項式使其滿足插值條件表得到三次樣條插值 :三次樣條插值函數(shù)式;在全進 上存在二階連續(xù)導數(shù) ; 其次符合插值條件 的三次樣條插值函數(shù) ,命令為實驗內容 :第一題:1. 牛頓插值函數(shù)的構造代碼如下 :function f=Newton(x0,y0)%牛頓多項式插值函數(shù)syms x;SZ=size(x0,2);a(1)=y0(1);y(:,1)=y0'for j=2:SZnx1=1;for i=1:SZ-j+1;nx2=nx1+j-1;y(i,j)=(y(i,j-1)-y(i+1,j-1)/(x0(nx1)-x0(nx2);nx1=nx1+1;在每個小區(qū)間上為三次多項中存在內置end

18、endf=y(1,1);for j=2:SZff=y(1,j);for i=1:j-1ff=ff*(x-x0(i);endf=f+ff;endend2. 牛頓和三次樣條插值情況及比較 :代碼如下 :clear all;clc;syms x;fx=1/(5+xA2);%牛頓多項式插值x0=-1:0.01:1;y0=subs(fx,x0);n1=1,5,10,20,25;n2=5,55,60,62,67;h1=2./n1;h2=2./n2;x1=-1:h1(1):1; y1=subs(fx,x1); f1=Newton(x1,y1); y01=subs(f1,x0);x2=-1:h1(2):1;

19、y2=subs(fx,x2); f2=Newton(x2,y2); y02=subs(f2,x0);x3=-1:h1(3):1; y3=subs(fx,x3); f3=Newton(x3,y3); y03=subs(f3,x0);x4=-1:h1(4):1; y4=subs(fx,x4); f4=Newton(x4,y4); y04=subs(f4,x0);x5=-1:h1(5):1; y5=subs(fx,x5); f5=Newton(x5,y5); y05=subs(f5,x0); figure,plot(x0,y0,x0,y01,x0,y02,x0,y03,x0,y04,x0,y05),

20、title(' 所有結果 ');x6=-1:h2(1):1; y6=subs(fx,x6); f6=Newton(x6,y6); y06=subs(f6,x0);x7=-1:h2(2):1; y7=subs(fx,x7); f7=Newton(x7,y7); y07=subs(f7,x0);x8=-1:h2(3):1; y8=subs(fx,x8); f8=Newton(x8,y8); y08=subs(f8,x0);x9=-1:h2(4):1; y9=subs(fx,x9); f9=Newton(x9,y9); y09=subs(f9,x0); x10=-1:h2(5):1;

21、 y10=subs(fx,x10); f10=Newton(x10,y10); y010=subs(f10,x0); figure,plot(x0,y0,x0,y06,x0,y07,x0,y08,x0,y09,x0,y010),title('龍格現(xiàn)象 ');%三次樣條插值 spline 自帶命令x0=-5:0.01:5;y0=subs(fx,x0);figure,subplot(2,3,1),plot(x0,y0),title('精確圖 ');y11=spline(x1,y1,x0);subplot(2,3,2),plot(x0,y11),title('

22、n=1' );y12=spline(x2,y2,x0);subplot(2,3,3),plot(x0,y12),title('n=5' );y13=spline(x3,y3,x0);subplot(2,3,4),plot(x0,y13),title('n=10' );'n=20' );y14=spline(x4,y4,x0);subplot(2,3,5),plot(x0,y14),title(y15=spline(x5,y5,x0);subplot(2,3,6),plot(x0,y15),title( 'n=25' );

23、figure,plot(x0,y0,x0,y11,x0,y12,x0,y13,x0,y14,x0,y15),title( ' 所有結果 '); 第二題 :代碼如下 :clear all ;clc;x=2 3 4 7 8 10 11 14 16 18 19;y=106.42 108.2 109.5 110 109.93 110.49 110.59 110.6 110.76 111 111.2; %Agenda 1A=(x.*x)' x' ones(11,1);A1=A'*A;y1=A'*y'c1=A1y1x1=2:0.1:19;y1=pol

24、yval(c1,x1);plot(x,y, 'k*' ,x1,y1, 'r' ),gtext( '曲線一 ' ),hold ony01=polyval(c1,x);delta1_2=sum(y-yO1).A2)%Agenda 2xx=-1./x;yy=log(y);B=ones(11,1) xx'B1=B'*B;yy1=B'*yy'c2=B1yy1;syms s;a=exp(c2(1);b=c2(2);a bf=a*exp(-b/s);x2=x1;y2=subs(f,x2);plot(x2,y2, 'b&#

25、39; ),gtext( '曲線二 ');y02=subs(f,x);delta2_2=sum(y-yO2).A2)實驗結果 :第一題:1. 牛頓插值結果所有結果-1-0.8-0.6-0.4-0.200.20.40.60.81圖2.1不同節(jié)點數(shù)的牛頓插值多項式綜合圖龍格現(xiàn)象圖2.2龍格現(xiàn)象由圖可知,2.三次樣條插值結果0.20.150.10.050精確圖-1n=110-505n=50.8 0.6 - -0.4 10.2 -0 1-5050.8n=10C Qn=20C Qn=25 0.80.80.60.60.6- -0.41J0.4 / .0.4 /0.2r;” _、0.20.2

26、000-505-5-5-5圖2.3不同節(jié)點下的三次樣條插值結果0.7所有結果0.60.50.40.30.20.1-4-3-2-1012345-5圖2.4不同節(jié)點數(shù)的三次樣條的綜合圖由圖可知,牛頓插值多項式在 較小的時候如差值效果良好,當變大時如就出現(xiàn)了龍格現(xiàn)象,三次樣條在各個子區(qū)間內為三次多項式,擬合效果好.第二題1.第一問的多項式擬合得到的擬合曲線為平方誤差為第二問的擬合曲線為平方誤差為2.擬合曲線如圖所示+曲線二101214161820曲線二£曲線圖2.5擬合情況112111110109108107106112111110109108107106從圖中可以看出曲線二大體符合黑點的

27、分布情況 ,擬合效果較好。結論:整體插值隨著節(jié)點個數(shù)的增多,多項式的次數(shù)也在升高。高次多項式的插 值會出現(xiàn)龍格現(xiàn)象,震蕩劇烈,逼近效果不理想。但是當節(jié)點很多時,低次插 值的精度又不夠,所以為了避免這一局限性采用分段低次插值 。其中三次樣條 插值有良好的收斂性和光滑性,效果較好。數(shù)據(jù)擬合時,可以選擇趨勢相似的函數(shù)形式,在求解相關參量時,將函數(shù) 進行適當變換,從而運用最小二乘法得到擬合結果。(第四章)實驗題目:設計區(qū)間分半求積算法、龍貝格求積算法和自適應辛普森求積算法的程序 觀察時,積分的結果,并給出相應的評價.問題分析:1.分半求積算法即為復合梯度求積。2.因為越大,在內震蕩地越嚴重,自適應辛普

28、森求積算法很難適用,計算復雜度會很高所以選取辛普森求積算法代替實驗原理:分半求積算法:將區(qū)間等分為個小區(qū)間,分點為利用定積分性質,有每個小區(qū)間上均用梯形求積公式,有即為復合梯形公式。龍貝格求積算法格求積公式。自適應辛普森求積算法辛普森算法。實驗內容:1.寫得各個求積算法的函數(shù)代碼如下:(1)分半求積算法:fun cti onf=CompositeTrapezoida( n)syms x;y=x*x*cos( n*x);m=1:100;a=-1;b=1;for i=1:100:將步長為的復合梯形公式進行査爾遜外推,就得到龍貝:按照被奇函數(shù)在區(qū)間上的變化來安排求積結點的xk=a+k*h;yk=su

29、bs(y,xk);f(i)=0;for j=1:m(i)f(i)=f(i)+(yk(j)+yk(j+1);endf(i)=h/2*f(i);endsyms x;function f=CompositeSimpson(n)syms x;y=x*x*cos(n*x);m=1:100;a=-1;b=1;for i=1:100h=(b-a)/(2*m(i);k=0:(2*m(i);xk=a+k*h;yk=subs(y,xk);f(i)=0;for j=1:m(i)f(i)=f(i)+(yk(2*j-1)+4*yk(2*j)+yk(2*j+1);endf(i)=h/3*f(i);endm;f'e

30、nd(4) 龍貝格求積算法function f=Romberg(n) y=x*x*cos(n*x);a=-1;b=1;h=b-a;fa=subs(y,a);fb=subs(y,b);T(1)=h/2*(fa+fb);m=1;while 1h=h/2;k=1:(2Am-1);xk=a+k*h;yk=subs(y,xk);su=sum(yk);S(1)=h/2*(fa+fb)+h*su;for i=1:mS(i+1)=S(i)+(S(i)-T(i)/(4Ai-1);end if(abs(S(m+1)-T(m)<epsilon) break ;T=S;if (n=1) break ; endm

31、=m+1;endf=S(m+1);end(5)自適應辛普森求積算法 function f=AdaptiveSimpson(n) epsilon=0.001;syms x;y=x*x*cos(n*x);a=-1;b=1;h=b-a;p=a b;p0=p;ep=epsilon;m=0;q=0;f=0;while 1n1=length(ep);h=p0(2)-p0(1);k=0:4;yk=subs(y,p0(1)+k*h/4);s0=h/6*(yk(1)+4*yk(3)+yk(5);s1=h/12*(yk(1)+4*yk(2)+yk(3);s2=h/12*(yk(3)+4*yk(4)+yk(5);i

32、f (abs(s0-s1-s2)<15*ep(1)f=f+s1+s2;p0=p0(2:n);if n1>=2ep=ep(2:n1);endq=q+1;elsem=m+1;p0=yk(1),yk(3),p0(2:n);if n1=1ep=ep(1)/2 ep(1)/2;elseif q=0endp=p0;elsep=p(1:q) p0;end2. 各個求積公式下的積分結果 代碼如下 :clear all ;clc;%復合梯形法y11=CompositeTrapezoida(1);y12=CompositeTrapezoida(10);y13=CompositeTrapezoida(1

33、00);y14=CompositeTrapezoida(500);1:100;y11;y12;y13;y14'%復合辛普森法y21=CompositeSimpson(1);y22=CompositeSimpson(10);y23=CompositeSimpson(100);y24=CompositeSimpson(500);2:2:200;y21;y22;y23;y24'endend%龍貝格法y31=Romberg(1);y32=Romberg(10);y33=Romberg(100);y34=Romberg(500);y31 y32 y33 y34%自適應辛普森法y41=Ad

34、aptiveSimpson(1)%以下復雜度太高 不出結果%y42=AdaptiveSimpson(10);%y43=AdaptiveSimpson(100);%y44=AdaptiveSimpson(500);%y41 y42 y43 y44實驗結果 :表 3.1 不同積分法得到的結果n1101005000.478283199-0.139940191復合梯形法-0.00601370080.0023823806400.478267253-0.140190999復合辛普森法-0.00985113540.0072247738070.478267257-0.140190998-0.249213561

35、龍貝格法0.6112212333459結果評價:龍貝格法的精度高,最接近精確解。因為被積分函數(shù)為隨著的增大,震蕩越劇烈。所以積分面積越來越小。(第五章)實驗題目:1. 分別取步長用龍格-庫塔法求解一計算到并與精確解 比較,觀察龍格-庫塔法的收斂性2. 分別取步長用顯示歐拉法和隱式歐拉法求解由結果分析算法的穩(wěn)定性3. 選擇某常微分方程初值問題的數(shù)值方法計算的近似值,并保證有4位有效數(shù)字.問題分析:1.龍格-庫塔有很多的格式,第一題以常用的四級四階龍格庫塔方法為例。2.假設,-,由于第三題可以轉化為求解常微分方程-的問題實驗原理:四級四階龍格-庫塔格式實驗內容:1.求解第一題代碼如下:clear

36、all;clc%以四級四階龍格庫塔格式為例t0=1;h=0.5 0.1 0.05 0.01;n=1./h+1;y1(1)=1;y2(1)=1;y3(1)=1;y4(1)=1;t1=1:0.5:2;t2=1:0.1:2;t3=1:0.0 5:2;t4=1:0.01:2;for j=2: n(1)k1=t1(j-1)*y1(j-1)A(1/3);k2=(t1(j-1)+h/2)*(y1(j-1)+(h/2)*k1F(1/3);k3=(t1(j-1)+h/2)*(y1(j-1)+(h/2)*k2F(1/3); k4=t1(j)*(y1(j-1)+h(1)*k3)A(1/3);y1(j)=y1(j-1

37、)+h(1)/6*(k1+2*k2+2*k3+k4);endfor j=2:n(2)k1=t2(j-1)*y2(j-1)A(1/3);k2=(t2(j-1)+h(2)/2)*(y2(j-1)+(h(2)/2)*k1)A(1/3);k3=(t2(j-1)+h(2)/2)*(y2(j-1)+(h(2)/2)*k2)A(1/3);k4=t2(j)*(y2(j-1)+h(2)*k3)A(1/3); y2(j)=y2(j-1)+h(2)/6*(k1+2*k2+2*k3+k4);endfor j=2:n(3)k1=t3(j-1)*y3(j-1)A(1/3);k2=(t3(j-1)+h(3)/2)*(y3(

38、j-1)+(h(3)/2)*k1)A(1/3);k3=(t3(j-1)+h(3)/2)*(y3(j-1)+(h(3)/2)*k2)A(1/3);k4=t3(j)*(y3(j-1)+h(3)*k3)A(1/3);y3(j)=y3(j-1)+h(3)/6*(k1+2*k2+2*k3+k4);endfor j=2:n(4)k1=t4(j-1)*y4(j-1)A(1/3);k2=(t4(j-1)+h(4)/2)*(y4(j-1)+(h(4)/2)*k1)A(1/3);k3=(t4(j-1)+h(4)/2)*(y4(j-1)+(h(4)/2)*k2)A(1/3);k4=t4(j)*(y4(j-1)+h(

39、4)*k3)A(1/3);y4(j)=y4(j-1)+h(4)/6*(k1+2*k2+2*k3+k4);endx=1:0.01:2;syms tyy=(tA2+2)/3)A(3/2);yy1=subs(yy,x);figure,subplot(2,3,1),plot(x,yy1),title('精確值 ');subplot(2,3,2),plot(x,yy1,t1,y1),title('h=0.5' );subplot(2,3,3),plot(x,yy1,t2,y2),title('h=0.1' ;subplot(2,3,4),plot(x,yy

40、1,t3,y3),title('h=0.05' );subplot(2,3,5),plot(x,yy1,t4,y4),title('h=0.01' );'所有結果 ');subplot(2,3,6),plot(x,yy1,t1,y1,t2,y2,t3,y3,t4,y4),title(2. 求解第二題代碼如下 :clear all;t0=0;a=0.25;%通過更改 a, 更改取值區(qū)間syms t yy=exp(-50*t);x=0:0.001:a;yy1=subs(yy,x);h=0.1 0.05 0.01 0.005;n=a./h+1;t1=0

41、:0.1:a;t2=0:0.05:a;t3=0:0.01:a;t4=0:0.005:a;%顯式歐拉法y1(1)=100;y2(1)=100;y3(1)=100;y4(1)=100;for j=2:n(1)y1(j)=y1(j-1)+h(1)*(-50)*y1(j-1);endfor j=2:n(2)y2(j)=y2(j-1)+h(2)*(-50)*y2(j-1);endfor j=2:n(3)y3(j)=y3(j-1)+h(3)*(-50)*y3(j-1);endfor j=2:n(4)y4(j)=y4(j-1)+h(4)*(-50)*y4(j-1);endfigure,plot(x,yy1,

42、t1,y1,t2,y2,t3,y3,t4,y4), .gtext( 'h=0.1' ),gtext( 'h=0.05' ),gtext( 'h=0.01' ),gtext( 'h=0.005' );%隱式歐拉法y5(1)=100;y6(1)=100;y7(1)=100;y8(1)=100;for j=2:n(1)y5(j)=y5(j-1)/(50*h(1)+1);endfor j=2:n(2)y6(j)=y6(j-1)/(50*h(2)+1);endfor j=2:n(3)y7(j)=y7(j-1)/(50*h(3)+1);end

43、for j=2:n(4)y8(j)=y8(j-1)/(50*h(4)+1);endfigure,plot(x,yy1,t1,y5,t2,y6,t3,y7,t4,y8), gtext( 'h=0.1' ),gtext( 'h=0.05' ),gtext( 'h=0.01' ),gtext( 'h=0.005' ) %相同步長下的穩(wěn)定性比較figuresubplot(2,2,1),plot(x,yy1, 'k' ,t1,y1, 'b' ,t1,y5, 'r' ),title( '

44、h=0.1' );'b' ,t2,y6, 'r' ),title( 'h=0.05' );'b' ,t3,y7, 'r' ),title( 'h=0.01' );'b' ,t4,y8, 'r' ),title( 'h=0.005' );subplot(2,2,2),plot(x,yy1, 'k' ,t2,y2 subplot(2,2,3),plot(x,yy1, 'k' ,t3,y3 subplot(2,2,4)

45、,plot(x,yy1, 'k' ,t4,y43. 求解第三題 代碼如下 :%避免t=0作分母,所以用隱式歐拉法clear all;t0=0;h=0.0005 0.0001 0.00005;n=1./h+1;y1(1)=5;y2(1)=5;y3(1)=5;y4(1)=5;t1=0:0.0005:1;t2=0:0.0001:1;t3=0:0.00005:1;for j=2:n(1)y1(j)=y1(j-1)+h(1)*sin(t1(j)/t1(j);endfor j=2:n(2)y2(j)=y2(j-1)+h(2)*sin(t2(j)/t2(j);endfor j=2:n(3)y

46、3(j)=y3(j-1)+h(3)*sin(t3(j)/t3(j);endformat longy(1)=y1( n( 1)-y1(1);y(2)=y2( n( 2)-y2(1);y(3)=y3( n(3)-y3(1);y實驗結果:1.第一題結果32.521.5111.52精確值h=0.5h=0.1h=0.01所以結果h=0.0511.52圖4.1不同步長下的四級龍格-庫塔的解2.顯示歐拉法求解結果2000-1000 L00.050.10.150.20.251500h=0.11000p/h500h=0.05h=0.01. c ecuh=0.0050-500圖4.2不同步長下的顯式歐拉法的解隱式

47、歐拉法求解結果100908070h=0.16050h=0.05h=0.014030h=0.00520100.050.10.150.20.25圖4.3不同步長下的隱式歐拉法的解顯式與隱式的穩(wěn)定性比較結果2000h=0.11000500100000-500-1000-10000.10.1100500.10.20.30.40.1h=0.050.20.30.4100501 A1 41 00.20.30.4h=0.01h=0.0050.20.30.4圖4.4不同步長下顯式與隱式的穩(wěn)定性比較3. 第三題結果表4.1不同步長下的積分結果rH x.步長0.00050.00010.00005積分結果0.9460

48、434318390180.9460751436654500.946079107079003題目要求保證有4位有效數(shù)字,所以所求結果為:0.9461結果分析:四級四階龍格庫塔法具有大范圍的收斂性。四級四階龍格庫塔法每計算一步需要計算四次的值,計算有一定的復雜性。當步長為0.1和0.05時顯式歐拉法不具有穩(wěn)定性。隱式歐拉法在各個步長下的穩(wěn)定情況相似 ,均有較好的穩(wěn)定性 。(第六章)實驗題目 :使用列主元高斯消去法解希爾伯特矩陣 方程組 考察給定的及相應的 時結果的變化 ,分析其中的原因并給出結論 ,其中問題分析 :1. 希爾伯特矩陣是病態(tài)的 , 的微小變化會造成解發(fā)生很大變化 。2. 刻畫矩陣病態(tài)

49、程度的量為條件數(shù) 。條件數(shù)越大 ,矩陣性能越差 ??梢杂嬎銞l 件數(shù)來分析解變化很大的現(xiàn)象 。實驗原理 :高斯列主元素消元法 :將矩陣 按列取絕對值最大項進行行行調換 ,將其以下部分消為 , 不斷循環(huán)直到 化為上三角的過程 。實驗內容 :1. 高斯列主元素消元法函數(shù)代碼如下 :function A b=GaussElimination(A,b)n=size(A,1);for i=1:n-1q=max(abs(A(i:n,i);for j=i:nif(abs(A(j,i)=q)k=j;endendu=A(i,i:n);v=b(i);A(i,i:n)=A(k,i:n);b(i)=b(k);A(k,i

50、:n)=u;b(k)=v;for l=i+1:nA(l,i)=A(l,i)/A(i,i);b(l)=b(l)-A(l,i)*b(i);for s=i+1:nA(l,s)=A(l,s)-A(l,i)*A(i,s);endendendend2. 計算不同階數(shù)下的希爾伯特矩陣的線性方程的解 ,并通過更改 ,對其做微小調整,觀察解的變化代碼如下 :clear all ;clc;n=5 10 20 50 100;%5階 a=1;H=zeros(n(a);for i=1:n(a)for j=1:n(a) H(i,j)=1/(i+j-1); endendb=ones(1,n(a);b1=b+0.0001;HH,bb=GaussElimination(H,b);HH1,bb1=GaussElimination(H,b1);for i=n(a):-1:1s=0;s1=0;for j=i+1:n(a) s=s+HH(i,j)*x1(1,j);s1=s1+HH1(i,j)*xx1(1,j); endx1(1,i)=(bb(1,i)-s)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論