基于数值分析思想对多项式求值的原理和应用进行探究-创新互联

摘要:多项式是由多个单项(符号项如:5x或者常数项4)通过四则运算组合起来的式子,如P(x)=2x^4+3x^3-3x^2+5x-1

创新互联建站专注于企业全网营销推广、网站重做改版、通渭网站定制设计、自适应品牌网站建设、H5建站商城开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为通渭等各大城市提供网站开发制作服务。

一般的求解会将特定的x代入到上式中,一个一个的计算,共需要花费10次的乘法和4次加法运算,但是我们可以通过霍纳方法对多项式进行组合计算,在需要每秒对多个不同输入的x多次计算多项式对应的值时,该方法可以极大的提高计算效率。

原理:采用霍纳方法对上式进行分解步骤如下:

 P(x) = -1+x(5-3x+3x^2+2x^3)

           = -1+x(5+x(-3+3x+2x^2))

           = -1+x(5+x(-3+x(3+2x)))

           = -1+x*(5+x*(-3+x*(3+2*x)))                 (1)

这里的多项式是从低阶向高阶项分解,关于x的幂次被分解为余下的多项式的乘积,然后可以从括号内层向外层进行求值计算。

算法实现:本文采用递归方式求解多项式,其中向量a 存储的是从低次到高次多项式的常数项值,x为变量,n为多项式的次数,最开始为0

template < class T>
inline T Algorithm::polynomial(vector a, T x, int n) //可定义模板类和模板函数 //多项式相加
{
if (n < a.size() - 1)
{
return a[n] + polynomial(a, x, n + 1)*x;
}
else
{
return a[n]; //递归终止条件:当n等于大值的前个数是,递归截止
}
}

void main()
{
Algorithm testPloy;
vector a;
double t;
cin >> t;
while (t)
{
a.push_back(t);
cin >> t;
}
cout<cout << endl;
system("pause");
}
基于数值分析思想对多项式求值的原理和应用进行探究
总结:

通过对多项式求值的计算,让我更深刻的理解到在计算领域计算效率往往可以从最基础的理论找到突破点,结果却会产生巨大的效果。

其中,多项式求值的原理和应用体现了科学计算方法的最重要的特征:

(1)计算机在做简单计算的时候速度很快;

(2)由于简单计算可能会被进行多次,尽可能有效地进行简单计算,可以大大提高计算的效率;

最后,在对多项式求值理论进行研究后,我们将其推广到更一般的形式,以适应更多实际的应用:

f(x)=c1+(x-r1)(c2+(x-r2)(c3+(x-r3)(c4+(x-r4)(c5))))

其中,r1,r2,r3,r4表示基点,当r1,r2,r3,r4为0时,则就是上式(1)中的特殊形式。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:基于数值分析思想对多项式求值的原理和应用进行探究-创新互联
转载来源:http://ybzwz.com/article/ccdsis.html