저기, 저의 질문을 볼 시간을 주셔서 감사합니다. 이것은 이전에 physics.stackexchange.com에 게시 한 내 질문의 업데이트 된 버전입니다.
현재 2D 엑시톤 스피너 인 Bose-Einstein Condensate를 연구하고 있으며이 시스템의 기본 상태에 대해 궁금합니다. 지면 상태에 도달하는 수학적 방법을 가상 시간 방법 이라고 합니다 .
이 방법은 양자 역학의 시간이 허수 1 로 대체되는 경우 매우 간단합니다. 이 대체는 내 시스템의 고 에너지 입자가 저에너지 입자보다 빠르게 붕괴되도록합니다. 계산의 모든 단계에서 입자 수를 다시 정규화하면 가장 낮은 에너지 입자, 즉 일명 시스템으로 끝납니다. 지상 상태.
문제의 방정식은 비선형이며, 비선형 슈뢰딩거 방정식 이라고도하며 때때로 Gross-Pitaevskii 방정식 입니다. 문제를 해결하기 위해 Matlabs ode45를 사용하고 있습니다.이 시스템은 시간이 지남에 따라 시스템을 발전시켜 결국 지상 상태에 도달합니다.
- 노트! 비선형 슈뢰딩거 방정식에는 공간에서의 라플라시안 및 다른 미분 항이 포함됩니다. 이것들은 모두 고속 푸리에 변환을 사용하여 해결됩니다. 결국 우리는 시간 ODE 만 있습니다. *
내 문제와 질문 : 계산은 에서 로 이동 합니다. ode45는 for 루프에 들어가므로 거대한 벡터 를 동시에 계산하지 않습니다 . 첫 번째 라운드는 ode45 (odefun, )로 시작한 다음 합니다. 여기에 시간 단계 내 문제입니다. 시간 단계에서 다른 선택을하면 다른 지상 상태 솔루션을 얻을 수 있으며 어떤 시간 단계에서 "가장"정확한 지상 상태를 제공하는지 결정하는 방법을 모릅니다.t f [ t 0 , … , t f ] [ t 0 , t 0 + Δ / 2 , t 0 + Δ ] , y , … t 0 + Δ Δ
내 시도 : 나는이 계획에서 많은 시간 단계가 원래 수의 입자로 다시 정규화되기 전에 많은 수의 입자가 붕괴되는 반면 작은 시간 단계는 재 정규화되기 전에 더 적은 양의 입자가 붕괴되는 것을 알고 있습니다. 내 초기 생각은 작은 시간 단계가 더 정확한 해결책을 제공해야하지만 그 반대라고 생각합니다.
나는 수치 전문가가 아니기 때문에 ode45의 선택은 단순히 임의적이었습니다. ode113도 같은 것을 제공합니다. :(
누구 든지이 문제에 대한 생각이 있습니까? 추가 세부 정보가 필요한 경우 알려주십시오.
감사합니다.
업데이트 1 : 가상의 시간 방법과 ODE를 연구했습니다. 시간 간격이 충분히 작지 않으면 모든 것이 불안정 해 보입니다. 이것은 비선형 방정식 이 뻣뻣하여 내가 이해하는 것보다 훨씬 어렵게 만드는지 궁금합니다 . 계속 업데이트하겠습니다.
업데이트 2 : 수정 됨 : 실제로 문제가 ODE 외부에서 정규화되었습니다. 정규화가 odefun 내부에 유지되면 ODE는 "외부"시간 단계의 다른 선택에 대해 동일한 결과를 반환합니다. 동료가 나에게 더 오래된 코드를 보여 주었고 나는 단순히 내 odefun에 한 줄을 추가했습니다.
function y_out = odefun(t,y_in,...variables...)
...
[ Nonlinear equations evaluated ]
...
y_out = y_out + 0.1*y_in*(N0-Ntemp) ;
end
마지막 행은 현재 입자 수 (Ntemp)와 시스템이 보유해야하는 입자 수 (N0)의 차이를 계산합니다. 파티클의 일부를 다시 출력에 추가하여 시스템에서 모든 파티클이 붕괴되는 대신 전체 파티클 수 안정성을 만듭니다.
또한 문제의 차원과 ODE에서 시간 단계로 피코 초 또는 나노초로 작업 할 때의 몇 가지 차이점에 관한 새로운 질문을 제기 할 것입니다.
모두 감사합니다. :)
ode45()
가 작동하면 특정 임계 값보다 큰 단계를 유지할 수 있는 옵션이 있어야합니다 . 당신은 그것을 조사하고 싶을 수도 있습니다.
ode45()
간격으로 단계를 수행 하는 것과 같은 적응 형 방법을 사용한다는 것 입니다. 왜 정확하게 "거대한 벡터"의 생성을 피하고 있습니까? 등거리 점이 절대적으로 필요한 경우ode45()
평소대로 진행 한 다음 보간을 사용하십시오.