2026a

# roots


多项式根

函数库: TyMath

# 语法

r = roots(p)

# 说明

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

roots 函数对 格式的多项式方程求解。包含带有非负指数的单一变量的多项式方程。

# 示例

二次多项式的根

对方程 求解。

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

using TyMath
p = [3,-2,-4]
r = roots(p)
r = 2-element Vector{Float64}:
  1.5351837584879962
 -0.8685170918213299
四次多项式的根

对方程 求解。

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

using TyMath
p = [1,0,0,0,-1]
r = roots(p)
r = 4-element Vector{ComplexF64}:
   -1.0000000000000004 + 0.0im
 8.326672684688674e-17 + 0.9999999999999996im
 8.326672684688674e-17 - 0.9999999999999996im
    0.9999999999999999 + 0.0im

# 输入参数

p - 多项式系数
向量

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

数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16

复数支持:

# 提示

  • 使用 poly 函数从其根 p = poly(r) 获取多项式。poly 函数是 roots 函数的逆函数;
  • 使用 fzero 函数求非线性方程的根。roots 函数仅适用于多项式,fzero 函数则更广泛适用于不同类型的方程。

# 算法

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

A = diagm(-1 => ones(n-1))

A[1,:] = -p[2:n+1] ./ p[1]

r = eigen(A)

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

# 另请参阅

conv | polyval | polyvalm | residue