2016-04-13 28 views
1

Tüm değişkenleri bir ifade ifadesinden almak için, ifade üzerinde .free_symbols numaralı telefonu arayabilirsiniz. Bir ifadede kullanılan tüm işlevlerini almak istiyorum. Örneğin, Sympy: İfadedeki işlevleri alın

from sympy import * 

f = Function('f') 
g = Function('g') 

x = Symbol('x') 

y = f(x) + 2*g(x) 

yılında y I f ve g almak istiyorum.

Herhangi bir ipucu?

+0

Ne çıktı? – kanayamalakar

cevap

2

, atoms(Function) kullanın.

In [40]: (f(x) + sin(x)).atoms(Function) 
Out[40]: set([f(x), sin(x)]) 

sadece tanımsız işlevler için atoms(AppliedUndef) kullanın.

In [41]: from sympy.core.function import AppliedUndef 

In [42]: (f(x) + sin(x)).atoms(AppliedUndef) 
Out[42]: set([f(x)]) 
3

atoms hile yapar: Tüm fonksiyonlar için

for f in y.atoms(Function): 
    print(f.func)