秦九韶方法

对于给定x,求n次多项式P(x)=a0+a1x+a2x2+a3x3+······+anxn

令P(x)=v,  则vn=a0+a1x+a2x2+a3x3+······+anxn=a0+x(a1+a2x+a3x2+······+anxn-1)

vn-1=a1+a2x+a3x2+······+anxn-1=a1+x(a2+a3x+a4x2+·····+anxn-2)

vn-2=a2+a3x+a4x2+·····+anxn-2=a2+x(a3+a4x+a5x2+·····+anxn-3)

由此递推

v2=an-2+an-1x+anx2=an-2+x(an-1+anx)

v1=an-1+anx

v0=an

可以发现     v0=an

                   vk=x·vk-1+an-k  (k=1,2,3,....,n)

所求P(x)=vn

 

 

//秦九韶算法R实现

 

solvePolynomial<-function(para=c(),x=1){
l=length(para)
v=vector(length = l)
v[1]=para[l]
for(i in 2:l){
v[i]=v[i-1]*x+para[l-i+1]
}
v[l]
}

 

posted @ 2017-07-20 14:18  renjian1995  阅读(389)  评论(0)    收藏  举报