二分法與牛頓迭代法求方程根

2022-07-06 15:48:10 字數 1054 閱讀 9883

二分法求根基於二分查詢的思想。

比如求根號2的近似值,猜測它在1到2之間,則將1作為left,2作為right,反覆二分比較f(mid)的平方與2的大小,直到(right-left)的精度eps控制在一定範圍以內。

**:

#include using namespace std;

const double eps = 1e-5;

double f(double x)

double calsqrt()

return mid;

}int main()

例如求f(x)=0,畫圖如下,求方程根即求f(x)與x軸交點的值。假設這個點叫xn好了。

牛頓迭代法的思想是,首先取乙個與xn相近的點,假定為x0。

作x0在f(x)上的切線,切線與x軸相交於x1。注意此時x1比x0更接近我們最終要找的xn。

按同樣的方式,繼續作x1對應的f(x)的切線,與x軸相交於x2。反覆這樣做,x軸交點就會越來越逼近xn。這就是迭代的過程,預設的精度就是迴圈終止的條件。

既然是迭代,自然有迭代公式,我們要尋找xn與xn-1之間的關係。比如說就找x1與x0,其實就是x0對應的切線方程,令y=0。

切線方程

y = f(x0)+f'(x0)(x-x0)

令y = 0,得 x1 = x0-f(x0)/f'(x0)

所以也有

xn = xn-1-f(xn-1)/f'(xn-1)

舉個例子,求根號6的近似值。

**:

#include using namespace std;

const double eps = 1e-5;

double f(double x)

double calsqrt()

return x_1;

}int main()

輸出

2.44949

牛頓迭代法和二分法求方程根

0x03直接給出公式x x0 f x0 f x0 設迭代到 x x0 1e 5例子 2x 3 4 x 3x 6 0 include include int main while fabs x x0 1e 5 return x 0x04簡單說一下 f就是式子,fd為f x 然後套用公式就好了最後判斷是...

牛頓迭代法和二分法求方程的根

使用牛頓迭代法 在1.5附近 和二分法 在 10,10 區間內 求2 x x x 4 x x 3 x 6 0的根 牛頓迭代法 演算法分析 假設方程f x 0,在x0附近有乙個根,那麼用xn 1 xn f xn f xn 依次計算x1,x2,x3,那麼這個序列無限逼近方程的根。原理是根據f x 在x0...

用牛頓迭代法和二分法求方程的根

題目 1 請設計程式,用牛頓迭代法求f x cos x x的近似根,要求精確到10 6。1 用函式float newtoon float x 求方程在x附近的根 2 用函式float f float x 求x處的函式值,用函式float f1 float x 求f x 在x處的導數 3 在主函式中輸...