SymPy:将符号的任意列表/元组传递给solve函数



我正在尝试求解一个一致线性系统,该系统(先验地)有未知数量的n个方程和变量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 )

最后一行返回一个空列表。但是,如果我手工创建单独的变量,它将返回解决方案。

我做错了什么?

您需要使用*操作符将元组dd解包为solve_linear_system()的参数列表(就像您用逗号分隔的手动键入它们一样)。尝试将示例的最后一行替换为:

solve_linear_system(system, *dd, rational=True )

应该没问题。注意,在您的MW示例中没有定义n

相关内容

  • 没有找到相关文章

最新更新