2015-12-12 4 views
3

Скажем, у меня есть функция, как это: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) на фактическую числовую функцию?

ответ

0

Вы можете определить числовую функцию с помощью sympy.utilities.lambdify.implemented_function и использовать subs для замены.

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() 
Смежные вопросы