Lie-Trotter 공식에서 2차 대칭 분해
소개
비가변적인 연산자 $X, Y$에 대해서, 이하의 Lie-Trotter 공식이 성립한다.
\exp(h(X+Y)) = \left( \exp(hX/n)\exp(hY/n) \right)^n + O\left(\frac{h^2}{n}\right)
여기서 $n$는 분해수(트로터수)이다. 이 공식은 $h$에 관한 테일러 전개로서는 $h$의 1차까지 밖에 올바르지 않고, 그것을 반영해 중단 오차는 $O(h^2/n)$가 된다. 여기서, 전개의 형태를 고안하면 차수를 올릴 수 있다.
\exp(h(X+Y)) = \left( \exp(hX/2n)\exp(hY/n)\exp(hX/2n) \right)^n + O\left(\frac{h^3}{n^2}\right)
이를 2차 대칭분해라고 하며, 테일러 전개가 $h^2$의 차수까지 올바르다. 그것을 반영하여 중단 오차가 $O(h^3/n^2)$가 된다.
이 논문은이 근사 정밀도의 향상을 확인한다.
소스는
htps : // 기주 b. 코 m / 카이 쵸 256 / ぃ - t 로 루 루 mp ぇ
에 있다.
소스 해설
하는 것은 이전 기사와 같기 때문에 그쪽을 참조. 1차 분해의 경우
def trotter(X,Y,Z,h,n):
eZ = calc_exp(Z,h)
eX = calc_exp(X,h/n)
eY = calc_exp(Y,h/n)
S = np.diag(np.ones(d))
eXeY = eX.dot(eY)
for i in range(n):
S = S.dot(eXeY)
return linalg.norm(eZ - S)/linalg.norm(eZ)
라고 쓰고 있던 것을, 2차 대칭 분해의 경우는
def trotter2nd(X,Y,Z,h,n):
eZ = calc_exp(Z,h)
eX = calc_exp(X,h/n*0.5)
eY = calc_exp(Y,h/n)
S = np.diag(np.ones(d))
eXeYeX = eX.dot(eY.dot(eX))
for i in range(n):
S = S.dot(eXeYeX)
return linalg.norm(eZ - S)/linalg.norm(eZ)
라고 쓸 뿐. 어려운 일은 없다고 생각한다.
결과
2차 대칭분해를 행한 결과는 이하와 같다.
첫째, 중단 오차의 시간 단위 $h$ 의존성. $n$를 1,2,4로 하고, 각각에 대해 여러가지 $h$의 값으로 중단 오차를 평가한다.
분해수 $n$에 관계없이 $O(h^3)$와 정밀도가 향상되고 있는 것을 알 수 있다.
다음은 분해수 $n$의 의존성. 시간 간격 $h$는 $1.0$고정.
오차가 $O(1/n^2)$로, 이쪽도 정밀도가 향상하고 있는 것을 알 수 있다.
요약
트로터 분해에 있어서, 2차 대칭 분해를 이용하면 정밀도가 향상되는 것을 확인하였다. 여기에서
\begin{align}
U_X(h) &= \equiv \exp(h X) \\
U_Y(h) &= \equiv \exp(h Y)
\end{align}
라고 쓰면, $n=3$의 경우의 1차의 분해는
\exp(h(X+Y)) \sim U_X(h/3)U_Y(h/3)U_X(h/3)U_Y(h/3)U_X(h/3)U_Y(h/3)
라고 쓸 수 있다. $U_X(h_1)U_X(h_2) = U_X(h_1 + h_2)$가 성립되기 때문에 2차 대칭분해는
\exp(h(X+Y)) \sim U_X(h/6)U_Y(h/3)U_X(h/3)U_Y(h/3)U_X(h/3)U_Y(h/3) U_X(h/6)
그리고 1차 분해에 비해 좌단의 연산자를 반만큼 우단으로 이동시킨 형태로 되어 있다. $n$가 증가해도, 양자의 차이는 이 끝만. 단지 이것만으로 연산자의 근사 정밀도가 $h$, $n$ 모두 1차 올라간다고 신기하지 않습니까? 1
직장의 사람에게는 「당연이라고 할까, 자주 있는 것이 아닙니까」라고 말해졌지만·· ↩
Reference
이 문제에 관하여(Lie-Trotter 공식에서 2차 대칭 분해), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kaityo256/items/1af80746913f1f17006d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
\exp(h(X+Y)) = \left( \exp(hX/n)\exp(hY/n) \right)^n + O\left(\frac{h^2}{n}\right)
\exp(h(X+Y)) = \left( \exp(hX/2n)\exp(hY/n)\exp(hX/2n) \right)^n + O\left(\frac{h^3}{n^2}\right)
하는 것은 이전 기사와 같기 때문에 그쪽을 참조. 1차 분해의 경우
def trotter(X,Y,Z,h,n):
eZ = calc_exp(Z,h)
eX = calc_exp(X,h/n)
eY = calc_exp(Y,h/n)
S = np.diag(np.ones(d))
eXeY = eX.dot(eY)
for i in range(n):
S = S.dot(eXeY)
return linalg.norm(eZ - S)/linalg.norm(eZ)
라고 쓰고 있던 것을, 2차 대칭 분해의 경우는
def trotter2nd(X,Y,Z,h,n):
eZ = calc_exp(Z,h)
eX = calc_exp(X,h/n*0.5)
eY = calc_exp(Y,h/n)
S = np.diag(np.ones(d))
eXeYeX = eX.dot(eY.dot(eX))
for i in range(n):
S = S.dot(eXeYeX)
return linalg.norm(eZ - S)/linalg.norm(eZ)
라고 쓸 뿐. 어려운 일은 없다고 생각한다.
결과
2차 대칭분해를 행한 결과는 이하와 같다.
첫째, 중단 오차의 시간 단위 $h$ 의존성. $n$를 1,2,4로 하고, 각각에 대해 여러가지 $h$의 값으로 중단 오차를 평가한다.
분해수 $n$에 관계없이 $O(h^3)$와 정밀도가 향상되고 있는 것을 알 수 있다.
다음은 분해수 $n$의 의존성. 시간 간격 $h$는 $1.0$고정.
오차가 $O(1/n^2)$로, 이쪽도 정밀도가 향상하고 있는 것을 알 수 있다.
요약
트로터 분해에 있어서, 2차 대칭 분해를 이용하면 정밀도가 향상되는 것을 확인하였다. 여기에서
\begin{align}
U_X(h) &= \equiv \exp(h X) \\
U_Y(h) &= \equiv \exp(h Y)
\end{align}
라고 쓰면, $n=3$의 경우의 1차의 분해는
\exp(h(X+Y)) \sim U_X(h/3)U_Y(h/3)U_X(h/3)U_Y(h/3)U_X(h/3)U_Y(h/3)
라고 쓸 수 있다. $U_X(h_1)U_X(h_2) = U_X(h_1 + h_2)$가 성립되기 때문에 2차 대칭분해는
\exp(h(X+Y)) \sim U_X(h/6)U_Y(h/3)U_X(h/3)U_Y(h/3)U_X(h/3)U_Y(h/3) U_X(h/6)
그리고 1차 분해에 비해 좌단의 연산자를 반만큼 우단으로 이동시킨 형태로 되어 있다. $n$가 증가해도, 양자의 차이는 이 끝만. 단지 이것만으로 연산자의 근사 정밀도가 $h$, $n$ 모두 1차 올라간다고 신기하지 않습니까? 1
직장의 사람에게는 「당연이라고 할까, 자주 있는 것이 아닙니까」라고 말해졌지만·· ↩
Reference
이 문제에 관하여(Lie-Trotter 공식에서 2차 대칭 분해), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kaityo256/items/1af80746913f1f17006d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
트로터 분해에 있어서, 2차 대칭 분해를 이용하면 정밀도가 향상되는 것을 확인하였다. 여기에서
\begin{align}
U_X(h) &= \equiv \exp(h X) \\
U_Y(h) &= \equiv \exp(h Y)
\end{align}
라고 쓰면, $n=3$의 경우의 1차의 분해는
\exp(h(X+Y)) \sim U_X(h/3)U_Y(h/3)U_X(h/3)U_Y(h/3)U_X(h/3)U_Y(h/3)
라고 쓸 수 있다. $U_X(h_1)U_X(h_2) = U_X(h_1 + h_2)$가 성립되기 때문에 2차 대칭분해는
\exp(h(X+Y)) \sim U_X(h/6)U_Y(h/3)U_X(h/3)U_Y(h/3)U_X(h/3)U_Y(h/3) U_X(h/6)
그리고 1차 분해에 비해 좌단의 연산자를 반만큼 우단으로 이동시킨 형태로 되어 있다. $n$가 증가해도, 양자의 차이는 이 끝만. 단지 이것만으로 연산자의 근사 정밀도가 $h$, $n$ 모두 1차 올라간다고 신기하지 않습니까? 1
직장의 사람에게는 「당연이라고 할까, 자주 있는 것이 아닙니까」라고 말해졌지만·· ↩
Reference
이 문제에 관하여(Lie-Trotter 공식에서 2차 대칭 분해), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kaityo256/items/1af80746913f1f17006d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)