Der Code ist ziemlich selbsterklärend:Warum kann ich eine Zusammenstellung von implementierten_Funktionen in SymPy nicht zu einem bestimmten Zeitpunkt auswerten?
>>> from sympy.utilities.lambdify import implemented_function
>>> f = implemented_function('f', lambda x: x ** 2)
>>> g = implemented_function('g', lambda x: 2 * x)
>>> print(f( 2).evalf())
4.00000000000000
>>> print( g(2) .evalf())
4.00000000000000
>>> print(f(g(2)).evalf())
f(g(2))
Diese mich verrückt fährt. Warum wird der Ausdruck nicht ausgewertet und wie soll ich ihn beheben?
Sie könnten 'lambdify' verwenden:' x = sympy.symbols ('x') '; 'sympy.lambdify (x, f (g (x))) (2)' ergibt 16. – unutbu
@unutbu: Wird damit der Punkt der Verwendung von 'implementierte_funktion' nicht besiegt? Wenn ich mich auf einen generischen symbolischen Ausdruck verlassen könnte, würde ich ihn einfach normal manipulieren und eine Substitution vornehmen, anstatt "implementierte_funktion" zu durchlaufen. – Mehrdad
Haben Sie versucht, 'f (g (2) .evalf()). Evalf()' oder 'f (g (2) .evalf())'? vielleicht ist es nicht das, wonach du gesucht hast. – pazitos10