牛頓迭代法求解

2022-08-30 13:54:16 字數 1637 閱讀 9959

牛頓迭代法又稱為牛頓-拉弗森方法,是牛頓在17世紀提出的一種在實數和複數域上近似求解方程的方法。

牛頓迭代法的操作簡單來說就是通過不斷取切線,然後通過切線再不斷逼近相應的解,廢話不多說,我們來看例子。

例如如下曲線 \(y=x^2-1\)。

我們在其上面任取一點,不妨取點\(a(2,3)\),以該點做切線,切線方程為 \(y=4x-5\),在圖中將該切線加上可得如下圖:

然後取其與x軸的交點\(b(1.25, 0)\),可見,第一次做切線取到的根已經開始接近原曲線的其中乙個根,繼續以該點做垂線,交原曲線與點\(c(1.25,0.5625)\),如圖:

以點\(c(1.25,0.5625)\)再一次做原曲線的切線,該切線交x軸於點\(d(1.025, 0)\),如下圖,可見,相較於點 \(b\),和原曲線與x軸的交點\(e(1, 0)\)進一步接近。

同理,接下來繼續迭代,則通過不斷做切線,切線與x軸取交點,取到的近似解會與其真實解越來越接近。

巨集觀圖

微觀圖通過上面的推導,我們很容易能夠看出,所謂牛頓迭代法,就是不斷利用切線對其解不斷逼近,那麼我們就需要一次次求切線,切線的求法如下:

設曲線方程為 \(y=f(x)\),可知其斜率為 \(y'=f'(x)\),任意取一點 \((x_0, y_0)\) ,則該點處的切線方程為 \(y - f(x_0) = f'(x_0) * (x - x_0)\),然後取切線與x軸的交點,故令 \(y_1 = 0\),代入解得 \(x_1 = x_0 - \frac \),\(x_1\)是在\(x_0\)的基礎上推出來的下乙個逼近的根,同理,在此迭代公式的基礎上繼續迭代即可,直到所要求的的精度達到要求。

(1)使用牛頓迭代法求解x^3 + 2x^2 + 3x + 4 = 0在1附近的根。

(2)使用牛頓迭代法求三次根號的解

#include #include using namespace std;

/* 使用牛頓迭代法求解x^3 + 2x^2 + 3x + 4 = 0在1附近的根

*/double fun(double x1)

return x1;}/*

使用牛頓迭代法求三次根號的解 -> y = x^3 -> x^3 - y = 0 求解x

即求 f(x) = x^3 - a 的零點,其中a為待求三次根號的數

*/double cuberoot(double x) // 牛頓迭代法 f(x[n]) + f'(x[n])(x - x[n]) = 0

return yp;

}int main()

牛頓迭代法

創新工廠的筆試題 不用庫函式sqrt 求乙個整型數n的開方,要求精度達到0.001即可。在這裡首先介紹一下牛頓迭代法 假設乙個方程為 f x 0 那麼假設其解為x0,則用泰勒級數展開之後可得 f x f x0 f x0 x x0 0 其中x為其近似解。根據上式推導出 x x0 f x0 f x0 這...

牛頓迭代法

目前接觸到的牛頓迭代法主要應用於兩個方面 1 方程求根問題 2 最優化問題。1 求解方程。並不是所有的方程都有求根公式,或者求根公式很複雜,導致求解困難。利用牛頓法,可以迭代求解。原理是利用泰勒公式,在x0處展開,且展開到一階,即f x f x0 x x0 f x0 求解方程f x 0,即f x0 ...

牛頓迭代法

欲求某方程 f x 0 的根,按照以下步驟進行求解 令x0 1 也可以選擇其他值 i 0,1,2 1 求出 f xi 和 導數f xi 2 令 x i 1 xi f xi f xi 3 將 x i 1 帶入方程 f x 計算方程值,當方程值與目標值的誤差小於預定值時,退出演算法輸出 x i 1 即為...