繁体   English   中英

SymPy:将符号的任意列表/元组传递到求解函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM