У меня есть выражение в sympy, представляющее собой линейную комбинацию вычисляемой функции, f
. Схематически
expr = Sum_{m,n} c_{m,n} f(x+a_m,y+a_n)
, где c_{m,n}
- коэффициент, зависящий от переменных x,y
. Очень простой пример:
import sympy as sp
x, y = sp.symbols("x, y")
f = sp.Function("f")(x,y)
expr = 0
for i in range(0,3):
expr += (x-i)* f.subs({x: x+2*i, y: y+3*i})
В моем действительном коде expr
является результатом длинной последовательности сумм, и функция g
не упрощается, как здесь. Есть ли эффективный способ группировки функций с разными аргументами, как collect(expr)
для многочленов? Я хочу получить структурированный список:
In: someFunction(...)
Out: [..., [c_{m,n}, x+a_m, y+a_n ], ...]
в приведенном выше примере
In: someFunction(expr)
Out: [[x, x, y], [x - 1, x + 2, y + 3], [x - 2, x + 4, y + 6]]