Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

roots

多项式根

说明

r = roots(p) 以列向量 r 的形式返回 p 中的系数表示的多项式的根。输入 p 是一个包含 n+1 多项式系数的向量,以 xn 系数开头。例如:p = [3 2 -2] 表示多项式 3x2+2x20 系数表示方程中不存在的中间幂。

roots 函数对 p1xn+...+pnx+pn+1=0 格式的多项式方程求解。包含带有非负指数的单一变量的多项式方程。

示例

示例

全部折叠

对方程 3x2-2x-4=0 求解。

创建一个向量,用它来代表多项式,然后计算多项式的根。

p = [3 -2 -4];
r = roots(p)
r = 2×1

    1.5352
   -0.8685

对方程 x4-1=0 求解。

创建一个向量,用它来代表多项式,然后计算多项式的根。

p = [1 0 0 0 -1];
r = roots(p)
r = 4×1 complex

  -1.0000 + 0.0000i
   0.0000 + 1.0000i
   0.0000 - 1.0000i
   1.0000 + 0.0000i

输入参数

全部折叠

多项式系数,指定为向量。例如,向量 [1 0 1] 表示多项式 x2+1,向量 [3.13 -2.21 5.99] 表示多项式 3.13x22.21x+5.99

有关详细信息,请参阅创建并计算多项式

数据类型: single | double
复数支持:

提示

  • 使用 poly 函数从其根 p = poly(r) 获取多项式。poly 函数是 roots 函数的逆函数。

  • 使用 fzero 函数求非线性方程的根。roots 函数仅适用于多项式,fzero 函数则更广泛适用于不同类型的方程。

算法

roots 函数将 p 视为一个具有 n+1 个元素的向量,代表 n×n 矩阵 An 次特征多项式。多项式的根通过计算伴随矩阵 A 的特征值得出。

A = diag(ones(n-1,1),-1);
A(1,:) = -p(2:n+1)./p(1);
r = eig(A)

生成的结果是伴随矩阵 A 在舍入误差内的精确特征值。但是,这并不意味着它们是系数在 p 中的舍入误差界限内的多项式的精确根。

扩展功能

版本历史记录

在 R2006a 之前推出