Яку числову квадратуру вибрати для інтеграції функції із сингулярностями?


9

Наприклад, я хотів би чисельно обчислити L2-норм в деякому домені, що включає нуль, я спробував квадратуру Гаусса, і це не вдається, це якось далеко від реального -норму на одиничній кулі, використовуючи сферичні координати для інтеграції, чи є хороший спосіб це зробити? Ця проблема часто зустрічається в проблемах з іграшкою з кінцевими елементами, пов'язаними з обчисленнями імен для доменів з кутами, що повторюються. Дякую.у=1(х2+у2+z2)1/3L2


2
Якщо джерело знаходиться в домені інтеграції, чи можу я запропонувати розділити ваш інтеграл і потім перетворити кожен на сферичні координати?
JM

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

Відповіді:


8

Ви повинні мати можливість отримати точні результати за допомогою mpmath , модуля Python для обчислень з плаваючою комою з довільною точністю. Є приклади інтеграції з особливостями в документації . Ви хочете чітко сказати, щоб розбити інтервал:

from mpmath import *
f = lambda x,y,z: 1./(x**2+y**2+z**2)**1./3
quad(f,[-1,0,1],[-1,0,1],[-1,0,1])

Можливо, вам буде потрібно підвищити точність (наприклад mp.dps=30), і це, ймовірно, буде повільним, але має бути досить точним.

Ви також можете спробувати вкладати дзвінки в MATLAB quadgk(), який використовує адаптивну квадратуру Гаусса-Кроронрода в 1D.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.