python符号计算_Python使用scipy进行多项式计算与符号计算

Python使用scipy进行多项式计算与符号计算

在扩展库numpy和scipy中都有poly1d,用法一样,实际上是同一个库,scipy是基于numpy的。有图为证

none.gif

2017-9-22 21:44:31 上传

下载附件 (98.87 KB)

本文代码主要演示如何使用poly1d进行多项式计算和符号计算。

>>>fromscipyimportpoly1d

>>> p1 =poly1d([1,2,3,4])# 输出结果中,第一行的数字为第二行对应位置项中x的指数>>>print(p1)3 2

1 x + 2 x + 3 x + 4

#等价于p2=(x-1)(x-2)(x-3)(x-4)>>> p2 = poly1d([1,2,3,4], True)

>>>print(p2)4 3 2

1 x - 10 x + 35 x - 50 x + 24

#使用z作为变量,这只是个形式,并不影响计算>>> p3 = poly1d([1,2,3,4], variable='z')

>>>print(p3)3 2

1 z + 2 z + 3 z + 4

#把多项式中的变量替换为指定的值

#多项式求值>>> p1(0)4>>> p1(1)10

#计算多项式对应方程的根>>> p1.rarray([-1.65062919+0.j , -0.17468540+1.54686889j,

-0.17468540-1.54686889j])# 把根带入多项式验证一下

>>> p1(p1.r[0])(-8.8817841970012523e-16+0j)

#查看和修改多项式的系数>>> p1.carray([1,2, 3, 4])>>>print(p3)3 2

1 z + 2 z + 3 z + 4>>> p3.c[0] = 5

>>>print(p3)3 2

5 z + 2 z + 3 z + 4

#查看多项式最高阶>>> p1.order3

#查看指定指数对应的项的系数

# 例如,在p1多项式中,指数为3的项的系数为1>>> p1[3]1>>> p1[0]4

#加、减、乘、除、幂运算>>>print(p1)3 2

1 x + 2 x + 3 x + 4>>>print(-p1)3 2

-1 x - 2 x - 3 x - 4

>>>print(p2)4 3 2

1 x - 10 x + 35 x - 50 x + 24>>>print(p1 + 3)3 2

1 x + 2 x + 3 x + 7>>>print(p1 + p2)4 3 2

1 x - 9 x + 37 x - 47 x + 28>>>print(p1 - 5)3 2

1 x + 2 x + 3 x - 1>>>print(p2 - p1)4 3 2

1 x - 11 x + 33 x - 53 x + 20>>>print(p1 * 3)3 2

3 x + 6 x + 9 x + 12>>>print(p1 * p2)7 6 5 4 3 2

1 x - 8 x + 18 x - 6 x - 11 x + 38 x - 128 x + 96>>> p1 * p2poly1d([ 1., -8., 18., -6., -11., 38., -128., 96.])# 除法返回商多项式和余多项式

>>>print(p1*p2 / p2)(poly1d([1., 2., 3., 4.]), poly1d([ 0.]))>>>print(p2/p1)(poly1d([ 1., -12.]), poly1d([ 56., -18., 72.]))

#多项式的幂运算>>>print(p1 ** 2)6 5 4 3 2

1 x + 4 x + 10 x + 20 x + 25 x + 24 x + 16>>>print(p1 * p1)6 5 4 3 2

1 x + 4 x + 10 x + 20 x + 25 x + 24 x + 16

#一阶导数>>>print(p1.deriv())2

3 x + 4 x + 3# 二阶导数>>>print(p1.deriv(2))6 x + 4

#当x=1时二阶导数多项式的值

>>>print(p1.deriv(2)(1))10

#多项式的不定积分

# 一重不定积分,设常数项为0>>>print(p1.integ(m=1, k=0))4 3 2

0.25 x + 0.6667 x + 1.5 x + 4 x# 二重不定积分,设常数项为3>>>print(p1.integ(m=2, k=3))5 4 3 2

0.05 x + 0.1667 x + 0.5 x + 2 x + 3 x + 3

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值