Kalıntılar sayısal olarak nasıl hesaplanır?


15

Aşağıdaki integrali hesaplamak gerekir: neredeolan bir matris (bir tanecik kinetik ve potansiyel bazda ifade edilen potansiyel enerji),,(bir parçacık çok gövdeli Green fonksiyonu)bağlı bir matristirve kontur integrali sol yarım daire şeklindedir. integralininnegatif gerçek eksende kutupları vardır ve değerlendirilmesi pahalıdır. Böyle bir integrali hesaplamanın en etkili yolu nedir?

12πbenCf(E)dE
hGEf(E)
f(E)=Tr((h+E)G,(E))
hG,Ef(E)

İşte şimdiye kadar yaptığım araştırma:

1) Gauss entegrasyonunu kullanıyorum, entegrasyon yolum bir dikdörtgen. Sol ve sağ tarafı (yani genişlik) sabitledim ve verilen entegrasyon sırası için en yüksek doğruluğu elde edeceğim şekilde yükseklikle (gerçek eksenin üstünde ve altında) oynadım. Örneğin, sipariş 20 için, yükseklik çok büyükse, doğruluk azalır (açıkçası), ancak çok küçükse, aynı zamanda azalır (teorim, yükseklik yükseldikçe kutupların etrafında daha fazla noktaya ihtiyaç duymasıdır. 0). İşlevim için en uygun yükseklik 0.5 ile yerleştim.

2) Sonra dikdörtgenin sağ tarafını E0, tipik olarak E0 = 0 olarak ayarladım, ancak E0 = -0.2 veya benzeri bir şey olabilir.

3) Dikdörtgenin sol tarafını sola hareket ettirmeye başladım ve her adım için integralimin her bir dikdörtgen için tamamen yakınsama olduğundan emin olmak için entegrasyon sırası yakınsaması yapıyorum. Genişliği artırarak, sonunda sonsuz sol yarım daire sınırında yakınsak bir değer elde ederim.

Hesaplama gerçekten yavaştır ve büyük genişlikler için de çok doğru değildir. Bir gelişme, uzun genişliği basitçe "elemanlara" ayırmak ve her elemanda Gauss entegrasyonunu kullanmaktır (tıpkı FE'de olduğu gibi).

Başka bir seçenek, her kutbun etrafına küçük bir daire entegre etmek ve özetlemek olacaktır. sorunlar:

a) fonksiyonunun kutuplarını nasıl sayısal olarak bulurum ? Sağlam olmalı. Bildiğim tek şey negatif gerçek eksende olmaları. Bazıları için (ama hepsi değil) ben de oldukça iyi bir ilk tahmin biliyorum. Herhangi bir analitik fonksiyon için çalışan bir yöntem var mı ? Yoksa gerçek formuna mı bağlı?f ( E ) f ( E )f(E)f(E)f(E)

b) Kutupları öğrendikten sonra, etrafındaki küçük daireyi entegre etmek için hangi sayısal şema en iyisidir? Gauss entegrasyonunu bir çevre üzerinde mi kullanmalıyım? Yoksa noktaların eşit dağılımını mı kullanmalıyım?

Başka bir seçenek, a) sayesinde kutupları öğrendiğimde, Karmaşık entegrasyona gerek kalmadan Kalıntıları elde etmenin yarı analitik bir yolu olabilir. Ancak şimdilik sadece kontur entegrasyonunu optimize etmekten mutluluk duyarım.


1
Cohen (2007) tarafından "Laplace Dönüşümü İnversiyonu için Sayısal Yöntemler" kitabını kontrol ettiniz mi? IIRC, Robert Piessens (QUADPACK şöhretinden) de bu konuda çalıştı.
GertVdE

Yanıtlar:


7

İlk sorunuz için bir öneri sunabilirim: Kutuplarınızın gerçek eksen boyunca bir yerde olduğunu biliyorsanız, Rasyonel enterpolasyon / yaklaşım kullanarak bunları oldukça verimli bir şekilde yerelleştirebilirsiniz . Bu, ve q ( x ) polinomlarının bulunması anlamına gelir.p(x)q(x)

f(x)p(x)q(x)

bir süre için . Kutupları f ( x ) olmalıdır sonra köklerini eşleşen q ( X ) .xf(x) q(x)

Rasyonel enterpolasyon / yaklaşım zor bir şey olabilir, ancak son zamanlarda SVD kullanarak bunları hesaplamak için kararlı bir algoritma üzerine bir makale yazdım . Kağıt algoritmasını uygulamak Matlab kodu içeren ve daha kapsamlı versiyonu bunların fonksiyonu olarak kullanılabilir ratinterpiçinde Chebfun projesinin Geliştiriciler biri olduğum.

İkinci sorunuz için bu makale faydalı olabilir.


Tüm ipuçları için teşekkürler! İşte kod netlib.org/toms/579 Bengt Fornberg kağıt. Ne yazık ki, bu sayısal bir hata var, çünkü bu elde ediyorum çıktı: gist.github.com/2942970#file_output . Bu yüzden yeniden uygulamak veya hata ayıklamak zorunda kalacağım. Chebfun bağlantısı bana 404 veriyor (birkaç ay önce aynı sonuçlarla denedim, belki de ABD'den işe yaramıyor).
Ondřej Čertík

@ OndřejČertík: TOMS 579 kodunu hiç kullanmadım, bu yüzden size hatalar hakkında ne söyleyeceğimi bilmiyorum. Chebfun ana sayfasına gelince, "googling" denemeyi ve o zaman çalışıp çalışmadığını görmeyi deneyebilir misiniz?
Pedro

Google, Chebfun ana sayfasını bulur ve önbelleğe alınmış sürümleri gösterir. Ancak sayfaya tıkladığımda, şunu elde ederim: pastehtml.com/view/c1ts4h3ct.html
Ondřej Čertík

Farklı bir tarayıcı denemek ister misiniz? Veya farklı bir İSS'den. Web sitesi buradan iyi çalışıyor (ABD'de)
Costis

Firefox ve Chrome'u denedim. Bu yüzden ISS'im tarafından olmalı. Tuhaf.
Ondřej Čertík
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.