←
PDF 135 / 1160 The numerical method most often used for evaluating the roots of a polynomial is the Newton–Raph
→
English · PDF 135
Original PDF page 135
中文 · PDF 135

求解多项式根最常用的数值方法是牛顿–拉夫逊法。该方法将在后文介绍(见第 9.4.8 节)。

在 MATLAB 中,多项式用其系数数组表示,最高次系数排在最前面。例如,多项式函数

$$f(x) = x^3 - 5x^2 - 17x + 21$$

表示为

$$f = [1 \quad -5 \quad -17 \quad 21]$$

对应多项式方程的根 $f(x) = 0$ 使用命令 roots (f) 求得,因此对于上面的例子,命令

$$r = roots(f)$$

返回的根为

  • $$r = 7.0000$$
  • $-3.0000$
  • $1.0000$

这也表明 $f(x)$ 的因式为 $(x - 7)$ , $(x + 3)$ 和 $(x - 1)$ 。需要注意的是,输出给出的根 $r$ 作为列数组(而非行数组)输入数字。如果已知根,并希望确定对应的多项式 $f(x)$ (其最高次项系数为 1),则使用命令 poly(r)。使用此命令时,根 $r$ 必须指定为行数组,因此命令

$$r = [7 \quad -3 \quad 1]$$

$$f = poly(r)$$

返回答案

$$f = 1 \quad -5 \quad -17 \quad 21$$

表明该多项式为

$$f(x) = x^3 - 5x^2 - 17x + 21$$

要确定次数为 $n$ 且经过 $n + 1$ 个点的多项式,我们使用命令 polyfit( $x, y, n$ );它输出一个 $n$ 阶多项式的系数数组,该多项式拟合数据对( $x, y$ )。如果点数( $x, y$ )大于 $n$ 则该命令将给出最小二乘意义下的最佳拟合。请验证以下命令

x = [–3 0 2 5]; y = [528 1017 1433 2312];

$$f = \text{polyfit}(x, y, 3)$$

能重现例 2.22 的答案,并且以下命令

x = [0 1 2 3 4]; y = [1 1 2 2 3];

polyfit(x,y,1)