數(shù)值分析大作業(yè)_第1頁
數(shù)值分析大作業(yè)_第2頁
數(shù)值分析大作業(yè)_第3頁
數(shù)值分析大作業(yè)_第4頁
數(shù)值分析大作業(yè)_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

實(shí)用文檔數(shù)值分析報(bào)大作業(yè)班級(jí):鐵道2班專業(yè):道路與鐵道工程姓名:蔡敦錦學(xué)號(hào):13011260、序言該數(shù)值分析大作業(yè)是通過C語言程序編程在MicrosoftVisualC++6.0編程軟件上運(yùn)行實(shí)現(xiàn)的。本來是打算用Matlab軟間來計(jì)算非線性方程的根的。學(xué)習(xí)Matlab也差不多有一個(gè)多月了,感覺自己編程做題應(yīng)該沒什么問題了;但是當(dāng)自己真心的去編程、運(yùn)行時(shí)才發(fā)現(xiàn)有很多錯(cuò)誤,花了一天時(shí)間修改、調(diào)試程序都沒能得到自己滿意的結(jié)果。所以,我選擇了自己比較熟悉的C程序語言來編程解決非線性的求值問題,由于本作業(yè)是為了比較幾種方法求值問題的收斂速度和精度的差異,選擇了一個(gè)相對(duì)常見的非線性函數(shù)來反映其差異,程序運(yùn)行所得結(jié)果我個(gè)人比較滿意。編寫C語言,感覺比較上手,程序出現(xiàn)問題也能比較熟練的解決。最終就決定上交一份C程序語言編程的求值程序了!、選題本作業(yè)的目的是為了加深對(duì)非線性方程求根方法的二分法、簡(jiǎn)單迭代法、 、牛頓迭代法弦截法等的構(gòu)造過程的理解;能將各種方法的算法描述正確并且能夠改編為程序并在計(jì)算機(jī)上實(shí)現(xiàn)程序的正確合理的運(yùn)行,能得到自己滿意的結(jié)果,并且能調(diào)試修改程序中可能出現(xiàn)的問題和程序功能的增減修改。 本次程序是為了比較各種方法在求解同一非線性方程根時(shí),在收斂情況上的差異。為了達(dá)到上面的條件我選擇自己比較熟悉的語言一C語言來編程,所選題目為計(jì)算方程f(x)=x3-2x-5=0在區(qū)間[2,3]內(nèi)其最后兩近似值的差的絕對(duì)值小于等于1105的根的幾種方法的比較。本文將二分法、牛頓法、簡(jiǎn)單迭代法、弦截法及加速收斂法這五種方法在同一個(gè)程序中以函數(shù)調(diào)用的方式來實(shí)現(xiàn),比較簡(jiǎn)潔明了,所得結(jié)果能很好的比較,便于分析;發(fā)現(xiàn)問題和得出結(jié)論。

