Як чисельно обчислити залишки?


15

Мені потрібно обчислити наступний інтеграл: де - матриця (одна кінетична частинка і потенційна енергія, виражена в основі), - матриця, яка залежить від E (одночастинка багато- функція тіла Гріна) та інтегральний контур - лівий півколо. Інтеграл f (E) має полюси на від'ємній реальній осі, і це дорого оцінити. Який найефективніший спосіб обчислити такий інтеграл?

12πiСf(Е)гЕ
f(Е)=Тr((год+Е)Г(Е))
годГЕf(Е)

Ось моє дослідження поки що:

1) Я використовую інтеграцію Гаусса, мій шлях інтеграції - прямокутник. Я зафіксував лівий і правий бік (тобто ширину) і грав з висотою (вище і нижче реальної осі) таким чином, що для заданого порядку інтеграції я отримую найвищу точність. Наприклад, для порядку 20, якщо висота занадто велика, точність знижується (очевидно), але якщо вона занадто мала, вона також знижується (моя теорія полягає в тому, що їй потрібно все більше та більше точок навколо полюсів, оскільки висота йде на 0). Я влаштувався з оптимальною висотою 0,5 для своєї функції.

2) Потім я встановив праву частину прямокутника на E0, як правило, E0 = 0, але це може бути E0 = -0.2 або щось подібне.

3) Я починаю рухати ліву частину прямокутника ліворуч і на кожному кроці роблю конвергенцію порядку, щоб переконатися, що мій інтеграл повністю зближений для кожного прямокутника. Збільшуючи ширину, я зрештою отримую збільшене значення в межі нескінченного лівого півкола.

Розрахунки дійсно повільні, а також не дуже точні для великих ширин. Одне вдосконалення - це просто розділити довгу ширину на "елементи" та використовувати інтеграцію Гаусса на кожен елемент (як і в FE).

Іншим варіантом було б об'єднати невелике коло навколо кожного полюса і підсумувати його. Проблеми:

а) Як чисельно знайти полюси функції ? Він повинен бути надійним. Я знаю єдине, що вони знаходяться на негативній реальній осі. Для деяких з них (але не всіх) я також знаю досить непогану початкову здогадку. Чи існує метод, який працює для будь-якої аналітичної функції ? Або це залежить від фактичної форми ?f(Е)f(Е)f(Е)

б) Як тільки ми дізнаємося полюси, яка числова схема найкраща для інтеграції малого кола навколо неї? Чи слід використовувати інтерес Гаусса по колу? Або я повинен використовувати якийсь рівномірний розподіл балів?

Іншим варіантом може бути те, що коли я знаю полюси завдяки a), може бути якийсь напіваналітичний спосіб отримати залишки без необхідності складної інтеграції. Але поки я радий просто оптимізувати інтеграцію контуру.


1
Ви перевірили книгу «Числові методи для інверсії трансформації Лапласа» Коена (2007)? IIRC, Роберт Піссенс (про славу QUADPACK) також працював над цією темою.
GertVdE

Відповіді:


7

p(х)q(х)

f(х)p(х)q(х)

хf(х) q(х)

Раціональна інтерполяція / наближення може бути складним, але я нещодавно був співавтором статті про стабільний алгоритм для їх обчислення за допомогою SVD. У статті міститься код Matlab, що реалізує алгоритм, і більш широка його версія доступна як функція ratinterpв проекті Chebfun , я є одним із розробників.

Для вашого другого питання цей документ може бути корисним.


Дякую за всі поради! Ось код netlib.org/toms/579 газети Bengt Fornberg. На жаль, є деяка числова помилка, оскільки це вихід, який я отримую: gist.github.com/2942970#file_output . Тому мені доведеться повторно зафіксувати або налагодити його. Посилання на Chebfun дає мені 404 (я спробував це кілька місяців тому з тими ж результатами, тому, можливо, у США це просто не працює).
Ondřej Čertík

@ OndřejČertík: Я ніколи не використовував код TOMS 579, тому не знаю, що сказати вам про помилки. Що стосується домашньої сторінки Chebfun, чи можете ви спробувати "гуглювати" її і побачити, чи працює вона тоді?
Педро

Google знаходить домашню сторінку Chebfun та показує кешовані версії. Але коли я натискаю на сторінку, це те, що я отримую: pastehtml.com/view/c1ts4h3ct.html
Ondřej Čertík

Спробуйте інший браузер? Або від іншого провайдера. Веб-сайт працює чудово звідси (у США)
Costis

Я спробував Firefox та Chrome. Так має зробити мій провайдер. Дивно.
Ondřej Čertík
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.