問題. 牛頓迭代法求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.與二分三分法比較 二分要求是單調函式 三分...