gpt4 book ai didi

python - 在 python sympy 中求解符号方程组

转载 作者:行者123 更新时间:2023-12-01 07:35:03 27 4
gpt4 key购买 nike

作为 sympy 的新手,我会受益于一些帮助我走上正轨...在下面的示例中,我如何获得 G_S 的结果来自system两个符号方程?答案应该是G_S = S11 - S12 S21 / (1 + S22) .

S11,S12,S21,S22 = symbols("S11 S12 S21 S22")
S = Matrix([[S11, S12], [S21,S22]])
a1,b1,a2,b2 = symbols("a1 b1 a2 b2")
In = Matrix([a1, b2])
Out = Matrix([b1, a2])

system = [Eq(Out,S*In), Eq(a2+b2,0)]
G_S = b1/a1

奥利维尔

最佳答案

免责声明:可能有一种更优雅的方法来做到这一点。我自己对 SymPy 还很陌生。

您只需要告诉 SymPy 实际求解方程组即可。像您一样执行所有步骤,但是在定义 system 之后,您需要告诉 SymPy 求解 b1a1,然后使用这些解决方案用于计算G_S。 (请注意,solve 返回一个字典。)

编辑:即使我们在计算 G_S 时仅使用 b1a1 的答案,我们仍然需要告诉 solve 求解所有四个变量 a1b1a2 b2 让它给我们正确的答案。

system = [Eq(Out,S*In), Eq(a2+b2,0)]
soln = solve(system, a1, b1, a2, b2)
G_S = soln[b1]/soln[a1]

当我这样做时,SymPy 给出了正确但仍然丑陋的答案 -(-S11*(S22 + 1) + S12*S21)/(S22 + 1)。如果我调用 simplify(G_S) 我会得到 (S11*(S22 + 1) - S12*S21)/(S22 + 1) 不太丑陋但仍然丑陋的答案。这就是用计算机进行符号数学的乐趣 - 它的“简单”概念与人类的“简单”概念并不完全相同。

关于python - 在 python sympy 中求解符号方程组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57023844/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com