SymPy:将任意符号列表/元组传递给求解函数
我正在尝试解决一个线性方程组,这个方程组的方程数量和变量数量是相同的,但我事先并不知道这个数量n(也就是说,n的值是未知的)。
我用符号来创建我的变量,这样就生成了一个包含这些变量的元组,但在使用solve_linear_system时,这个元组似乎不管用(即使我把它转换成列表也不行)。下面是一个简单的例子:
from sympy import *
#The next line is just an example, I don't know size a priori
system=Matrix(((2,1,-1,-2),(2,2,0,-4),(1,1,-1,-1)))
n=3
dd=symbols('a0:%d'%n)
solve_linear_system(system, dd, rational=true )
最后一行返回的是一个空列表。不过,如果我手动创建单独的变量,它就能返回正确的解。
我到底哪里做错了呢?
1 个回答
3
你需要用 *
这个符号来把元组 dd
拆开,变成一串参数传给 solve_linear_system()
函数,就像你手动输入参数时用逗号分隔一样。试着把你示例的最后一行换成:
solve_linear_system(system, *dd, rational=True )
这样应该就能正常工作了。还有,注意在你的 MW 示例中,n
这个变量没有定义。