Kwadratura Clenshawa-Curtisa

Kwadratura Clenshawa – Curtisa i kwadratura Fejéra to metody całkowania numerycznego lub „kwadratury”, które opierają się na rozwinięciu całki pod względem wielomianów Czebyszewa . Równoważnie wykorzystują zmianę zmiennych używają przybliżenia dyskretnej transformacji kosinusowej DCT dla Oprócz szybko zbieżnej dokładności porównywalnej z regułami kwadratury Gaussa , kwadratura Clenshawa-Curtisa w naturalny sposób prowadzi do zagnieżdżonych reguł kwadraturowych (gdzie różne rzędy dokładności mają wspólne punkty), co jest ważne zarówno w przypadku kwadratury adaptacyjnej , jak i kwadratury wielowymiarowej ( kubatura ).

W skrócie, funkcja jest oceniana w ekstremach lub pierwiastkach używane do skonstruowania wielomianowego przybliżenia funkcji Ten wielomian jest następnie całkowany dokładnie. W praktyce wagi integracji dla wartości funkcji w każdym węźle są wstępnie obliczane, a obliczenie to szybkiej Fouriera -powiązane algorytmy dla DCT.

Metoda ogólna

Prostym sposobem zrozumienia algorytmu jest uświadomienie sobie, że kwadratura Clenshawa-Curtisa (zaproponowana przez tych autorów w 1960 r.) sprowadza się do całkowania poprzez zmianę zmiennej x = cos( θ ) . Algorytm jest zwykle wyrażany dla całkowania funkcji f ( x ) w przedziale [−1,1] (dowolny inny przedział można uzyskać przez odpowiednie przeskalowanie). Dla tej całki możemy napisać:

przekształciliśmy problem z całkowania na problem całkowania . Można to wykonać, jeśli znamy szereg kosinusowy dla :

w takim przypadku całka staje się:

Oczywiście w celu obliczenia współczynników serii cosinus

trzeba ponownie wykonać całkowanie numeryczne, więc na początku może się wydawać, że nie uprościło to problemu. Jednak w przeciwieństwie do obliczania dowolnych całek, całki w szereg Fouriera dla jak przez aż do Nyquista obliczane przez punkty dla } (z wyjątkiem tego, że punkty końcowe są ważone przez 1/2, aby uniknąć podwójnego liczenia, co jest równoważne z regułą trapezów lub wzorem Eulera – Maclaurina ). Oznacza to, że aproksymujemy całkę cosinusową za pomocą dyskretnej transformaty kosinusowej typu I (DCT):

dla następnie użyj powyższego wzoru dla całki w kategoriach tych za . Ponieważ potrzebny jest tylko , wzór upraszcza się dalej do DCT typu I rzędu N / 2 , zakładając, że N jest parzystą :

Z tego wzoru jasno wynika, że ​​​​reguła kwadratur Clenshawa-Curtisa jest symetryczna, ponieważ równo waży f ( x ) i f ( - x ).

