Saya perlu menghitung integral berikut: f ( E ) = T r
Inilah penelitian saya sejauh ini:
1) Saya menggunakan integrasi Gaussian, jalur integrasi saya adalah persegi panjang. Saya memperbaiki sisi kiri dan kanan (yaitu lebar) dan bermain dengan tinggi (di atas dan di bawah sumbu nyata) sehingga untuk urutan integrasi yang diberikan saya mendapatkan akurasi tertinggi. Misalnya untuk pesanan 20, jika ketinggiannya terlalu besar, akurasinya turun (jelas), tetapi jika terlalu kecil, ia juga turun (teori saya adalah bahwa ia membutuhkan lebih banyak titik di sekitar kutub saat ketinggian naik ke 0). Saya puas dengan ketinggian optimal 0,5 untuk fungsi saya.
2) Lalu saya mengatur sisi kanan persegi panjang pada E0, biasanya E0 = 0, tetapi bisa juga E0 = -0.2 atau yang serupa.
3) Saya mulai memindahkan sisi kiri dari persegi panjang ke kiri dan untuk setiap langkah saya melakukan integrasi urutan konvergensi untuk memastikan integral saya sepenuhnya terkonvergensi untuk setiap persegi panjang. Dengan menambah lebar, saya akhirnya mendapatkan nilai konvergen dalam batas setengah lingkaran kiri tak hingga.
Perhitungannya sangat lambat dan juga tidak terlalu akurat untuk lebar yang besar. Salah satu perbaikannya adalah dengan mempartisi lebar yang panjang menjadi "elemen" dan menggunakan integrasi Gaussian pada setiap elemen (seperti dalam FE).
Pilihan lain adalah mengintegrasikan lingkaran kecil di sekitar masing-masing kutub dan merangkumnya. Masalah:
a) Bagaimana cara menemukan kutub fungsi numerik ? Itu harus kuat. Satu-satunya yang saya tahu adalah bahwa mereka berada di poros nyata negatif. Untuk beberapa dari mereka (tapi tidak semua) saya juga tahu tebakan awal yang cukup bagus. Apakah ada metode yang berfungsi untuk fungsi analitik f ( E ) ? Atau apakah itu tergantung pada bentuk aktual dari f ( E ) ?
b) Setelah kita tahu kutub, skema numerik apa yang terbaik untuk mengintegrasikan lingkaran kecil di sekitarnya? Haruskah saya menggunakan integrasi Gaussian pada lingkaran? Atau haruskah saya menggunakan distribusi poin yang seragam?
Pilihan lain mungkin sekali saya tahu kutub berkat a), mungkin ada beberapa cara semi-analitik untuk mendapatkan Residu tanpa perlu integrasi yang kompleks. Tetapi untuk sekarang saya akan senang hanya mengoptimalkan integrasi kontur.
sumber
Jawaban:
Saya dapat menawarkan saran untuk pertanyaan pertama Anda: Jika Anda tahu kutub Anda berada di suatu tempat di sepanjang sumbu nyata, Anda bisa melokalkannya cukup efisien menggunakan interpolasi / pendekatan Rasional . Ini sama dengan menemukan polinomial dan q ( x ) sedemikian rupap(x) q(x)
untuk dalam beberapa interval. Tiang-tiang f ( x ) kemudian harus cocok dengan akar q ( x )x f(x) q(x) .
Interpolasi / aproksimasi rasional bisa menjadi hal yang rumit, tetapi saya baru-baru ini ikut menulis makalah tentang algoritma yang stabil untuk menghitungnya menggunakan SVD. Makalah ini berisi kode Matlab yang mengimplementasikan algoritme, dan versi yang lebih luas tersedia sebagai fungsi
ratinterp
dalam proyek Chebfun , di mana saya adalah salah satu pengembangnya.Untuk pertanyaan kedua Anda, makalah ini mungkin bermanfaat.
sumber