三、程序運(yùn)行結(jié)果■■'CMsersVadunjin\Desktop^Debig'.ffixiaixingfangrhengqiujiee>e'1,匸.回S35.62SAH2.2弭0001.89N252.12S8000.3457032?師2500-0.3513182.0?3750-0.0089422?[陰3?59.1666362.1B15S30.0785622.0976560.0347142■冊(cè)畀033.0128622.09472?0.0B19542.074238-9.0034V52.0^4492-0.0007712.0946340.W05922.0*4543-0.0060962-0945743.0802512.0945559.06812.074551-0.008004匚分苗驢方程根是個(gè)4皈2.0600392.8913042.0080302.3112232.00000024170352.mm2.09483122.0945522.0圖郵92.074551附脫魅求出的擁很是口畑22.mm2.0B08842.0AOO842.0923512.0723512.0942172.0942172?0945012.0945012.0945442?冊(cè)45442?B94550譚訓(xùn)堆求冊(cè)擁根是2刖倔2.0000082.0946702.8945702,0945512?刖45512.094552廊收敬法求岀粧程根和厠45522.094251-9.1000062.即45680.0942512.0945529.00031?2■冊(cè)4552-?.00@S16-1-AINDMB.00O0四、分析及結(jié)論由以上程序得出的結(jié)果可以看出此程序中加速收斂的收斂速度最快其次是弦截法接下來是牛頓法、簡(jiǎn)單迭代法、二分法。下面來分析出現(xiàn)這種結(jié)果的理論基礎(chǔ)。由數(shù)值分析知識(shí)可知,加速收斂法的收斂速度、弦截法和牛頓法都是二次收斂,但是其收斂的迭代公式收斂的速度是有區(qū)別的,加速收斂的迭代公式比弦截法和牛頓法收斂的速度要快。這也就解釋了上述程序運(yùn)行后在相同的初始值時(shí)加速收斂法比牛頓法快了一倍的原因。(加速收斂只需3次迭代就得到滿足精度的值,而牛頓迭代需要6次迭代)。弦截法的收斂速度從其收斂公式上來看是沒有牛頓法的收斂速度快的,但是其迭代的次數(shù)還和其選取的初始值有關(guān),弦截法需要兩個(gè)初始值,這就必然使得其迭代的次數(shù)受到這兩個(gè)初始值的影響,初始值選取的大小及合理與否直接影響其迭代的次數(shù)。由程序運(yùn)行的結(jié)果可以看出,雖然弦截法收斂速度比牛頓法慢,但是由于初始值的影響其迭代次數(shù)明顯比牛頓法的次數(shù)少。簡(jiǎn)單迭代的收斂速度和其迭代方程息息相關(guān),一般來說簡(jiǎn)單迭代的收斂速度是低于加速法、牛頓法和弦截法的。從程序運(yùn)行結(jié)果中也可以得出這個(gè)結(jié)論。所以在進(jìn)行簡(jiǎn)單迭代計(jì)算時(shí),其迭代的函數(shù)要合理選取。二分法是一個(gè)收斂速度比較慢的非線性函數(shù)求根法,并且其只能求得一個(gè)根,當(dāng)函數(shù)有兩個(gè)解時(shí),二分法將失去其效用。綜上所述,當(dāng)對(duì)計(jì)算速度有較高要求時(shí)盡量采用加速收斂法,一般建議采用牛頓法,當(dāng)對(duì)計(jì)算速度無要求且只有單根時(shí),采用二分法所得結(jié)果比較精確,其他情況視個(gè)人喜好及方便選擇。五、C程序#include<stdio.h>#include<math.h>#definef(x) (pow(x,3)-2*x-5)#defineg(x) (3*x*x-2)#definem 2.0#definen 3.0floatdffqsg(floata,floatb);//對(duì)分法求方程的根,a,b為區(qū)間,返回值為方程的根floatndddfqsg(floata);//牛頓迭代法求方程的根,a為初值,返回值為方程的根floatjdddf(floata);//簡(jiǎn)單迭代法求在a附近的根floatAitken(floata);//加速收斂法floatxianjie(floata,floatb);//弦截法求根main(){floatx;x=dffqsg(m,n);//調(diào)用二分法求根printf("二分法求出的方程根是%f\n",x);x=ndddfqsg(4.0);printf("牛頓迭代法求出的方程根是%f\n",x);x=jdddf(2.0);printf("簡(jiǎn)單迭代法求出的方程根是%f\n",x);x=Aitken(2.0);printf("加速收斂法求出的方程根是%f\n",x);x=xianjie(2.1,2.0);printf("弦截法求出的方程根是%f\n",x);}floatdffqsg(floata,floatb){floatc;do{c=(a+b)*0.5;printf("%f\t%f\n",c,f(c));if(f(c)<0){a=c;}else{b=c;}}while(fabs(f(c))>0.00001);returnc;floatndddfqsg(floata){floatc,d;c=a;do{d=c;c=c-f(c)*pow(g(c),-1);printf("%f\t%f\n",m,c);}while(fabs(c-d)>0.00001);returnc;}floatjdddf(floata){floatx,d;x=a;do{d=x;x=pow(2*x+5,1.0/3.0);printf("%f\t%f\n",d,x);}while(fabs(d-x)>0.00001);returnx;}floatAitken(floata){floatx1,x2,x,d;x=a;do{d=x;x1=pow(2*x+5,1.0/3.0);x2=pow(2*x1+5,1.0/3.0);x=(x*x2-x1*x1)/(x-2*x1+x2);printf("%f\t%f\n",d,x);}while(fabs(d-x)>0.00001);return

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論