牛頓迭代法求多元方程近似根

2021-08-15 23:27:31 字數 645 閱讀 7678

問題. 牛頓迭代法求ax^3+bx^2+cx+d=0在1附近的根。(係數由使用者自己輸入)

因為此方法本身是數學問題這裡不做討論也無須討論。進入我們程式設計的主題。

記住此法核心的公式:x = x0-f(x0)/f'(x0).   我們令x1=f(x0),x2=f'(x0),這樣寫起來簡潔明瞭。

步驟:  (1 )   在1附近任意找乙個實數作為x0的初始值,如此題,我們取x=1,讓x0=x,即x0=1.

(2)  用初始值x0帶入方程計算出f(x0)和f'(x0).即求出x1和x2; 

(3)  帶入上述核心公式計算出x = x0-f(x0)/f'(x0)的值。

(4)  用新產生的x替換原來的x0,為下一次迭代做準備。

(5)  若|x-x0|>=1e-5;則繼續上述迭代,否則轉(6).

(6)  所得x即為多遠方程ax^3+bx^2+cx+d=0的根,輸出。

**如下:(經過vs2008測試無誤 測試輸入1,2,3,4 輸出:-1.65)

#include

#include

double getres(double a,double b,double c,double d)while(fabs(x-x0)>=1e-5);

return x;

}int main()

1 6 牛頓迭代法求方程的根

問題描述 編寫用牛頓迭代法求方程根的函式。方程為 a x 3 b x 2 c x d 0,係數a,b,c,d由主函式輸入。求x在1附近的乙個實根。求出根後,由主函式輸出。如下 include float slove int modulus 0pow,int modulus 1pow,int modu...

計算方法 C C 牛頓迭代法求非線性方程近似根

把f x 在x0附近展開成泰勒級數f x f x0 f x0 x x0 f x0 2 x x0 2 然後取其線性部分,作為非線性方程f x 0的 近似方程,即泰勒展開的前兩項,則有 f x f x0 x x0 f x0 f x0 0 f x0 x x0 f x0 f x0 x x0 f x0 f x...

牛頓迭代法(求函式的根)

在做二分與三分法的題時,聽聞有牛頓迭代法 感覺很高大上 自己居然捧起書看了一些 由於自己水平很渣,研究的並不深入。本篇未完結.個人感覺 1.使用牛頓迭代法,函式可以是任意 2.優點 對其單調性無特殊要求 缺點 若在該函式值處有多個根,往往只能求出乙個根 3.與二分三分法比較 二分要求是單調函式 三分...