使用 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
我对编码很陌生,必须用 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