algorytm.org Algorithms Procedury numeryczne Całkowanie numeryczne - metoda Simpsona  
Home AlgorithmsData structuresAlgorithmics turorialPractiseDesign patternsIT Law SitemapPortal historyContributors ForumToolsWrite an articleSearch 

Całkowanie numeryczne - metoda Simpsona
User Rating: / 4
PoorBest 
Written by Tomasz Lubiński   
Sunday, 18 October 2009 15:16
There are no translations available.

Załóżmy, że chcemy obliczyć całkę z funkcji f(x) w przedziale <xp; xk>. Definicja całki oznaczonej Riemana, mówi nam, że wartość całki równa jest sumie pól obszarów pod wykresem krzywej w zadanym przedziale całkowania. Sumę taką możemy obliczyć w przybliżeniu dzieląc obszar całkowania na n równych części. W metodach prostokątów i trapezów zakładaliśmy, że przybliżenie funkcji w przedziale jest funkcją liniową (przybliżenie odwzorowywało funkcję na odcinek w obrębie przedziału). W metodzie Simpsona w każdym takim przedziale będziemy przybliżać funkcję dla, której obliczamy całkę przy pomocy paraboli.
Metoda Simpsona - całkowanie numeryczne


Jak już wspomnieliśmy przedział całkowania <xp; xk> podzielimy na n równych części. Szerokość każdej z nich wynosić będzie zatem:
dx = ( xk - xp ) / n.
Na końcach każdego przedziału funkcja będzie przyjmowała wartości f( xi-1 ) oraz f( xi ) dla i = 1, 2, ..., n, gdzie xi = xp + i*dx.
W każdym przedziale <xi-1; xi> funkcję f(x) będziemy przybliżać przy pomocy paraboli g(x) = aix2 + bix + ci
By jednoznacznie określić parabolę, potrzebujemy danych trzech punktów, przez które ma ona przechodzić. Dla każdego przedziału mamy dane już dwa (na końcu i początku przedziału), brakuje nam zatem jeszcze jednego. Dlatego teżdla każdego takiego przedziału wprowadzimy punkt środkowy ti = (xi-1 + xi) / 2

Pole pod parabolą obliczmy z definicji całki Newtona-Leibniza, która mówi, że całka oznaczona z funkcji w przedziale zamkniętym określona jest jako różnica wartości funkcji pierwotnej na końcu tego przedziału i wartości funkcji pierwotnej na początku tego przedziału. Funkcja pierwotna dla funkcji f(x), to taka funkcja F(x), że jej pochodna równa jest funkcji f(x), czyli F'(x) = f(x). Zatem Stosując podane twierdzenie do naszego przybliżenia g(x) otrzymamy:
całka Newtona-Leibniza


Podstawiając funkcję pierwotną:
wyznaczanie metody Simpsona


Po pogrupowaniu:
wyznaczanie metody Simpsona


Po wyciągnięciu części wspólnej przed nawias:
wyznaczanie metody Simpsona


Co po odpowiednich przekształceniach możemy sprowadzić do postaci:
wyznaczanie metody Simpsona


Można zauważyć, że odpowiednie części równania są wartościami funkcji f:
wyznaczanie metody Simpsona


Powyższy wzór podaje nam wartość przybliżonej całki w przedziale. Teraz trzeba dodać do siebie wartości, wszystkich przedziałów i tym sposobem otrzymamy wzór na obliczenie przybliżonej całki metodą Simpsona:
Metody Simpsona - wzór


Przykład:
Obliczymy przybliżoną wartość całki dla funckji f(x) = x2 + 3 w przedziale <2, 5> z dokładnością n = 3.
((xk-xp)/6n) * (f(x0) + f(xn) + 2*(f(x1) + f(x2)) + 4*(f(t1) + f(t2) + f(t3))) = ((5-2)/(6*3)) * (f(2) + f(5) + 2*(f(3) + f(4)) + 4*(f(2.5) + f(3.5) + f(4.5))) = 3/18 * (7 + 28 + 2*(12+19) + 4*(9.25+15.25+23.25)) = 3/18 * (7 + 28 + 62 + 191) = 3/18 * 288 = 48
Zatem przybliżona wartość całki wynosi 48. Co więcej w tym wypadku możemy powiedzieć nawet, że jest to wartość dokładna ponieważ obliczaliśmy całkę dla funkcji kwadratowej (algorytm przybliżał parabolę za pomocą paraboli, a więc zrobił to dokładnie).

.

Author Progam language Comment Download Rate
Tomasz Lubiński C# MS Visual Studio .net
Implementation in C#
/ 0
Tomasz Lubiński C/C++
Implementation in C/C++
/ 1
Tomasz Lubiński Delphi/Pascal
Implementation in Delphi/Pascal
/ 0
Tomasz Lubiński Java
Implementation in Java
/ 0
 
Add your implementation for this algorithm
  • Login first
File:
Progam language:
Comment:
  To be able to add your implementation, login first



Last Updated on Wednesday, 26 May 2010 19:03
 

Add comment







Danation
Donate us


RSS Channels
Articles
Implementations
Comments
Forum


Bookmarks








Poll
Czy znalazłeś na stronach www.algorytm.org to czego szukałeś?
 

www.algorytm.org (c) 2000-2010