字典翻译 问答 高中 数学 有没有人了解Horner算法的?秦九韶算法是中国南宋时期的数学家秦九韶提出的一种多项式简化算法。在西方被称作霍纳算法(Horneralgorithm或Hornerscheme),是以英国数学家威廉·乔治·霍纳命
问题标题:
有没有人了解Horner算法的?秦九韶算法是中国南宋时期的数学家秦九韶提出的一种多项式简化算法。在西方被称作霍纳算法(Horneralgorithm或Hornerscheme),是以英国数学家威廉·乔治·霍纳命
问题描述:

有没有人了解Horner算法的?

秦九韶算法是中国南宋时期的数学家秦九韶提出的一种多项式简化算法。在西方被称作霍纳算法(Horneralgorithm或Hornerscheme),是以英国数学家威廉·乔治·霍纳命名的.

把一个n次多项式f(x)=a[n]x^n+a[n-1]x^(n-1)+......+a[1]x+a[0]改写成如下形式:

f(x)=a[n]x^n+a[n-1]x^(n-1))+......+a[1]x+a[0]

=(a[n]x^(n-1)+a[n-1]x^(n-2)+......+a[1])x+a[0]

=((a[n]x^(n-2)+a[n-1]x^(n-3)+......+a[2])x+a[1])x+a[0]

=......

=(......((a[n]x+a[n-1])x+a[n-2])x+......+a[1])x+a[0].

求多项式的值时,首先计算最内层括号内一次多项式的值,即

v[1]=a[n]x+a[n-1]

然后由内向外逐层计算一次多项式的值,即

v[2]=v[1]x+a[n-2]

v[3]=v[2]x+a[n-3]

......

v[n]=v[n-1]x+a[0]

这样,求n次多项式f(x)的值就转化为求n个一次多项式的值。

(注:中括号里的数表示下标)

结论:对于一个n次多项式,至多做n次乘法和n次加法。

这是horner算法的简介,如果我想去改进这个算法,把一个未知数x改成两个,或者三个未知数,x,y,z这样。请教编程达人!!

一个未知数的算法如下:

v[n]=a[n];

for(i=n-1;i>0;i--)

{

v[i]=v[i+1]*x+a[i];

}

returnv[0];

陈显锋回答:
  你的意思是计算sigma(a(i,j,k)*x^i*y^j*z^k),sigma对i,j,k求和?我有一个想法,但是和秦九韶的算法不同,显然他的算法更先进。可以借助空间换取时间。用递推的方法填表f[m,n,p]使f[i,j,k]=x^i*y^j*z^k最后求和s=.....
点击显示
数学推荐
热门数学推荐
  • 语文
  • 数学
  • 英语
  • 政治
  • 地理
  • 历史
  • 化学
  • 生物
  • 物理
  • 综合
  • 高考