English · PDF 757
| n | xn | f(xn) | f'(xn) | -fnf'n |
|---|---|---|---|---|
| 0 | 0.8000 | −0.241 600 | 12.7040 | 0.019 018 |
| 1 | 0.8190 | 0.011 436 | 13.9408 | −0.000 820 |
| 2 | 0.8182 | 0.000 340 | 13.8876 | −0.000 022 |
| 3 | 0.8182 |
图 9.8
方程根的关系式
8.0000 $x^4$ + 0.4500 $x^3$ —
4.5440x − 0.1136 = 0。
解 在这个特定例子中
$$f(x) = 8.0000x^4 + 0.4500x^3 - 4.5440x - 0.1136$$
给出
$$f'(x) = 32.0000x^3 + 1.3500x^2 - 4.5440$$
使用牛顿–拉夫逊方法 (9.17) 迭代求根时,通常以表格形式呈现计算过程,如图 9.8 所示的这个特定例子。保留 4 位有效数字,根为 $x = 0.8182$ 。使用牛顿–拉夫逊方法时,建议不要将迭代公式整理成单一表达式,而是保留“近似值减误差”的形式。整理可能导致数值过程出现病态。

MATLAB 中没有内置的牛顿–拉夫逊程序。该方法基本上是一种数值过程,因此 MATLAB 似乎是显而易见的可用软件包。你需要编写一个小程序,如下面的例 9.18 所示。
% Set up initial data and put initial results into R
e = 0.0001; acc = 1; x = .8; f = 8*x^4 + .45*x^3 -
4.544*x - 0.1136; fd = 32*x^3 + 1.35*x^2 - 4.544;
R = [x;f;fd];
% Now iterate until acc is less than e and add results
to R
while acc>e xold = x;
x = x - f/fd; f = 8*x^4 + .45*x^3 - 4.544*x - 0.1136;
fd = 32*x^3 + 1.35*x^2 - 4.5440;
R = [R [x;f;fd]];
acc = abs(x - xold);
end
R
返回结果
| R = | ||||
|---|---|---|---|---|
| 0.8000 | 0.8190 | 0.8182 | 0.8182 | |
| -0.2416 | 0.0117 | 0.0000 | 0.0000 | |
| 12.7040 | 13.9420 | 13.8863 | 13.8861 |