Python 问题:如何用函数代替函数?
假设我有这样一个函数:Python 问题:如何用函数代替函数?,python,sympy,Python,Sympy,假设我有这样一个函数: In [44]: eta(p) Out[44]: ⎛ Λ⋅(-F(p) + 1) ⎞ -Λ 1 ⎝-Λ⋅(-F(p) + 1) + ℯ - 1⎠⋅ℯ 1 - ───────────────────────── + ────────────────────────────────
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)
如何用实际的数值函数替换symbolic
F(p)
您可以使用sympy.utilities.lambdify.implemented\u function
定义数值函数,并使用subs
进行替换。您可以使用并使其使用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()