【问题标题】:SymPy: passing an arbitrary list/tuple of symbols to a solve functionSymPy:将任意符号列表/元组传递给求解函数
【发布时间】:2014-05-28 21:08:46
【问题描述】:

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

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

我做错了什么?

【问题讨论】:

    标签: python parameter-passing linear-algebra sympy


    【解决方案1】:

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

    solve_linear_system(system, *dd, rational=True )
    

    它应该可以正常工作。请注意,在您的 MW 示例中,n 未定义。

    【讨论】:

    • 我发誓我已经尝试过了,但是当我现在尝试它时,它可以工作了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 2023-03-14
    • 2011-04-27
    • 2017-12-18
    相关资源
    最近更新 更多