说我有这样的功能:
In [44]: eta(p)
Out[44]:
⎛ Λ⋅(-F(p) + 1) ⎞ -Λ
1 ⎝-Λ⋅(-F(p) + 1) + ℯ - 1⎠⋅ℯ
1 - ───────────────────────── + ─────────────────────────────────────────
⎛ Λ ⎞ -2⋅Λ ⎛ -Λ⎞
- ⎝-Λ + ℯ - 1⎠⋅ℯ + 1 ⎝1 - ℯ ⎠⋅(-F(p) + 1)
我想在一些简化的假设下绘制函数。我知道我可以使用subs()
将Lambda
之类的变量替换为实数。这让我留下了F(p)
。
如何用实际数值函数替换同义F(p)
?
答案 0 :(得分:1)
您可以使用lambdify()
并使其使用numpy。
这是一个简化的例子:
import sympy as sy
import numpy as np
import matplotlib.pyplot as plt
t, omega = sy.symbols('t omega')
func = sy.sin(omega * t)
func_sub = func.subs({'omega': 2 * sy.pi})
numpy_func = sy.lambdify(t, func_sub, modules='numpy')
px = np.linspace(0, 1, 1000)
plt.plot(px, numpy_func(px))
plt.show()
答案 1 :(得分:0)
您可以使用sympy.utilities.lambdify.implemented_function
定义数值函数,并使用subs
进行替换。