Posted on 2010-08-25 11:37
MiYu 閱讀(617)
評論(0) 編輯 收藏 引用 所屬分類:
ACM_資料
ax^3+bX^2+cx+d=0
根的關(guān)系:
x1 + x2 + x3 = - b / a;
x1 * x2 + x1 * x3 + x2 * x3 = c / a;
x1 * x2 * x3 = - d / a;
牛頓迭代解方程(x0附近的根)
01 | double Newton_Iterative( double a, double b, double c, double d, double x0) |
08 | f0 = ((a * x + b) * x + c) * x + d; |
09 | f0d = ( 3 * a * x + 2 * b ) * x + c; |
12 | while ( fabs (f0) >= 1e-12); |
牛頓迭代法
牛頓迭代法(Newton's method)又稱為牛頓-拉夫遜方法(Newton-Raphson method),它是牛頓在
17世紀(jì)提出的一種在實數(shù)域和復(fù)數(shù)域上近似求解方程的方法。多數(shù)方程不存在求根公式,因此求精確根非
常困難,甚至不可能,從而尋找方程的近似根就顯得特別重要。
方法使用函數(shù)f(x)的泰勒級數(shù)的前面幾項來尋找方程f(x) = 0的根。
牛頓迭代法是求方程根的重要方法之一,其最大優(yōu)點是在方程f(x) = 0的單根
附近具有平方收斂,而且該法還可以用來求方程的重根、復(fù)根。另外該方法廣泛用于計算機編程中。
設(shè)r是f(x) = 0的根,選取x0作為r初始近似值,
過點(x0,f(x0))做曲線y = f(x)的切線L,L的方程為y = f(x0)+f'(x0)(x-x0),
求出L與x軸交點的橫坐標(biāo) x1 = x0-f(x0)/f'(x0),
稱x1為r的一次近似值。
過點(x1,f(x1))做曲線y = f(x)的切線,并求該切線與x軸交點的橫坐標(biāo) x2 = x1-f(x1)/f'(x1),
稱x2為r的二次近似值。
重復(fù)以上過程,得r的近似值序列,
其中x(n+1)=x(n)-f(x(n)) /f'(x(n)),
稱為r的n+1次近似值,上式稱為牛頓迭代公式。
解非線性方程f(x)=0的牛頓法是把非線性方程線性化的一種近似方法。
把f(x)在x0點附近展開成泰勒級數(shù) f(x) = f(x0)+(x-x0)f'(x0)+(x-x0)^2*f''(x0)/2! +…
取其線性部分,作為非線性方程f(x)=0的近似方程,
即泰勒展開的前兩項,則有f(x0)+f'(x0)(x-x0)=f(x)=0 設(shè)f'(x0)≠0
則其解為x1=x0-f(x0)/f'(x0)
這樣,得到牛頓法的一個迭代序列:x(n+1)=x(n)-f(x(n))/f'(x(n))。