使用 sympy 求解方程

Using sympy to solve equation

我对编码很陌生,必须用 python 为一个项目解决这个特定的方程式。 (这不是为了信用。这只是为了我的理解。) 请注意:我知道如何手解方程,我不需要学习解法。我需要学习如何让我的代码工作。

我在我的代码中找不到错误。我假设有一个,因为我不断收到同样的错误。有谁知道如何解决这个问题或做得更好?

非常感谢您的帮助。

下面是错误和我正在使用的代码。

错误:

NotImplementedError: 多个生成器 [x, sin(x3)] 没有实现算法来求解方程 x3 + 4x - 6sin(x**3) - 1 + 0

import numpy as np
import sympy as sy

x = sy.symbols("x", real=True)
u = sy.symbols("u", real=True)
u = x**3
eq1 = sy.Eq(u - 6*sy.sin(u) + 10*x - 6*x -1, 0)
eq1

sol1 = sy.solve(eq1, x)

print(sol1)

solve 函数用于寻找方程的封闭式符号解。这是你的等式:

In [30]: eq1
Out[30]: 
          ⎛ 3⎞          3    
-1 - 6⋅sin⎝x ⎠ + 4⋅x + x  = 0

这是一个超越方程,因此不太可能存在解的任何解析表达式。

如果你想要一个近似的数值解,那么你可以使用 nsolve,例如这个方程的三个解可以这样找到:

In [33]: nsolve(eq1, x, 0.25)
Out[33]: 0.276389904495405

In [34]: nsolve(eq1, x, 0.75)
Out[34]: 0.739963760252268

In [35]: nsolve(eq1, x, 1.25)
Out[35]: 1.22805318567194

https://en.wikipedia.org/wiki/Transcendental_equation https://docs.sympy.org/latest/modules/solvers/solvers.html#sympy.solvers.solvers.nsolve