[英]Python, solve non-linear equation for a variable
使用 Python 和 SymPy 我試圖解決 b 的這個方程:
我的代碼:
From sympy import *
b = Symbol('b')
x = ((b/(2*math.pi*math.e))*((math.pi*b)**(1/b)))**(1/(2*(b-1)))
solve(x-1.0034,b)
我得到了這個錯誤: NotImplementedError: multiple generators...沒有實現算法來解決方程...
你知道錯誤在哪里嗎? 或者有沒有可能方程太難了,以至於Python無法解決? 謝謝
最好使用來自 sympy 的pi
和E
:
In [21]: b = Symbol('b')
In [22]: eq = ((b/(2*math.pi*math.e))*((math.pi*b)**(1/b)))**(1/(2*(b-1))) - 1.0034
In [23]: eq
Out[23]:
1
───────
2⋅b - 2
⎛ b ____________________⎞
⎝0.0585498315243192⋅b⋅╲╱ 3.14159265358979⋅b ⎠ - 1.0034
In [24]: eq = ((b/(2*pi*E))*((pi*b)**(1/b)))**(1/(2*(b-1))) - 1.0034
In [25]: eq
Out[25]:
1
───────
2⋅b - 2
⎛ b _____ -1⎞
⎜b⋅╲╱ π⋅b ⋅ℯ ⎟
⎜─────────────⎟ - 1.0034
⎝ 2⋅π ⎠
該方程是超越的,不太可能存在解析解。 可能有一個蘭伯特形式,但solve
沒有找到任何東西。
您可以使用nsolve
數字方式解決它:
In [29]: sol = nsolve(eq, b, 2)
In [30]: sol
Out[30]: 14.3368885826882
In [31]: eq.n(subs={b:sol})
Out[31]: 7.22915270916583e-19
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.