一、简介
秦九韶算法是一种将一元n次多项式的求值问题转化为n个一次式的算法。其大大简化了计算过程,即使在现代,利用计算机解决多项式的求值问题时,秦九韶算法依然是最优的算法。
结论:对于一个n次多项式,至多做n次乘法和n次加法。
二、实现
# -*- coding: utf-8 -*-
"""
Created on Tue Dec 13 11:29:17 2016
秦九韶算法
@author: Administrator
"""
import numpy as np
import matplotlib.pyplot as plt
def cal_qin(a,x):
n = len(a) - 1
s = [0 for i in range(len(a))]
s[n] = a[n]
while n >= 1:
s[n-1] = s[n] * x + a[n-1]
n -= 1
return s[0]
if __name__ == '__main__':
a = [-512,2304,-4608,5376,-4032,2016,-672,144,-18,1] #low to high
x = 2
y = cal_qin(a,x)
print y
x = np.linspace(1.95,20.5,1000)
y = cal_qin(a,x)
fig = plt.figure(figsize=(8,4))
ax = fig.add_subplot(111)
ax.plot(x,y)
fig.show()
fig.savefig('a.png')