我正在嘗試一個非常簡單的 sympy 示例,如下所示;
from sympy import *
x,y,z = symbols('x,y,z', real=True)
expr = 256 * exp(-Pow((x-(y/2)/(z/2)),2))
solve(expr,x)
試圖根據 y 和 z 得到 x。執行會產生一個空串列。我究竟做錯了什么 ?
uj5u.com熱心網友回復:
您的方程式沒有任何解決方案,x
因此solve
回傳一個空串列。這是你的等式:
In [2]: expr
Out[2]:
2
? y?
-?x - ─?
? z?
256??
當您將其傳遞給solve
您時,您會問“x
這個運算式等于零的值是多少?”。exp(t)
對于所有可能的復數,指數函式都是非零的t
。由于沒有x
給定運算式為零的有限值,因此solve
回傳一個空串列,這意味著沒有解決方案:
In [3]: solve(expr, x)
Out[3]: []
如果您制作一個實際上有解的方程式,那么solve
可能會為您找到它們:
In [6]: eq = Eq(expr, 1)
In [7]: eq
Out[7]:
2
? y?
-?x - ─?
? z?
256?? = 1
In [8]: solve(eq, x)
Out[8]:
?y ________ y ________?
?─ - 2?√2?╲╱ log(2) , ─ 2?√2?╲╱ log(2) ?
?z z ?
uj5u.com熱心網友回復:
讓fx = Symbol('fx', real=True)
. 你會得到solve(exp(fx),fx) == []
,因為沒有真正的價值fx
可以使exp(fx)
零。如果有這樣一個值,fx = 2
那么你可以嘗試solve(fx - 2, x)
找到x
...的值,但如果沒有值 for fx
,則沒有你可以找到的值 for x
。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/474839.html