O numerycznym całkowaniu

Przybliżanie, metoda najmniejszych kwadratów, wielomiany interpolacyjne i inne.
janusz47
Użytkownik
Użytkownik
Posty: 7917
Rejestracja: 18 mar 2009, o 16:24
Płeć: Mężczyzna
Podziękował: 30 razy
Pomógł: 1671 razy

O numerycznym całkowaniu

Post autor: janusz47 »

Przychylając się Pańskiej prośbie, zamieszczam krótką informację na temat kwadratur Newtona –Cotesa i kwadratur Gaussa.

Na podstawie wzoru Newtona-Leibniza, otrzymujemy wartość dokładną całki:

\(\displaystyle{ I = \int_{0}^{3} x^3 dx = \frac{1}{4}x^4 \left |_{0}^{3} = \frac{1}{4} \cdot \left( 3^4 -3^0\right ) = \frac{1}{4}\cdot 81 = 20,25.}\)

Mając dokładną wartość całki, chcemy tę wartość potwierdzać metodami przybliżonymi w postaci kwadratur (zadanie według mnie sztuczne, aczkolwiek mające na celu poznanie podstawowych metod numerycznego całkowania i dokładności tych metod).

Kwadratury Newtona-Cotesa

Kwadratury Newtona-Cotesa są to kwadratury oparte na węzłach wielomianu interpolacyjnego Lagrange'a \(\displaystyle{ p_{n}.}\)

\(\displaystyle{ \int_{a}^{b} f(x)dx = \sum_{k=0}^{n} w_{k}\cdot f(a + k\cdot h),}\)

gdzie:

\(\displaystyle{ h = \frac{b - a}{n}, \ \ w_{k} = \int_{a}^{b} L_{k}(x)dx , \ \ L_{k}(x) = \prod_{i=0, i \neq k}^{n} \frac{x -x_{i}}{x_{k} -x{i}}.}\)

Dla \(\displaystyle{ n=1}\) i \(\displaystyle{ x_{0} = a, \ \ x_{1} = b,}\) otrzymujemy wielomian interpolacyjny Lagrange'a pierwszego stopnia

\(\displaystyle{ p_{1}(x) = L_{0}(x)\cdot f(a) + L_{1}(x)\cdot f(b) = \frac{x-b}{a-b} f(a) + \frac{x-a}{b-a}f(b) = \frac{1}{b-a}[ (b-x)f(a)+(x-a)f(b)].}\)

Całkując \(\displaystyle{ p_{1}(x)}\) w granicach od \(\displaystyle{ a}\) do \(\displaystyle{ b}\), otrzymujemy kwadraturę Newtona-Cotesa rzędu pierwszego:

\(\displaystyle{ T_{1}(a,b, f)) = \int_{a}^{b}\frac{1}{b-a} [(b-x)f(a)+ (x - a)f(b)]dx = \frac{1}{b-a} \left [-\frac{(b-x)^2}{2}f(a) + \frac{(x-a)^2}{2}f(b) \right |_{a}^{b} = \frac{1}{b-a} \left [\frac{(b-a)^2}{2} f(b) + \frac{(b-a)^2}{2} f(a) \right] = \frac{b-a}{2} \left [ f(a) + f(b) \right ].}\)

Jest to wzór (kwadratura) trapezu.

Podstawiając \(\displaystyle{ a = 0, \ \ b =3, \ \ f(0) = 0^3 =0, \ \ f(3) = 3^3 = 27,}\)

otrzymamy:

\(\displaystyle{ T(0, 3, x^3) = \frac{3 - 0}{2}\cdot (0 + 27) = \frac{81}{2} = 40,50.}\)

Jak widzimy ta kwadratura nie nadaje się do aproksymacji wartości całki \(\displaystyle{ I,}\) bo błąd względny przybliżenia wynosi:

\(\displaystyle{ \frac{| 20,25 - 40,5|}{20,25} \cdot 100\% = 100\%.}\)

Można zwiększyć dokładność obliczenia tej całki - stosując złożoną kwadraturę trapezów, którą wyprowadzamy podobnie, uwzględniając wielomian interpolacyjny Lagrange'a stopnia \(\displaystyle{ n.}\)

\(\displaystyle{ \int_{a}^{b} f(x) dx = h \cdot \left[ \frac{1}{2}f(a) +f(x_{1}) + ...+ f(x_{n-1})+ \frac{1}{2}f(x_{n}) \right] .}\)

Błąd tej kwadratury wynosi:

\(\displaystyle{ \epsilon ( h) =- \frac{(b-a)\cdot h^2}{12}\cdot f^{''}(\xi), \ \ \xi \in (a, b).}\)


