Оператор angular импульса в направлении z - это xD_y-yD_x, то есть «x, умноженное на y-производную минус y, умноженное на x-производную».
Кодирование в Python, я хочу чтобы применить этот оператор к функции f (x, y), которая у меня есть как матрица. x и y являются np.arrays.
Я написал следующее:
X=np.outer(x,np.ones(len(y)-1))
Dy=np.diff(f,1,1)/(x[1]-x[0])
xdy=X*Dy
Y=np.outer(np.ones(len(x)-1),y)
Dx=np.diff(f,1,0)/(y[1]-y[0])
ydx=Y*Dx
X - матрица функции, которая равна x во всех точках (x, y), и Dy является y-производной f. Я уменьшаю размер y на 1, потому что это то, что делает diff, чтобы я мог умножить X и Dy.
Аналогично, Y - матрица функции, которая равна y во всех точках (x, y), а Dx - производная по x.
Правильна ли эта реализация? Есть способ попроще?