Предположим, у меня есть следующая лямбда-функция
import numpy as np
f = lambda x,t : np.cos(t)
Теперь я хочу получить символическое выражение c для f (конечная цель - получить примитив этой функции f). Так что
import sympy as sym
x_s = sym.Symbol('x')
t_s = sym.Symbol('t')
sym.integrate(f(x_s,t_s), t_s)
Но это не с ошибкой:
TypeError: l oop из ufun c не поддерживает аргумент 0 типа Symbol, который не имеет вызываемого cos method
Я хочу иметь возможность перевести любое выражение закрытой формы в sympy.
Спасибо.
Редактировать: Что я пытаюсь достичь в конце является численное решение PDE с помощью Dedalus. На данный момент мне просто нужно линейное уравнение диффузии реакции с непостоянными коэффициентами. Эта функция f (x, t) является одним из коэффициентов. Поскольку уравнение является линейным, у меня есть аналитическое решение c, которое является функцией, зависящей от примитива относительно t этой функции f (x, t). Поэтому я хочу ввести функцию f (x, t) в одном месте, а затем использовать ее для построения численного решения (в этом случае мне просто нужно вызвать решение f (x, t), а также решение analyti c (в этом случае мне нужно вызвать примитив f (x, t)).
Итак, суть: мне нужно определить лямбда-функцию, которая зависит от 2 аргументов x и t для следующей цели:
1) вычислить значения, заданные x и t. 2) преобразовать это определение функции в текст, который будет использоваться для решения числового уравнения с использованием dedalus (и заменить каждую ссылку на sym на np, иначе dedalus выдаст ошибку). 3) быть в состоянии получить примитив этой функции (поэтому я использую sympy) и затем определить лямбда-функцию этого примитива для вычисления значений для получения аналитического решения.