gpt4 book ai didi

python - sympy:如何保存 "solve"处的解决方案以供重复使用?

转载 作者:行者123 更新时间:2023-11-30 23:29:00 27 4
gpt4 key购买 nike

我正在使用 python3 和 sympy 0.7.4.1。我不知道如何保存解决方案以供将来使用(我在手册或谷歌上找不到任何有用的东西)。例如,我有一些方程 eq1,eq2 和 t1+t2+t3==0,那么我可以通过以下方式求解方程

solve([t1+t2+t3,eq1,eq2],[t1,t2,t3]

但我想存储 t1,t2,t3 的解决方案,以便我可以将它们用于其他操作。有没有一种简单的方法可以实现这一目标?简单地使用 [t1,t2,t3]=solve([t1+t2+t3,eq1,eq2],[t1,t2,t3] 是行不通的。

解决的返回是

{t2: -3*theta_2**2/8 + 3*theta_2*theta_3/4 - 3*theta_3**2/8, t3: 3*theta_2**2/4 - 3*theta_2*theta_3/2 + 3*theta_3**2/4, t1: -3*theta_2**2/8 + 3*theta_2*theta_3/4 - 3*theta_3**2/8}

如果我添加标志 set=True,则会是

([t1, t2, t3], {(-3*theta_2**2/8 + 3*theta_2*theta_3/4 - 3*theta_3**2/8, -3*theta_2**2/8 + 3*theta_2*theta_3/4 - 3*theta_3**2/8, 3*theta_2**2/4 - 3*theta_2*theta_3/2 + 3*theta_3**2/4)})

对于 dict=True,它是

[{t2: -3*theta_2**2/8 + 3*theta_2*theta_3/4 - 3*theta_3**2/8, t3: 3*theta_2**2/4 - 3*theta_2*theta_3/2 + 3*theta_3**2/4, t1: -3*theta_2**2/8 + 3*theta_2*theta_3/4 - 3*theta_3**2/8}]

最佳答案

首先请注意,一般来说,您可以有多种解决方案。这就是为什么 set=True 返回一组元组(而不是仅仅一个元组),而 dict=True 返回一个字典列表(而不只是一个)。

最简单的是 dict=True。要访问解决方案,请执行类似的操作

sols = solve([t1 + t2 + t3, eq1, eq2], [t1, t2, t3])
sols[0][t1] # This is t1 in the first solution

如果有更多解决方案,它们将是 sols[1]sols[2] 等等。在每种情况下,字典中的键都是该解决方案所等于的符号,例如 t1t2

关于python - sympy:如何保存 "solve"处的解决方案以供重复使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21371093/

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