求高階方程根.doc

求高階方程根.doc

ID:55566270

大?。?6.00 KB

頁數(shù):11頁

時間:2020-05-18

求高階方程根.doc_第1頁
求高階方程根.doc_第2頁
求高階方程根.doc_第3頁
求高階方程根.doc_第4頁
求高階方程根.doc_第5頁
資源描述:

《求高階方程根.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、求一元高階方程的根一元非線性方程求根(1)牛頓迭代法牛頓迭代法又稱牛頓切線法:先任意設(shè)定一個與真實的根接近的值x0作為第一次近似根,由x0求出f(x0),過(x0,f(x0))點做f(x)的切線,交x軸于x1,把它作為第二次近似根,再由x1求出f(x1),過(x1,f(x1))點做f(x)的切線,交x軸于x2,……如此繼續(xù)下去,直到足夠接近(比如

2、x1-x0

3、<1e-6時或

4、f(x1)

5、<1e-6)真正的根x*為止。而f'(x0)=f(x0)/(x1-x0)所以x1=x0-f(x0)/f'(x0)例如,用牛頓迭代法求下列方程在1.5附近的根:2x3-4x2+3x-6=

6、0。法一:

7、x1-x0

8、<1e-6#includemain(){floatx0,x1,fx,f1x;x0=1.5;fx=2*x0*x0*x0-4*x0*x0+3*x0-6;f1x=6*x0*x0-8*x0+3;x1=x0-fx/f1x;while(fabs(x1-x0)>=1e-6){x0=x1;fx=2*x0*x0*x0-4*x0*x0+3*x0-6;f1x=6*x0*x0-8*x0+3;x1=x0-fx/f1x;}printf("%f",x1);}法二:

9、f(x1)

10、<1e-6#includemain(){floatx0,x1,

11、fx,f1x;x0=1.5;fx=2*x0*x0*x0-4*x0*x0+3*x0-6;while(fabs(fx)>=1e-6){f1x=6*x0*x0-8*x0+3;x1=x0-fx/f1x;x0=x1;fx=2*x0*x0*x0-4*x0*x0+3*x0-6;}printf("%f",x1);}法三:#include"math.h"main(){floatx1,x0,f,f1;x1=1.5;do{x0=x1;f=2*x0*x0*x0-4*x0*x0+3*x0-6;f1=6*x0*x0-8*x0+3;x1=x0-f/f1;}while(fabs(x1-x0)>=

12、1e-5);printf("%f",x1);}(2)二分法算法要領(lǐng)是:先指定一個區(qū)間[x1,x2],如果函數(shù)f(x)在此區(qū)間是單調(diào)變化的,則可以根據(jù)f(x1)和f(x2)是否同號來確定方程f(x)=0在區(qū)間[x1,x2]內(nèi)是否有一個實根;如果f(x1)和f(x2)同號,則f(x)在區(qū)間[x1,x2]內(nèi)無實根,要重新改變x1和x2的值。當(dāng)確定f(x)在區(qū)間[x1,x2]內(nèi)有一個實根后,可采取二分法將[x1,x2]一分為二,再判斷在哪一個小區(qū)間中有實根。如此不斷進行下去,直到小區(qū)間足夠小為止。具體算法如下:(1)輸入x1和x2的值。(2)求f(x1)和f(x2)。(3

13、)如果f(x1)和f(x2)同號說明在[x1,x2]內(nèi)無實根,返回步驟(1),重新輸入x1和x2的值;若f(x1)和f(x2)不同號,則在區(qū)間[x1,x2]內(nèi)必有一個實根,執(zhí)行步驟(4)。(4)求x1和x2的中點:x0=(x1+x2)/2。(5)求f(x0)。(6)判斷f(x0)與f(x1)是否同號。①如果同號,則應(yīng)在[x0,x2]中尋找根,此時x1已不起作用,用x0代替x1,用f(x0)代替f(x1)。②如果不同號,則應(yīng)在[x1,x0]中尋找根,此時x2已不起作用,用x0代替x2,用f(x0)代替f(x2)。(7)判斷f(x0)的絕對值是否小于某一指定的值(例如10

14、-5)。若不小于10-5,則返回步驟(4)重復(fù)執(zhí)行步驟(4)、(5)、(6);否則執(zhí)行步驟(8)。(8)輸出x0的值,它就是所求出的近似根。例如,用二分法求方程2x3-4x2+3x-6=0在(-10,10)之間的根。#includemain(){floatx0,x1,x2,f0,f1,f2;do{scanf("%f",&x1);scanf("%f",&x2);f1=2*x1*x1*x1-4*x1*x1+3*x1-6;f2=2*x2*x2*x2-4*x2*x2+3*x2-6;}while(f1*f2>0);do{x0=(x1+x2)/2;f0=2*x0*

15、x0*x0-4*x0*x0+3*x0-6;if(f0*f1>0){x1=x0;f1=f0;}else{x2=x0;f2=f0;}}while(fabs(f0)>=1e-5);printf("%f",x0);}#include"math.h"main(){floatx1,x2,x0,fx1,fx2,fx0;do{printf("Enterx1&x2");scanf("%f%f",&x1,&x2);fx1=2*x1*x1*x1-4*x1*x1+3*x1-6;fx2=2*x2*x2*x2-4*x2*x2+3*x2-6;}while(fx1*fx2>0)

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。