Sympy кажется непоследовательным в том, как он обрабатывает подстановку symarray
. Вот минимальный пример кода. Замена успешно происходит с выражением u*1
, но не с выражением u*2
.
>>> import sympy as sy
>>> u = sy.Array(sy.symarray('u', 2))
>>> v = sy.Array(sy.symarray('v', 2))
>>> w = sy.Array(sy.symarray('w', 2))
>>> (u*1).subs(u, v+w)
[v_0 + w_0, v_1 + w_1]
>>> (u*2).subs(u, v+w)
[2*u_0, 2*u_1]
Почему поведение отличается?
Есть ли лучший способ выполнить то, что я пытаюсь сделать? Я хотел бы иметь возможность заменить среднее значение двух векторов в функцию symboli c, которая принимает векторный ввод.