2017-10-08 2 views
0

는 다음 MWE를 참조하십시오와 indices :SymPy : 크로네 커 델타의 파생 상품 및

import sympy as s 
x = s.IndexedBase('x') 
y = s.IndexedBase('y') 
i,j,k = map(s.Idx,['i','j','k']) 
a = s.exp(x[i]*y[j]*s.KroneckerDelta(i,j)) 
b = a.diff(x[j]) 

b의 값은 LaTeX rendering of b입니다. 나는 아직 이미지를 삽입 할 수 없습니다하고 있기 때문에, 여기

((Derivative(KroneckerDelta(i, j), i)*Derivative(i, x[j]) + Derivative(KroneckerDelta(i, j), j)*Derivative(j, x[j]))*x[i]*y[j] + KroneckerDelta(i, j)*y[j])*exp(KroneckerDelta(i, j)*x[i]*y[j]) 

중요한 점은 인덱스 ij 및 인덱스 ij의 파생 상품에 대한 KroneckerDelta의 평가되지 않은 파생 상품과 관련이 있다는 것입니다 텍스트 형태이다 x[i]. 이것들이 왜 0이 아닌가요?

+1

분명히 _Idx_ 사용에 문제가 있습니다. 인덱스에 일반 기호 만 사용하면 결과가 달라집니다. –

답변

0

인덱스 변수의 상징적 인 차별화로 기대했던 동작의 종류가 아직 완전히 구현되지 않았다고 생각합니다. 필자는 Maxima 나 Mathematica (또는 심지어 펜과 종이) 같은 다른 도구를 사용하여이 계산을 수행했습니다.