Numpy快速处理数据--多项式函数(四)

       多项式函数是变量的整数次冥与系数的乘积之和,可以用下面的公式表示:


由于多项式函数只包含加法和乘法运算,因此计算容易,并且可以用于计算其他数学函数的近似值。在Numpy中,多项式函数的系数可以用一维数组表示,如f(x) =x^3-2x+1,则可以表示为数组:

a = np.array([1.0,0,-2,1])
其中a[0]是最高次项,a[-1]是常数项。

      系数可以通过poly1d( )函数转换为多项式对象,此对象可以像函数一样调用,它返回多项式函数的值,如:

>>> a = np.array([1.0,0,-2,1])
>>> p = np.poly1d(a)
>>> type(p)
<class 'numpy.lib.polynomial.poly1d'>
>>> p(np.linspace(0,1,5))
array([ 1.      ,  0.515625,  0.125   , -0.078125,  0.      ])
>>> 
      对 poly1d( )对象进行加减乘除运算,相当于对应多项式函数进行计算,如:

>>> p+[-2,1] #和p+np.poly1d([-2,1])相同,-2x+1
poly1d([ 1.,  0., -4.,  2.])
>>> p*p #两个3次多项式相乘,得到一个6次多项式
poly1d([ 1.,  0., -4.,  2.,  4., -4.,  1.])
>>> p/[1,1] #返回2个多项式除法的结果,分别为商式和余式
(poly1d([ 1., -1., -1.]), poly1d([ 2.]))
>>> 
 上面的商式为:x^2-x-1,余式为2。
           多项式对象的deriv( )和integ( )方法分别用于计算多项式函数的微分和积分,如:

>>> p.deriv()
poly1d([ 3.,  0., -2.])
>>> p.integ()
poly1d([ 0.25,  0.  , -1.  ,  1.  ,  0.  ])
        多项式函数的根可以用roots( )计算

>>> r = np.roots(p)
>>> r
array([-1.61803399,  1.        ,  0.61803399])
>>> 
        而 poly()函数可以将根转换为多项式的系数,如:

>>> np.poly(r)
array([  1.00000000e+00,  -1.22124533e-15,  -2.00000000e+00,
         1.00000000e+00])
>>> 
      除了使用多项式对象外,还可以直接使用Numpy提供的多项式函数对多项式系数的数组进行运算,主要函数包括: np.poly, np.polyadd, np.polydiv, np.polyint, np.polysub, np.poly1d, np.polyder, np.polyfit, np.polymul, np.polyval等。   

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值