Sympy:如何用功能代替功能?

时间:2015-12-12 16:09:51

标签: python sympy

说我有这样的功能:

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)

2 个答案:

答案 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进行替换。