gpt4 book ai didi

python - 用python求解非线性方程组

转载 作者:太空狗 更新时间:2023-10-29 20:58:52 30 4
gpt4 key购买 nike

我可以根据 python 中的参数求解非线性方程组吗?有例子或教程吗?我可以在 maple 中轻松做到这一点,但我的特定系统的表达式非常大,复制它们非常困难。

示例:

sigma*(y-x) = 0
x*(rho-z)-y = 0
x*y-beta*z = 0

你应该得到解决方案:

[[x = 0, y = 0, z = 0], [x = sqrt(beta*rho-beta), y = sqrt(beta*rho-beta), z = rho-1],
[x = -sqrt(beta*rho-beta), y = -sqrt(beta*rho-beta), z = rho-1]]

我问的原因:我有一个大型的非线性 ODE 系统。我想解决固定点(这是可行的,它已经在枫木中完成,但它们又大又丑)。我想从固定点创建更多表达式,然后在 scipy 中使用优化包。我宁愿全部用 Python 来做,也不愿来回翻译,因为它效率很低,而且容易出错。

最佳答案

重申@Russ 的回答,这可以在 sympy 中轻松完成。例如:

In [1]: import sympy as sp
In [2]: x, y, z = sp.symbols('x, y, z')
In [3]: rho, sigma, beta = sp.symbols('rho, sigma, beta')
In [4]: f1 = sigma * (y - x)
In [5]: f2 = x * (rho - z) - y
In [6]: f3 = x * y - beta * z
In [7]: sp.solvers.solve((f1, f2, f3), (x, y, z))
Out[7]:
[(0, 0, 0),
(-sqrt(beta*rho - beta), -sqrt(beta*(rho - 1)), rho - 1),
(sqrt(beta*rho - beta), sqrt(beta*(rho - 1)), rho - 1)]

其中输出格式是 (x, y, z) 的可能值的 3 个可能的元组。

关于python - 用python求解非线性方程组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22156709/

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