Sympy returns 空结果
Sympy returns empty result
我正在尝试一个非常简单的 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。执行结果为空列表。我做错了什么?
您的方程没有 x
的任何解,因此 solve
returns 是一个空列表。这是你的等式:
In [2]: expr
Out[2]:
2
⎛ y⎞
-⎜x - ─⎟
⎝ z⎠
256⋅ℯ
当您将其传递给 solve
时,您是在询问“对于 x
的哪些值,此表达式等于零?”。指数函数 exp(t)
对于所有可能的复数 t
都是非零的。由于没有给定表达式为零的 x
的有限值 solve
returns 空列表意味着没有解决方案:
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 ⎦
让fx = Symbol('fx', real=True)
。您将得到 solve(exp(fx),fx) == []
,因为 fx
没有实际值可以使 exp(fx)
为零。如果有这样的值,比如 fx = 2
那么你可以尝试 solve(fx - 2, x)
来找到 x
的值...但是如果没有 fx
的值就没有您可以找到 x
.
的值
我正在尝试一个非常简单的 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。执行结果为空列表。我做错了什么?
您的方程没有 x
的任何解,因此 solve
returns 是一个空列表。这是你的等式:
In [2]: expr
Out[2]:
2
⎛ y⎞
-⎜x - ─⎟
⎝ z⎠
256⋅ℯ
当您将其传递给 solve
时,您是在询问“对于 x
的哪些值,此表达式等于零?”。指数函数 exp(t)
对于所有可能的复数 t
都是非零的。由于没有给定表达式为零的 x
的有限值 solve
returns 空列表意味着没有解决方案:
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 ⎦
让fx = Symbol('fx', real=True)
。您将得到 solve(exp(fx),fx) == []
,因为 fx
没有实际值可以使 exp(fx)
为零。如果有这样的值,比如 fx = 2
那么你可以尝试 solve(fx - 2, x)
来找到 x
的值...但是如果没有 fx
的值就没有您可以找到 x
.