[英]SymPy: passing an arbitrary list/tuple of symbols to a solve function
我正在尝试求解一个一致的线性系统,该系统具有(先验的)未知数n的方程式和变量n(相同的数,因此已知该系统具有唯一的解,我们只是不知道n是什么)。
我用符号创建了变量,从而用它们创建了一个元组,但是solve_linear_system似乎无法使用它们(即使转换为列表之后)。 MWE:
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 )
最后一行返回一个空列表。 但是,如果我手动创建单独的变量,它将返回解决方案。
我究竟做错了什么?
您需要使用*
运算符将元组dd
solve_linear_system()
到solve_linear_system()
的参数列表中(就像您用逗号分隔手动键入它们一样)。 尝试将示例的最后一行替换为:
solve_linear_system(system, *dd, rational=True )
它应该工作正常。 请注意,在您的MW示例中,未定义n
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.