←
PDF 757 / 1160 Iteration for the root
→
English · PDF 757
Original PDF page 757
中文 · 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