W naszym przypadku na przykład dla \(\displaystyle{ n =10}\) węzłów

i programu Maple 6

Kod: Zaznacz cały

> with(student);

> trapezoid( x^3, x =0 . . 3, 10);

>evalf(\%);

 > 20,4525
Błąd tego przybliżenia wynosi \(\displaystyle{ -0,20250.}\)


Kwadratura prostokątów

Kwadratura prostokątów należy do najprostszych kwadratur Gaussa-Legendre'a.

Kwadratury Gaussa są to kwadratury oparte na \(\displaystyle{ n+1}\) węzłach, które są pierwiastkami wielomianów ortogonalnych w przedziale \(\displaystyle{ [a, b].}\) z wagą \(\displaystyle{ w.}\)

Nie wchodząc w teorię wielomianów ortogonalnych Legendre'a i teorię tych kwadratur - postać tej kwadratury:

\(\displaystyle{ \int_{a}^{b} f(x) dx = h \sum_{j=1}^{n} f \left ( a + \left (j - \frac{1}{2} \right)\right).}\)

W naszym przypadku dla \(\displaystyle{ h = \frac{3 -0}{3} = 1.}\) ( trzech węzłów)

\(\displaystyle{ \int_{0}^{3} x^3 dx = 1\cdot \sum_{j=1}^{3} \left ( 0 + \left(j -\frac{1}{2}\right)\cdot 1\right)^3}\)

Do obliczenia wartości całki wykorzystamy prosty program napisany w Octave 4.2.1

Kod: Zaznacz cały

  function  c = prostokw( f, a, b, N )

  h = (b-a)/N ;
   
  x = ( a + h/2 : h : b)

  y = f(x);

 c = h*sum(y);

 endfunction

prostokw(x^3, 0,3, 3)

>> answ = 19.125
Błąd względny przybliżenia wynosi \(\displaystyle{ 0,05.}\)

Stąd wynika, że kwadratury Gaussa:

-mają dużo wyższą dokładność od kwadratur Newtona-Cotesa,

- są dokładne dla wielomianów stopnia \(\displaystyle{ 2n +1}\), podczas gdy kwadratury Newtona-Cotesa są dokładne tylko dla wielomianów stopnia \(\displaystyle{ n.}\)

- możemy ich używać do numerycznego obliczania całek z osobliwościami, z którymi spotykamy się często na przykład w fizyce.


Są jeszcze kwadratury szybciej zbieżne od kwadratur Gaussa, na przykład kwadratury: Romberga, Radau, Lobato, z którymi warto zapoznać się, studiując przedmiot Metody Numeryczne.

Z kwadraturami Romberga , opartymi na ekstrapolacyjnym schemacie Neville'a - Richardsona i błędami wynikającymi z ich stosowania może się Pan zapoznać między innymi w pracy, którą miałem przyjemność napisać z Profesorem Andrzejem Kiełbasińskim na Uniwersytecie Warszawskim w roku 1985.

Andrzej Kiełbasiński, Janusz Chojnacki. Błędy zaokrągleń w algorytmie Romberga. Wydawnictwa Uniwersytetu Warszawskiego 1985.
szw1710

Re: O numerycznym całkowaniu

Post autor: szw1710 »

janusz47, na czyje pytanie odpowiadasz?

Udostępniam prezentację wykładu, jaki wygłosiłem w tym roku na seminarium w Katowicach. Pierwsza część dotyczy kwadratur inerpolacyjnych pod względem teoretycznym, więc też może być pomocna. Część druga dotyczy już moich badań naukowych nad kwadraturami. Zapraszam do lektury.

Kod: Zaznacz cały

https://www.dropbox.com/s/ks9tnuas6v8qp
... a.pdf?dl=0
janusz47
Użytkownik
Użytkownik
Posty: 7917
Rejestracja: 18 mar 2009, o 16:24
Płeć: Mężczyzna
Podziękował: 30 razy
Pomógł: 1671 razy

Re: O numerycznym całkowaniu

Post autor: janusz47 »

Odpowiadam na prywatną prośbę jednego z uczestników forum.

Miło mi poznać Pańską prezentację. Szkoda, że tak późno poznajemy na forum nasze wspólne zainteresowania.

Serdecznie pozdrawiam.
szw1710

Re: O numerycznym całkowaniu

Post autor: szw1710 »

Bo z reguły człowiek nie chwali się za bardzo tym co robi. Moja habilitacja polegała na wymyśleniu teorii funkcji podpierających funkcje wypukłe wyższych rzędów i zastosowaniu jej do szacowania błędów kwadratur przy założeniach regularnościowych na funkcję podcałkową słabszych niż te klasycznie przyjmowane.
ODPOWIEDZ