秦九韶算法求多项式某一点处的值或导数

设法减少算法中乘法或加法的数量,是提升算法性能的方法之一。秦九韶算法就是其中的范例。
设给定多项式

p(x)=a0xn+a1xn1++an1x+an(1)(1)p(x)=a0xn+a1xn−1+⋯+an−1x+an

xx∗处的函数值p(x)p(x∗)

我们采用以下方法:

p(x)=((a0x+a1)x++an1)x+anp(x)=(⋯(a0x+a1)x+⋯+an−1)x+an

它可以表示为
{b0=a0bi=bi1x+ai,i=1,2,,n(2)(2){b0=a0bi=bi−1x∗+ai,i=1,2,⋯,n

bn=p(x)bn=p(x∗)为所求。


求多项式p(x)p(x)xx∗处的导数值p(x)p′(x∗)

由(2)式得ai=bibi1xai=bi−bi−1x∗,代入(1)式并化简

p(x)=(xx)(b0xn1++bn2x+bn1)+bnp(x)=(x−x∗)(b0⋅xn−1+⋯+bn−2⋅x+bn−1)+bn

q(x)=b0xn1++bn2x+bn1q(x)=b0⋅xn−1+⋯+bn−2⋅x+bn−1 ,则有
p(x)=(xx)q(x)+p(x)p(x)=(x−x∗)q(x)+p(x∗)

这个实际上是 余数定理的结论
对上式求导
p(x)=q(x)+(xx)q(x)p′(x)=q(x)+(x−x∗)q′(x)

代入 x=xx=x∗
p(x)=q(x)p′(x∗)=q(x∗)

你可能感兴趣的:(数学)