多项式求值的秦九韶方法如果给定一个多项式如果给定一个多项式,,(3
1)其中现在的问题是,给定一个其中现在的问题是,给定一个xx的值,的值,要求多项式函数的值
对于这个问题,一种要求多项式函数的值
对于这个问题,一种看起来很“自然”的方法是直接逐项求和
如果用看起来很“自然”的方法是直接逐项求和
如果用表示表示xx的的kk次次幂幂,表示式,表示式(3
1)右端前右端前kk+l+l项的部分和,即项的部分和,即nnnxaxaxaaxP22101nxPnktkukkxtkk2210kxaxaxaau由于由于xx的的kk次幂实际上等于其次幂再乘上次幂实际上等于其次幂再乘上xx,,而前而前k+1k+1项的部分和等于前项的部分和等于前kk项的部分和再项的部分和再加上第加上第k+lk+l项,因此,逐项求和的方法可以项,因此,逐项求和的方法可以归结为如下的递推关系:归结为如下的递推关系:kk1kk1kktauuxttn,,2,1k(3
2)作为递推公式(3
2)的初值为:000au1t(3
3)这样,就可以利用初值这样,就可以利用初值(3
3),对于,对于k=1k=1,,22,…直到,…直到nn,反复利用公式(,反复利用公式(3
2)进行进行计算,最后就可以得到
其算法描述如下计算,最后就可以得到
其算法描述如下::(1)逐项法多项式求值
输入:存放的系数数组A(0:n);xPn自变量x值
其中1n输出:值PxPnPROCEDUREPROCEDURECPOLYCPOLY((AA,,nn,,xx,,PP))FORi=2TOnDOFORi=2TOnDOOUTPUTPOUTPUTPRETURNRETURNxt;x