用牛頓迭代法求下面方程在1.5附近的根:
答案解析:
牛頓迭代法的公式為:
\(x_{n+1}\) = \(x_{n}\) - \(\frac{f(x_{n})}{f'(x_{n})}\)
其中,\(x_{n}\)為輸出的值,在該題目當中為1.5。\(f(x_{n})\)為公式2\(x^3\)- 4\(x^2\) + 3\(x\) - 6。\(f'(x_{n})\)為導數,根據導數原則:
規則1:\(x^n\) = n * \(x^{(n-1)}\), 規則2:常數的導數為0。可以推導出\(f'(x_{n})\) = 6\(x^2\) - 8x + 3。
在依照牛頓迭代法計算出\(x_{n+1}\)的值,直到求出的差值小於0.00001
代碼示例:
#include <stdio.h>
#include <math.h>
int main()
{
double x1, x0, f, f1;
x1 = 1.5;
do
{
x0 = x1;
f = ((2 * x0 - 4) * x0 + 3) * x0 - 6;
f1 = (6 * x0 - 8) * x0 + 3;
x1 = x0 - f / f1;
} while (fabs(x1 - x0) >= 1e-5);
printf("方程在1.5附近的根為:%lf\n", x1);
return 0;
}