Selam ve soruma bakmak için zaman ayırdığınız için teşekkürler. Bu, daha önce physics.stackexchange.com'da gönderdiğim sorumun güncellenmiş bir versiyonudur.
Şu anda 2D eksiton spinor Bose-Einstein Kondensini inceliyorum ve bu sistemin temel durumunu merak ediyorum. Temel duruma ulaşmanın matematiksel yöntemine hayali zaman yöntemi denir .
Kuantum mekaniğinde zamanın hayali bir ile değiştirildiği yöntem çok basittir Bu ikame sistemimdeki yüksek enerjili parçacıkların düşük enerjili olanlardan daha hızlı bozulmasına neden olur. Hesaplamanın her adımında parçacık sayısını yeniden normalize ederek, en düşük enerji parçacıklarına sahip bir sistemle, yani. zemin durumu.
Söz konusu denklem (ler) doğrusal olmayan Schrödinger denklemi , bazen de Gross-Pitaevskii denklemi olarak adlandırılır . Sorunu çözmek için sistemi zaman içinde geliştiren ve nihayetinde zemin durumuna ulaşan Matlabs ode45 kullanıyorum.
- Not! Doğrusal olmayan Schrödinger denklemi, laplacian ve uzaydaki diğer bazı diferansiyel terimleri içerir. Bunların hepsi hızlı Fourier dönüşümü kullanılarak çözüldü. Sonunda sadece bir zamanımız var. *
Benim sorunum ve soru: hesaplamalar gitmek için . Ode45 bir for döngüsüne konur, böylece aynı anda dev bir vektör hesaplamaz . İlk tur ode45 (odefun, ) ile başlar ve bir sonraki sefer . Burada zaman adımı benim sorunum. Zaman adımlarındaki farklı seçimler bana farklı zemin durumu çözümleri verir ve hangi zaman adımının bana "en" doğru zemin durumunu verdiğini nasıl belirleyeceğimi bilmiyorum!t f [ t 0 , … , t f ] [ t 0 , t 0 + Δ / 2 , t 0 + Δ ] , y , … t 0 + Δ Δ
Girişim: Bu şemada, büyük zaman adımlarının, orijinal parçacık sayısına yeniden normalleştirilmeden önce çok sayıda parçacığın çürümesine neden olacağını, küçük zaman adımlarının da yeniden normalleştirilmeden önce daha az miktarda parçacığın çürümesine neden olacağını anlıyorum. İlk düşüncem, küçük zaman adımlarının daha doğru bir çözüm sunması gerektiğidir, ancak tam tersi görünüyor.
Ben sayısal bir uzman değilim o yüzden ode45 seçimi sadece keyfi idi. ode113 bana aynı şeyi veriyor. :(
Bu konuda herhangi bir düşüncesi olan var mı? Herhangi bir ek ayrıntıya ihtiyacınız olup olmadığını bize bildirin.
Teşekkür ederim.
Güncelleme 1: Hayali zaman yöntemini ve ODE'leri araştırıyorum. Zaman adımı yeterince küçük değilse, her şey kararsız hale gelir. Bu, doğrusal olmayan denklemlerimin sert olup olmadığını merak etmemi sağlıyor , bu da işleri anladığımdan çok daha zorlaştırıyor. Seni bilgilendirmeye devam edeceğiz.
Güncelleme 2: DÜZELTİLDİ: Sorun aslında ODE dışında normalleşmeye sahipti. Normalleştirme odefun içinde tutulursa, ODE farklı "dış" zaman adımlarının seçimleri için aynı sonucu döndürür. Meslektaşım bana eski kodları gösterdi ve ben de odefun'uma bir satır ekledim.
function y_out = odefun(t,y_in,...variables...)
...
[ Nonlinear equations evaluated ]
...
y_out = y_out + 0.1*y_in*(N0-Ntemp) ;
end
Son satır, mevcut partikül sayısı (Ntemp) ve sistemin tutması gereken partikül sayısı (N0) arasındaki farkı hesaplar. Partiküllerin bir kısmını çıktıya geri ekler ve böylece sistemde hepsinin çürümesi yerine toplam partikül sayısı stabilitesi yaratır.
Ayrıca sorunun boyutsallığı ve ODE'de zaman adımları olarak pikosaniye veya nanosaniye ile çalışmadaki bazı farklılıklar hakkında yeni bir soru ortaya koyacağım.
Hepinize teşekkür ederim. :)
ode45()
belirli bir eşikten daha büyük adımları korumanıza izin veren bir seçenek olmalıdır ; Belki içine bakmak istersin.
ode45()
dengelenmiş adımlar atmak gibi uyarlanabilir bir yöntem kullanmanızdır . Neden, "dev vektör" in oluşumundan kaçınıyorsunuz? Kesinlikle eşit aralıklı noktalara ihtiyacınız varsa,ode45()
her zamanki gibi devam edin ve sonra enterpolasyon kullanın.