您需要计算线性因子的乘积
(x-z1)·(x-z2)···(x-zn)
可以通过将多项式与线性因子重复相乘来归纳实现
(a [0] + a [1]·x +…+ a [m-1]·x ^(m-1))·(x-zm)
=(-a [0]·zm)+(a [0] -a [1]·zm)·x +…+(a [m-2] -a [m-1]·zm)·x ^( m-1)+ a [m-1]·x ^ m
可以将其实现为循环
a[m] = a[m-1]
for k = m-1 downto 1
a[k] = a[k-1] - a[k]*zm
end
a[0] = -a[0]*zm
对于所有n个线性因子的乘积,总共得出n²/ 2乘法和相减的次数。