Python 3.x 用数组求辛多项式
我需要Symphy的帮助,我实际上有一个多项式列表,比如说,有两个变量s0和s1,但是有些多项式只在s0中,有些只在s1中,有些只是常数,有些则两个变量都有,例如:Python 3.x 用数组求辛多项式,python-3.x,sympy,Python 3.x,Sympy,我需要Symphy的帮助,我实际上有一个多项式列表,比如说,有两个变量s0和s1,但是有些多项式只在s0中,有些只在s1中,有些只是常数,有些则两个变量都有,例如: poly = [1 , s0 , s0+3*s1 , .... ] 我想用相同的命令来评估它们中的任何一个,比如说,s0=2和s1=1。例如,计算我尝试过的列表的第三个多项式 s = sympy.symbols('s0:%d'2) poly[2].subs(s,[2,0]) # s is containing (s0, s1),
poly = [1 , s0 , s0+3*s1 , .... ]
我想用相同的命令来评估它们中的任何一个,比如说,s0=2和s1=1。例如,计算我尝试过的列表的第三个多项式
s = sympy.symbols('s0:%d'2)
poly[2].subs(s,[2,0])
# s is containing (s0, s1), but this won't work at all
poly[2].eval([2,0])
# this one works only if the polynomial uses the two variables, so it will throw an error for poly[0] and poly[1]
事实上,我不知道哪一个有哪一个变量,我也不知道有多少个变量,最后的信息是函数的输入。因此,需要对列表中的所有多项式使用数组和相同的命令。您可以将dict与SUB一起使用:
In [12]: from sympy import *
In [13]: s0, s1 = symbols('s:2')
In [14]: polys = [1 , s0 , s0+3*s1]
In [15]: [S(p).subs(values) for p in polys]
Out[15]: [1, 2, 5]