首页 > 编程语言 >Python使用scipy进行多项式计算与符号计算

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

时间:2023-06-09 20:05:05浏览次数:36  
标签:p2 10 p1 Python 多项式 poly1d scipy print 符号计算


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

from scipy import
 
 >>> 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.r
array([-1.65062919+0.j        , -0.17468540+1.54686889j,
        -0.17468540-1.54686889j])
# 把根带入多项式验证一下 >>> p1(p1.r[0])
(-8.8817841970012523e-16+0j) 
# 查看和修改多项式的系数
 >>> p1.c
array([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.order
3 
# 查看指定指数对应的项的系数
 # 例如,在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 - 4print(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 * p2
poly1d([   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

标签:p2,10,p1,Python,多项式,poly1d,scipy,print,符号计算
From: https://blog.51cto.com/u_9653244/6450963

相关文章

  • Python中else关键字的常见用法
    Python中的else常见用法有三:选择结构、循环结构和异常处理结构。(1)选择结构这应该是最常见的用法,与关键字if和elif组合来使用,用来说明条件不符合时应执行的代码块。(2)循环结构Python中的for循环和while循环都可以带else子句,如果循环是因为条件不再成立而自然结束时会执行else中的代码......
  • Python实现字符串与指定密钥循环异或加解密
    异或运算在很多密码学算法中都有不同程度的应用,其运算特定在于一个数和另一个数连续异或两次仍得到原来的数。在实际使用中,因为要加密的信息和所使用的密钥在大多数情况下是不等长的,所以经常需要循环使用密钥。defcrypt1(source,key):'''source是要加密或解密的字符串,key是......
  • 详解Python生成器函数和生成器对象的原理和用法
    包含yield语句的函数可以用来创建生成器对象,这样的函数也称生成器函数。yield语句与return语句的作用相似,都是用来从函数中返回值。与return语句不同的是,return语句一旦执行会立刻结束函数的运行,而每次执行到yield语句并返回一个值之后会暂停后面代码的执行,下次通过生成器对象的__n......
  • Python 3.6+Django开发入门小案例(自动变化的问候)完整步骤
    第一步:在命令提示符环境使用pipinstalldjango命令安装django第二步:在命令提示符环境使用pythondjango-admin.pystartprojectdjango_greeting命令创建网站django_greeting第三步:利用资源管理器在网站目录django_greeting中创建子文件夹templates,并在该子文件夹中创建文件gree......
  • Python批量提取PDF文件中的文本
    首先需要执行命令pipinstallpdfminer3k来安装处理PDF文件的扩展库。importosimportsysimporttimepdfs=(pdfsforpdfsinos.listdir('.')ifpdfs.endswith('.pdf'))forpdf1inpdfs:pdf=pdf1.replace('','_').replace('-......
  • 基于Python+tkinter+pygame的音乐播放器完整源码
    importosimporttkinterimporttkinter.filedialogimportrandomimporttimeimportthreadingimportpygamefolder=''defplay():#folder用来表示存放MP3音乐文件的文件夹globalfoldermusics=[folder+'\\'+musicfo......
  • 最优的素数判断代码(Python)是这样写出来的
    素数判断是个很经典的问题,各种语言的程序设计课程都会涉及到,按照素数定义(除了1和自身,素数没有其他因数)很容易写出下面的代码:defisPrime1(n):foriinrange(2,n):ifn%i==0:returnFalsereturnTrue功能完全没有问题,就是非常非常非常非常慢。......
  • Python代码覆盖性测试入门
    覆盖测试通过代码分析工具和跟踪钩子来判断哪些代码可执行以及哪些代码被执行了,是对单元测试的有效补充,可以用来判断测试的有效性。Python扩展库coverage可以实现对Python代码的覆盖测试,使用pip工具安装之后,可以使用命令“coveragerunfile.py”对Python程序file.py进行覆盖测试,然......
  • 改造Python中文拼音扩展库pypinyin补充自定义声母全过程
    问题要从昨天说起,应根球老师发给我一个代码问可能是啥原因,如下:该函数的第二个参数3含义为只保留声母,为啥“应”的声母丢了呢?因为当时正是课间休息,一会儿还要上课,没时间多想,感觉或许是lazy_pinyin()函数的问题,毕竟是个懒惰的函数嘛,于是告诉应老师试试其他函数。今天早上来教研室以后......
  • Python运算符is与==的区别
    在Python中,关系运算符==用来测试两个对象的值是否相等,而同一性测试运算符is用来测试两个对象是否是同一个对象,如果两个变量是同一个对象,那么它们的内存地址是一样的,当然它们的值肯定也是一样的。并且,如果两个变量是同一个列表或其他类型的可变序列,在某些操作中通过一个变量可以影响......