python科学计算_numpy_简单的多项式应用

 多项式函数

多项式函数是只包含加法和乘法,对一个变量的各次幂进行加法和乘法操作的函数:

f(x) = a[n]*x^n + a[n-1]*x^(n-1) + … + a[2]*x^2 + a[1]*x + a[0]

numpy中通过将变量x的各次幂(从高到底的顺序)系数即可表示一个多项式函数:

a = np.array([1.0,0,-2,1])

p = np.poly1d(a)

p是一个poly1d对象此对象可以像函数一样调用,并且返回多项式的值,并且是一个ufunc对象,即可以以数组作为参数,得到相应的多项式值的数组

poly1d对象可以进行四则运算,分别对应于多项式的四则运算,除法运算时,会返回包含两个值的元组,其中第一个值为商多项式(商式),第二个值为余数多项式(余式);

poly1d对象可以进行微分:deriv()和积分:integ()操作,得到新的多项式;

使用np.roots()函数,可以对多项式进行求根:

r = np.roots(p)

array([-1.61803399, ?1. ? ? ? ?, ?0.61803399])

使用np.poly()函数,可以将根转回多项式的系数:

np.poly(r)

array([ 1.00000000e+00, -1.22124533e-15, -2.00000000e+00,
1.00000000e+00])

使用np.polyfit()函数,可以对一组数据进行多项式拟合:

import matplotlib.pyplot as plt
plt.figure(figsize=(8,4))
for deg in [3,5,7]:
    a = np.polyfit(x,y,deg)
    error = np.abs(np.polyval(a,x)-y)
    plt.plot(error)
plt.ylim(0,0.0001)
plt.show()

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值