資源描述:
《數(shù)值分析上機(jī)實(shí)習(xí)題及答案》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、[數(shù)值分析]2017-2018第二學(xué)期上機(jī)實(shí)習(xí)題111:編程計(jì)算,其中c=4.4942′10307,給出并觀察計(jì)算結(jié)果,若有問題,分析之。解:matlab編程如下:圖一:編程圖二:運(yùn)行結(jié)果Matlab中,formatlongg對(duì)雙精度,顯示15位定點(diǎn)或浮點(diǎn)格式,由上圖可知,當(dāng)輸入較小的n值(n分別取10,100,1000,100000,100000000)的時(shí)候,結(jié)果后面的指數(shù)中總是含有e-308,這和題目中的C值很相似,我認(rèn)為是由于分母中的C值相對(duì)于n值過大,出現(xiàn)了“大數(shù)吃小數(shù)”的現(xiàn)象,這是不符合算法原則的。2:
2、利用牛頓法求方程于區(qū)間的根,考慮不同初值下牛頓法的收斂情況。解:牛頓法公式為:xk+1=xk-xk-lnxk-21-1xk利用matlab編程11當(dāng)輸入初值=3的時(shí)候并不能收斂。輸入2.8依舊不能收斂。考慮利用plot函數(shù)繪制函數(shù)f=x-lnx-2的圖像,發(fā)現(xiàn)其在區(qū)間[2,4]內(nèi)并無根。3:給出在xk=0+0.25k處的值yk,k=0,1,2,3,4.請(qǐng)給出由節(jié)點(diǎn)xk確定的三次樣條插值函數(shù)S(x),使其滿足條件:S/(0)=0,S/(1)=-0.074,分析逼近效果如何?解:根據(jù)李慶揚(yáng)《數(shù)值分析》第五版Page43
3、的公式可以計(jì)算得到三次樣條插值。11根據(jù)6.11和6.12式解得系數(shù)。d058.5366d117.15728d28.67705d32.0934d40.905136列方程A*M=B;A=B=解得M為M=由此和6.8式可得其三次樣條函數(shù)如下:11得到最終的插值結(jié)果如下:總的來說,利用三次樣條插值的精度還是比較高的。4:給出一個(gè)通用多項(xiàng)式擬合程序,輸入部分:數(shù)據(jù)組個(gè)數(shù)為n,擬合的誤差限e輸出部分:多項(xiàng)式次數(shù)、系數(shù)向量、擬合的實(shí)際誤差。11function[Aceff]=zxec()x=input('請(qǐng)輸入變量x:');y
4、=input('請(qǐng)輸入變量y:');e=input('請(qǐng)輸入擬合限差:');fori=1:10A=polyfit(x,y,i);%A為擬合多項(xiàng)式系數(shù)向量Y=polyval(A,x);%Y為擬合多項(xiàng)式ifsum((Y-y).^2)5、2.513.015.6>>[A,c,eff]=zxec請(qǐng)輸入變量x:[12345678910]請(qǐng)輸入變量y:[1.33.54.25.07.08.810.112.513.015.6]請(qǐng)輸入擬合限差:2.5011.5382-0.36002.3447A=1.5382-0.3600c=1eff=2.3447>>實(shí)例擬合結(jié)果如下圖所示:11由以上擬合結(jié)果可知,在給定的限差的情況下,擬合結(jié)果為一次,得到的實(shí)際誤差達(dá)到2.3447,可見擬合效果并不是很理想。如果繼續(xù)縮小誤差限差值,那么擬合次數(shù)將會(huì)增加,擬合的結(jié)果也將會(huì)更加趨近于
6、真實(shí)結(jié)果。5:已知,利用復(fù)化梯形公式、復(fù)化Simpson公式和Romberg算法求的近似值;并觀察實(shí)際計(jì)算結(jié)果,比較它們的收斂速度。解:①復(fù)化梯形公式計(jì)算結(jié)果11分析:從結(jié)果中不斷改進(jìn)等分點(diǎn)的個(gè)數(shù),可以看出復(fù)化梯形公式的結(jié)果需要等分至少20點(diǎn)才能開始收斂,若想收斂到精確值,則需要增加區(qū)間等分點(diǎn)數(shù)。function[Y]=fhdx()n=input('請(qǐng)輸入要等分x區(qū)間的個(gè)數(shù):');h=1/n;s=0;fork=1:n-1x=k*h;y=4/(1+x^2);s=2*y+s;Y=h/2*(6+s);holdon;plo
7、t(x,Y,'r*');gridon;end程序代碼:②復(fù)化Simpson公式計(jì)算結(jié)果11function[Y]=fhsimpson()n=input('請(qǐng)輸入將x區(qū)間等分的個(gè)數(shù):');h=1/n;s1=0;s2=0;fork=1:2*n-1x=k*h/2;y=4/(1+x^2);ifmod(k,2)==0s1=s1+2*y;elses2=s2+4*y;endY=h/6*(6+s1+s2);holdon;plot(x,Y,'r*');end分析:從結(jié)果圖中可以看出對(duì)于復(fù)化Simpson公式,只需要對(duì)區(qū)間等分兩次(即
8、n=2)就可以得到非常理想的結(jié)果,說明復(fù)化Simpson公式的收斂速度非???。程序代碼:③Romberg算法11分析:Romberg算法根據(jù)給定的限差可以直接得出收斂值,收斂速度快。functions=romberg1(a,b,eps)ifnargin==2eps=1.0^-6;elseifnargin<2errorreturnendt1=10000;t2=