13
Programowanie Programowanie w VBA w VBA Metody numeryczne część 3. Metody numeryczne część 3. Całkowanie metodą Eulera i Całkowanie metodą Eulera i Simpsona. Simpsona.

Programowanie w VBA

  • Upload
    kirk

  • View
    62

  • Download
    0

Embed Size (px)

DESCRIPTION

Programowanie w VBA. Metody numeryczne część 1. Rozwiązywanie układów równań liniowych. Krztyna teorii. Układ równań liniowych niejednorodnych: x – niewiadoma a i b – współczynniki wyliczane lub uzyskiwane doświadczalnie. Krztyna teorii c.d. - PowerPoint PPT Presentation

Citation preview

Page 1: Programowanie w VBA

ProgramowanieProgramowaniew VBAw VBA

Metody numeryczne część 3.Metody numeryczne część 3.

Całkowanie metodą Eulera i Simpsona.Całkowanie metodą Eulera i Simpsona.

Page 2: Programowanie w VBA

Krztyna teoriiKrztyna teorii

Dana jest funkcja f(x).

Jeśli jest ona ciągła w przedziale [a,b] i znana jest funkcja F(x) spełniająca warunek: F’(x)=dF(x)/dx=f(x) to całkę oznaczoną oblicza się ze wzoru:

Jeżeli funkcja F(x) nie istnieje lub jest zbyt trudna do wyznaczenia metodami analitycznymi, można do obliczenia całki oznaczonej użyć metody numerycznej. Potrzebne są do tego wartości w punktach funkcji lub wyznaczone takie wartości w wyniku eksperymentu.

b

a

aFbFdxxf )()()(

Page 3: Programowanie w VBA

Całka i kwadraturaCałka i kwadratura

a b

X

Y

Całkowanie numeryczne (kwadratura numeryczna) – obliczenie przybliżonej wartości całki przez sumowanie pól tworzących przybliżony obszar całkowania pod krzywą funkcji. Im większa ilość tych podpól (pionowych "pasków" o szerokości Δx), tym dokładniejsze oszacowanie całki – przy nieskończonej ilości równo rozmieszczonych pól jest to po prostu dokładny obszar całki, taki jak ze wzoru na całkę oznaczoną (czyli suma pól o nieskończenie małej szerokości - dx).

Page 4: Programowanie w VBA

Metoda Newtona-CotesaMetoda Newtona-Cotesa

Polega na podzieleniu zakresu całkowania [a,b] na n równych odcinków h ( h=Δx=(b-a)/n ), gdzie miejsca podziału są nazywane "węzłami" interpolacji (xi). Następnie zliczamy pola kolejnych obszarów ze wspólnego wzoru, znając wartości funkcji w węzłach (lub licząc je na potrzeby całkowania numerycznego). Dokładność wyznaczenia całki zależy od ilości podziałów, a także od tego, ilu węzłów użyjemy do obliczenia pola pojedynczego podpola.

Page 5: Programowanie w VBA

Metoda prostokątówMetoda prostokątów

a (x

i)

b

X

Y

xi+

1 (x

i+h)

xi

+2

xi

+3

xi+h/

2

Metoda polega na obliczeniu sumy pól prostokątów utworzonych przez odcinek między węzłami xi i xi+1 i wysokość w połowie tego odcinka:

P = ΣPi = h∙Σf(xi+h/2)

Page 6: Programowanie w VBA

Metoda prostokątówMetoda prostokątów

a (x

i)

b

X

Y

xi+h/

2

a (x

i)

b

X

Y

xi+

1 (x

i+h)

xi+h/

2

Page 7: Programowanie w VBA

Metoda trapezów (Eulera)Metoda trapezów (Eulera)Metoda polega na obliczeniu sumy pól

trapezów utworzonych przez węzły xi i xi+1 oraz wartości w punktach xi i xi+1:

P = ΣPi = h/2∙Σ(f(xi)+f(xi+1))

a (x

i)

b

X

Y

xi+

1 (x

i+h)

xi

+2

xi

+3

Page 8: Programowanie w VBA

Metoda trapezów (Eulera)Metoda trapezów (Eulera)

a (x

i)

b

X

Y

a (x

i)

b

X

Y

xi+

1 (x

i+h)

Page 9: Programowanie w VBA

Metoda parabol (Simpsona)Metoda parabol (Simpsona)Metoda polega na obliczeniu sumy pól

pod parabolami utworzonymi na trzech kolejnych węzłach xi, xi+1 i xi+2:

P = ΣPi = h/3∙Σ(f(xi)+4∙f(xi+1)+f(xi+2))

a (x

i)

b

X

Y

xi+

1 (x

i+h)

xi

+2

xi

+3

Page 10: Programowanie w VBA

Metoda parabol (Simpsona)Metoda parabol (Simpsona)

a (x

i)

b

X

Y

Nie da się z dwóch węzłów

a (x

i)

b

X

Y

xi+

1 (x

i+h)

Page 11: Programowanie w VBA

WzoryWzoryMetoda prostokątów:P = ΣPi = h∙Σf(xi+h/2)Metoda Eulera:P = ΣPi = h/2∙Σ(f(xi)+f(xi+1))

→ h/2∙((f(a)+f(b))+2∙Σf(xi))Metoda Simpsona:P = ΣPi = h/3∙Σ(f(xi)+4∙f(xi+1)+f(xi+2))→ h/3∙((f(a)+f(b))+4∙Σf(xśrodkowe)+2∙Σf(xzewnętrzne))

Podobieństwo wzorów nie jest przypadkowe: wszystkie są zbudowane na członach wielomianu Lagrange'a (ogólna metoda Newtona-Cotesa).

Page 12: Programowanie w VBA

Dokładność a potrzebaDokładność a potrzeba

Jakiej dokładności rzeczywiście trzeba?

d = 8,6 kmd = 8,6 km

O = 27 kmO = 27 km

Obliczenia inżynierskie:ε = 3mm / 27km → 7 cyfr

znaczących

Obliczenia teoretyczne:ε = ułamki J vs. dziesiątki MJ →→ 8-9 cyfr znaczących

Page 13: Programowanie w VBA

Błędy oszacowaniaBłędy oszacowania

• Im mniejsze zakresy (odległości między węzłami), więc im więcej podziałów – tym dokładniejszy wynik;

• Z powyższego wynika, że im równiejszy podział, tym lepiej (równe podprzedziały);

• Im wyższego stopnia wielomian przybliża całkę wielomianu wyższego stopnia, tym dokładniejszy wynik (zasadniczo metoda Simpsona jest lepsza od Eulera) – dla danej liczby podziałów i kryterium zbieżności;

• Im mniejsza krzywizna funkcji, tym dokładniejszy wynik przy danej liczbie podziałów;