霍纳法则——计算多项式的值

例:p\left ( x \right )=2x^{4}-x^{3}-3x^{2}+x-5,计算x=7时p(x)的值。

平时计算我们都会想到直接将x=代入方程中直接求解。但是这样子的话计算量很大,效率不高。而使用霍纳法则,则可以提高计算的效率。

一、霍纳法则的步骤

1.首先建立一个二维表格,将方程的系数填入第一行(即使对应的系数为0也要填写)。

2.对于第二行,除了第一个单元格直接填写系数外,其他单元格的值的计算方式如下:

x的值*前一个单元格的值+本单元格对应于公式的系数

系数2-1-31-5
x=727*2+(-1)=137*13+(-3)=887*88+1=6177*617+(-5)=4314

最后得到的计算结果就是最后一个单元格的值:4314。

二、霍纳法则的原理

其实霍纳法则是从上面的多项式中通过提取x得到的。

p\left ( x \right )=2x^{4}-x^{3}-3x^{2}+x-5

p(x)=x(2x^{3}-x^{2}-3x+1)-5

p(x)=x(x(2x^{2}-x-3)+1)-5

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

 其中上面表格的第二行的计算过程就是:第一个单元格的值是最里面的那个x的值,第二个的单元格是由(2x-1)计算出来的,第三个单元格是由x(2x-1)-3计算出来的。依此类推。

三、利用霍纳法则计算多项式的值的MATLAB实现

function Y=horner(P,X)
%输入  P代表多项式的系数(幂从高到低)
%      X代表多项式中x的值
%输出  Y代表利用霍纳方法计算出来的多项式的值
Q=P(1);
n=length(P);
for i=2:n
    Q=X*Q+P(i);
end
Y=Q;
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

接着,在命令行窗口中输入:
>> P=[2 -1 -3 1 -5];
>> X=7;
>> Y=horner(P,X)

最后运算得到的结果如下:

Y =

        4314

四、利用霍纳法则计算多项式的值的Python实现

import numpy as np

#多项式的系数(幂从高到低)
P=np.array([2,-1,-3,1,-5])
#代入多项式中的x的值
X=7

n=np.shape(P)[0]

#利用霍纳法则计算多项式的值
Y=P[0]
for i in range(1,n):
    Y=X*Y+P[i]
print('Y={}'.format(Y))

最后得到的结果是:

Y=4314

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天下弈星~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值