integracja numeryczna z możliwym dzieleniem przez „zero”

9

Próbuję zintegrować

01t2n+2exp(αr0t)dt

która jest prostą transformacją

1x2nexp(αr0x)dx

za pomocą t=1xponieważ trudno jest liczbowo aproksymować nieprawidłowe całki. Prowadzi to jednak do problemu oceny nowego całka blisko zera. Bardzo łatwo będzie uzyskać odpowiednią liczbę węzłów kwadraturowych, ponieważ przedział ma tylko długość 1 (więc porównywalnydt może być bardzo mały), ale jakie uwagi należy wziąć pod uwagę przy integracji w pobliżu zera?

Na pewnym poziomie myślę, że to po prostu biorąc ϵ1t2n+2exp(αr0t)dt jest dobrym pomysłem gdzie ϵto jakaś niewielka liczba. Jednak jaki numer powinienem wybrać? Czy powinien to być epsilon maszynowy? Czy podział przez epsilon maszynowy jest liczbą dobrze skwantyfikowaną? Co więcej, jeśli podział mojej maszyny epsilon (lub blisko niej) daje niewiarygodnie dużą liczbę, to biorącexp(1ϵ) stanie się jeszcze większy.

Jak mam to uwzględnić? Czy istnieje sposób na dobrze zdefiniowaną całkę numeryczną tej funkcji? Jeśli nie, jaki jest najlepszy sposób integracji funkcji?

drjrm3
źródło
1
Czy zastanawiałeś się nad użyciem Monte Carlo?
Faheem Mitha
Mam wrażenie, że nie rozwiązałoby to problemu. Integracja Monte Carlo jest często zarezerwowana dla całek wysokowymiarowych. Miałem takie same problemy z Monte Carlo, po prostu miałem mniej kontroli nad tym, gdzie moja funkcja jest oceniana.
drjrm3
Możesz mieć rację.
Faheem Mitha
Myślę, że dobrze byłoby mieć odpowiedź (być może na osobne, bardziej ogólne pytanie) wyjaśniającą, w jaki sposób dokonuje się integracji numerycznej, gdy funkcja jest rozbieżna na jednym limicie, w ogólnym przypadku, w którym nie jest możliwe wykonanie całki analitycznej. Z drugiej strony, równie dobrze można to znaleźć w przepisach numerycznych ...
David Z
@Faheem: „Monte Carlo to bardzo zła metoda; należy jej używać tylko wtedy, gdy wszystkie metody alternatywne są gorsze”. - Alan Sokal
JM

Odpowiedzi:

10

Można tego dokonać poprzez integrację części:

1xeax=1axeax11a1eax=eaa+eaa2=a+1a2ea
i kontynuowanie przez indukcję
1xkeax=1axkeax1ka1xk1eax=eaa+ka1xk1eax
po to aby
I(k)=eaa+kaI(k1)
i I(0)=eaa.
Matt Knepley
źródło
absolutnie nie mam pojęcia, jak to przeoczyłem. Dziękuję Ci.
drjrm3
1
Sprytne zamiany i integracja przez części zawsze powinny być jedną z pierwszych rzeczy, które robisz z niesfornymi całkami.
JM,
Często dobrym pomysłem jest zapytać system algebry komputerowej, gdy masz taką całkę. Klon ocenia „1x2nexp(αx)dx assuming n::nonnegint,α>0„natychmiast w Γ(2n+1,α)α2n1; Jestem pewien, że Mathematica robi to samo. (Nadal dobrym pomysłem jest to weryfikacja numeryczna, oczywiście, co ci faceci zazwyczaj mogą również zrobić.)
Erik P.
W rzeczywistości Mathematica wybiera reprezentację odpowiedzi jako ExpIntegralE [-2 n, ar]. Jeśli uruchomisz na niej FunctionExpand, to daje taką samą odpowiedź jak Maple.
Searke
1

Spójrz na QUADPACK . Ma procedury integracji z (pół-) nieskończonymi domenami.

GertVdE
źródło