Z powodu aliasingu współczynniki oblicza się tylko k N / 2 , ponieważ dyskretne próbkowanie funkcji powoduje, że częstotliwość 2 k nie do odróżnienia od częstotliwości N k . Równoważnie, to amplitudy unikalnego wielomianu interpolacji trygonometrycznej o ograniczonym paśmie przechodzącym przez punkty N + 1 , w których oblicza się f ( cos θ ) i przybliżamy całkę przez całkę tego za 2 k {\ displaystyle a_ wielomian interpolacyjny. Istnieje jednak pewna subtelność w sposobie traktowania w całce - aby uniknąć podwójnego liczenia z jego aliasem, jest on uwzględniany z wagą 1/2 w końcowej przybliżonej całce ( można również zobaczyć, badając wielomian interpolujący):

Połączenie z wielomianami Czebyszewa

Powodem, dla którego jest to połączone z wielomianami Czebyszewa, definicji , a więc powyższy szereg cosinusów jest w rzeczywistości przybliżeniem wielomianów Czebyszewa :

a zatem „naprawdę” integrujemy, pod względem wielomianów Czebyszewa Punkty wielomianu T_ _ .

Fakt, że takie Czebyszewa przybliżenia, ponieważ uwzględniono więcej . Szereg kosinusowy zbiega się bardzo szybko dla funkcji, które są parzyste , okresowe i wystarczająco gładkie. Jest to prawdą tutaj, ponieważ parzysty i okresowy i - różniczkowalny jest k - razy różniczkowalna na . (W przeciwieństwie do tego, bezpośrednie zastosowanie rozwinięcia szereg kosinusowy do zamiast zamiast zbieżne szybko , ponieważ nachylenie parzystookresowego wydłużenia byłoby na ogół nieciągłe).

Kwadratura Fejéra

Fejér zaproponował dwie zasady kwadraturowe bardzo podobne do kwadratury Clenshawa-Curtisa, ale znacznie wcześniej (w 1933 r.).

Z tych dwóch „druga” reguła kwadraturowa Fejéra jest prawie identyczna z regułą Clenshawa – Curtisa. Jedyna różnica punkty i Oznacza to, że Fejér użył tylko ekstremów wewnętrznych wielomianów Czebyszewa, tj. rzeczywistych punktów stacjonarnych.

Fejéra ocenia wartość w między ekstremami : dla . To są korzenie _ _ _ (Te równomiernie rozmieszczone punkty środkowe są jedynym innym wyborem punktów kwadraturowych, które zachowują zarówno parzystą symetrię transformaty kosinusowej, jak i translacyjną symetrię okresowego szeregu Fouriera). Prowadzi to do wzoru:

który jest właśnie DCT typu II. Jednak pierwsza reguła kwadraturowa Fejéra nie jest zagnieżdżona: punkty oceny dla 2 N nie pokrywają się z żadnym z punktów oceny dla N , w przeciwieństwie do kwadratury Clenshawa-Curtisa lub drugiej reguły Fejéra.

Pomimo faktu, że Fejér odkrył te techniki przed Clenshawem i Curtisem, nazwa „kwadratura Clenshawa – Curtisa” stała się standardem.

Porównanie do kwadratury Gaussa

Klasyczna metoda kwadratury Gaussa ocenia całkę w punktach i jest skonstruowana tak, aby wielomiany do stopnia . tego, powyższa kwadratura Clenshawa – Curtisa ocenia całkę w punktach i integruje wielomiany tylko do Może się zatem wydawać, że Clenshaw-Curtis jest z natury gorszy niż kwadratura Gaussa, ale w rzeczywistości tak nie jest.

W praktyce kilku autorów zauważyło, że Clenshaw-Curtis może mieć dokładność porównywalną z kwadraturą Gaussa dla tej samej liczby punktów. Jest to możliwe, ponieważ większość całek liczbowych nie jest wielomianami (zwłaszcza, że ​​wielomiany można całkować analitycznie), a przybliżenie wielu funkcji za pomocą wielomianów Czebyszewa szybko się zbiega (patrz przybliżenie Czebyszewa ). Gaussa przez k dla -czasy całki różniczkowalnej.

wagi kwadraturowe można oszacować w czasie za pomocą szybkich algorytmów Fouriera (lub dla DCT) algorytmów wag kwadraturowych Gaussa wymagała obliczenia. algorytmy osiągnęły złożoność . Ze względów praktycznych całkowanie numeryczne wysokiego rzędu jest wykonywane przez proste obliczenie wzoru kwadraturowego dla bardzo . Zamiast tego zwykle stosuje się adaptacyjny schemat kwadraturowy, który najpierw ocenia całkę do niskiego rzędu, a następnie sukcesywnie poprawia dokładność, zwiększając liczbę punktów próbkowania, prawdopodobnie tylko w obszarach, w których całka jest niedokładna. Aby ocenić dokładność kwadratury, porównuje się odpowiedź z regułą kwadratury jeszcze niższego rzędu. W idealnym przypadku ta reguła kwadraturowa niższego rzędu ocenia całkę w podzbiorze oryginalnych N punktów, aby zminimalizować oceny całki. Nazywa się to zagnieżdżoną regułą kwadraturową i tutaj Clenshaw-Curtis ma tę zaletę, że reguła dla rzędu N wykorzystuje podzbiór punktów z rzędu 2 N . W przeciwieństwie do tego, reguły kwadraturowe Gaussa nie są naturalnie zagnieżdżone, dlatego należy zastosować formuły kwadraturowe Gaussa-Kronroda lub podobne metody. Reguły zagnieżdżone są również ważne dla rzadkich siatek w wielowymiarowej kwadraturze, a kwadratura Clenshawa-Curtisa jest popularną metodą w tym kontekście.

Integracja z funkcjami wagowymi

ogólnie, można postawić problem zintegrowania dowolnej ustaloną wagą, jest znana z wyprzedzeniem: fa

Najczęstszym przypadkiem jest , jest inna funkcja wagi Podstawowym powodem jest to, że skoro wziąć pod uwagę priori , błąd całkowania zależeć tylko od dokładności przybliżenia , niezależnie od tego, jak źle zachowuje się funkcja wagi.

Kwadraturę Clenshawa – Curtisa można uogólnić na ten przypadek w następujący sposób. Tak jak poprzednio, działa to poprzez rozwinięcia w szereg cosinusowy DCT, a następnie całkowanie każdego wyrazu Teraz jednak całki te mają postać

Dla większości nie można obliczyć analitycznie, w przeciwieństwie zwykle używana dla wielu całek sobie pozwolić na wcześniejsze obliczenie tych z dużą dokładnością ponieważ analitycznie , czasami można zastosować wyspecjalizowane

Na przykład opracowano specjalne metody stosowania kwadratury Clenshawa-Curtisa do całek postaci z funkcją wagi , która jest wysoce oscylacyjna, np. sinusoida lub funkcja Bessela (patrz np. Evans & Webster, 1999). Jest to przydatne w obliczeniach szeregów Fouriera i szeregów Fouriera-Bessela z dużą dokładnością , gdzie proste kwadraturowe są problematyczne ze względu na dużą dokładność wymaganą do rozwiązania wkładu szybkiego w ( oscylacje. Tutaj całki o szybkich oscylacjach jest brana pod uwagę za pomocą specjalistycznych metod dla zwykle lepiej zachowywana

Innym przypadkiem, w którym funkcje wagowe są szczególnie przydatne, jest sytuacja, gdy całka jest nieznana, ale ma znaną osobliwość jakiejś postaci, np. znaną nieciągłość lub całkowalną rozbieżność (taką jak 1/ x ) w pewnym punkcie. można wciągnąć do funkcji wagi, wykorzystać do dokładnego obliczenia.

Należy zauważyć, że kwadraturę Gaussa można również dostosować do różnych funkcji wagowych, ale technika jest nieco inna. zawsze oceniana w tym samym zestawie punktów, niezależnie od tego, co wielomianu Czebyszewa. W kwadraturze Gaussa różne funkcje wagi prowadzą do różnych wielomianów ortogonalnych , a tym samym do różnych pierwiastków, w których obliczana jest całka.

Całkowanie na przedziałach nieskończonych i półnieskończonych

Możliwe jest również użycie kwadratury Clenshawa – Curtisa do obliczenia całek postaci i , przy użyciu techniki ponownego mapowania współrzędnych. Wysoką dokładność, nawet zbieżność wykładniczą dla gładkich całek, można zachować tak długo, jak rozpada się wystarczająco szybko, ponieważ x | zbliża się do nieskończoności.

Jedną z możliwości jest użycie ogólnej transformacji współrzędnych, takiej jak x = t /(1− t 2 )

przekształcić nieskończony lub półnieskończony interwał w skończony, jak opisano w Całkowanie numeryczne . Istnieją również dodatkowe techniki, które zostały opracowane specjalnie dla kwadratury Clenshawa-Curtisa.

Na można użyć określoną jeden mógłby po prostu użyć L = 1; optymalny wybór L może przyspieszyć zbieżność, ale jest zależny od problemu), aby przekształcić całkę półnieskończoną w:

Czynnik mnożący sin( θ ), f (...)/(...) 2 , można następnie rozwinąć w szereg kosinusowy (w przybliżeniu, stosując dyskretną transformatę kosinusową) i scałkować wyraz po wyrazie, dokładnie tak, jak to było zrobione dla f (cos θ ) powyżej. Aby wyeliminować osobliwość w θ = 0 w tej całce, wystarczy, że f ( x ) dąży do zera wystarczająco szybko, gdy x zbliża się do nieskończoności, aw szczególności f ( x ) musi zanikać co najmniej tak szybko, jak 1/ x 3/2 .

można użyć ponownego odwzorowania współrzędnych L jest przez użytkownika, jak powyżej integralna w:

W tym przypadku wykorzystaliśmy fakt, że przemapowana całka f ( L cot θ )/sin 2 ( θ ) jest już okresowa, więc może być bezpośrednio całkowana z dużą (nawet wykładniczą) dokładnością przy użyciu reguły trapezów (zakładając, że f jest wystarczająco gładkie i szybko psujące się); nie ma potrzeby obliczania szeregu cosinusowego jako kroku pośredniego. Zauważ, że reguła kwadraturowa nie obejmuje punktów końcowych, gdzie założyliśmy, że całka dąży do zera. Powyższy wzór wymaga, aby f ( x ) rozpadało się szybciej niż 1/ x 2 , gdy x dąży do ±∞. (Jeżeli f rozpada się dokładnie jak 1/ x 2 , to całka osiąga wartość skończoną w punktach końcowych i te granice muszą być uwzględnione jako wyrazy końcowe w regule trapezów.). Jeśli jednak f rozpada się szybko tylko wielomianowo, może być konieczne zastosowanie kolejnego kroku kwadratury Clenshawa-Curtisa, aby uzyskać dokładność wykładniczą ponownie odwzorowanej całki zamiast reguły trapezów, w zależności od większej liczby szczegółów ograniczających właściwości f : the problem polega na tym, że chociaż f ( L cot θ )/sin 2 ( θ ) jest rzeczywiście okresowe z okresem π, niekoniecznie jest gładkie w punktach końcowych, jeśli wszystkie pochodne tam nie znikają [np. funkcja f ( x ) = tanh ( x 3 )/ x 3 rozpada się jako 1/ x 3 , ale ma skokową nieciągłość nachylenia przemapowanej funkcji przy θ=0 i π].

Zasugerowano inne podejście do ponownego mapowania współrzędnych dla całek postaci , w takim przypadku można użyć transformacji x grzech gdzie w którym punkt jeden można postępować identycznie z kwadraturą Clenshawa-Curtisa dla f jak powyżej. Jednak ze względu na osobliwości punktów końcowych w tym ponownym odwzorowaniu współrzędnych, stosuje się pierwszą regułę kwadraturową Fejéra [która nie ocenia f (−1)], chyba że g (∞) jest skończone.

Wstępne obliczanie wag kwadraturowych

W praktyce niewygodne jest wykonywanie DCT próbkowanych wartości funkcji f (cos θ) dla każdej nowej całki. Zamiast tego zwykle wstępnie oblicza się wagi kwadraturowe (dla od 0 do N / 2, zakładając, że N jest parzyste), więc w n displaystyle

te również obliczane przez DCT, co łatwo zauważyć, wyrażając obliczenia w macierzowej . W szczególności obliczyliśmy współczynniki szeregu cosinusowego za pomocą wyrażenia w postaci:

gdzie D jest formą macierzową ( N /2+1)-punktowego DCT typu I z góry, z wpisami (dla indeksów od zera ):

i jest

Jak omówiono powyżej, z powodu aliasingu nie ma sensu obliczanie współczynników poza więc D jest za macierz. Pod względem tych współczynników c całka wynosi w przybliżeniu:

z góry, gdzie c jest wektorem współczynników , a d jest wektorem całek dla każdego współczynnika Fouriera: za

(Należy jednak zauważyć, że te współczynniki wagi ulegają zmianie, jeśli zmieni się macierz DCT D , aby zastosować inną konwencję normalizacji. Na przykład często definiuje się DCT typu I z dodatkowymi czynnikami 2 lub 2 czynniki w pierwszym i ostatnie wiersze lub we d .) można przeorganizować w następujący sposób:

gdzie w jest wektorem pożądanych wag powyżej, przy czym

Ponieważ transponowana macierz jest również DCT (np. transponowana DCT typu I jest DCT typu I, prawdopodobnie z nieco inną normalizacją w zależności od zastosowanych konwencji D T {\ Displaystyle D ^ { ), wagi kwadraturowe w można wstępnie obliczyć w czasie O ( N log N ) dla danego N przy użyciu szybkich algorytmów DCT.

Wagi równa jeden.

Zobacz też

  1. ^ W. Morven Gentleman, „Implementacja kwadratury Clenshawa-Curtisa I: Metodologia i doświadczenie”, Komunikaty ACM 15 (5), s. 337-342 (1972).
  2. ^ Jörg Waldvogel, „ Szybka konstrukcja reguł kwadraturowych Fejéra i Clenshawa-Curtisa ”, BIT Numerical Mathematics 46 (1), s. 195-202 (2006).
  3. ^ CW Clenshaw i AR Curtis „ Metoda całkowania numerycznego na komputerze automatycznym Numerische Mathematik 2 , 197 (1960).
  4. ^ JP Boyd, Chebychev i Fourier Spectral Methods , wyd. (Dover, Nowy Jork, 2001).
  5. ^ Zobacz na przykład SG Johnson, „ Notatki o zbieżności kwadratury trapezoidalnej” , „Notatki z kursu online MIT (2008).
  6. ^ Leopold Fejér, „ O nieskończonych sekwencjach powstających w teoriach analizy harmonicznej, interpolacji i mechanicznych kwadraturach ”, Bulletin of the American Mathematical Society 39 (1933), s. 521–534. Leopold Fejér, Mechanische Quadraturen mit positiven Cotesschen Zahlen , Mathematische Zeitschrift 37 , 287 (1933).
  7. ^   Trefethen, Lloyd N. (2008). „Czy kwadratura Gaussa jest lepsza niż Clenshaw-Curtis?”. Przegląd SIAM . 50 (1): 67–87. CiteSeerX 10.1.1.157.4174 . doi : 10.1137/060659831 .
  8. ^ Ignace Bogaert, Obliczanie Gaussa bez iteracji - legendarne węzły i wagi kwadraturowe, SIAM Journal on Scientific Computing, tom. 36 , s. A1008–A1026 (2014)
  9. ^ Erich Novak i Klaus Ritter, „Wysoce wymiarowa integracja gładkich funkcji na kostkach”, Numerische Mathematik, tom. 75 , s. 79-97 (1996).
  10. ^ GA Evans i JR Webster, „Porównanie niektórych metod oceny całek wysoce oscylacyjnych”, Journal of Computational and Applied Mathematics , tom. 112 , str. 55-69 (1999).
  11. ^ a b c d e John P. Boyd, „Wykładniczo zbieżne schematy kwadraturowe Fouriera – Chebsheva [ sic ] na przedziałach ograniczonych i nieskończonych”, J. Scientific Computing 2 (2), s. 99-109 (1987).
  12. ^ Nirmal Kumar Basu i Madhav Chandra Kundu, „Niektóre metody całkowania numerycznego w przedziale półnieskończonym”, Applications of Mathematics 22 (4), s. 237-243 (1977).
  13. ^ JP Imhof, „O metodzie całkowania numerycznego Clenshawa i Curtisa”, Numerische Mathematik 5 , s. 138-141 (1963).