Zadania z tego rozdziału służą przetestowaniu najprostszych kwadratur numerycznych, czyli metod przybliżonego obliczania całek po odcinkach.
W tym rozdziale zapoznamy się także z funkcją octave'a quad()
służącą przybliżonemu obliczaniu całek jednowymiarowych postaci
Możemy więc znajdować przybliżenia całek po całej prostej rzeczywistej czy półprostych.
- Zapoznaj się z pomocą do funkcji octave'a
quad()
.Policz przy pomocy
quad()
całkędla następujących funkcji i odcinków:
-
na
-
na
-
na
-
na
-
na
- Złożona kwadratura trapezów.
- Zaprogramuj w octavie funkcję
function c=kwadtrapez(FCN,a,b,n)
obliczającą złożoną kwadraturę trapezów:
dla
.
Parametry funkcji:
-
- wskaźnik do funkcji octave'a
function y=f(x)
obliczającej wartość funkcji podcałkowej -
- lewy koniec odcinka
-
- prawy koniec odcinka
-
- ilość obliczeń wartości funkcji podcałkowej w kwadraturze trapezów minus jeden (tak, jak we wzorze powyżej)
-
Przetestuj funkcję octave'a z poprzedniego podpunktu dla
z ustalonym
licząc:
dla błędu
dla następujących funkcji, dla których wartości całek znamy:
-
na
,
-
na
i
- funkcja analityczna,
-
na
i
- funkcja analityczna,
silnie oscylująca - duże wartości drugiej pochodnej, -
na
dla
czyli funkcji w
i o nieograniczonej w otoczeniu zerapochodnej.
Czy wyniki są zgodne z teorią?
Funkcja zwraca przybliżoną wartość całki obliczoną za pomocą powyższego wzoru, tzn. złożonej kwadratury trapezów.
Funkcja powinna działać również jeśli ją wywołamy tylko z trzema parametrami. Wtedy powinno domyślnie przyjąć wartość sto.
Porównaj wyniki obliczane kwadraturą trapezów z wynikami funkcji quad()
.
Można sprawdzić dla jakiego błąd obliczony złożoną kwadraturą trapezów jest na poziomie błędu funkcji octave
quad()
- i porównać ilość wywołań funkcji przez obie procedury.
Policz za pomocą funkcji octave quad()
:
dla i
. Czy wynik jest zgodny z teorią?
czyli
dla zer
-
wielomianu Czebyszewa.
Zaimplementuj funkcję function c=gaussczeb(FCN,n)
obliczającą wartość kwadratury . Parametry
- wskaźnik do funkcji function y=f(x)
i ilość punktów kwadratury.
Przetestuj jej działanie:
przybliża
czy kwadratura jest dokładna dla wielomianów Czebyszewa stopnia
Porównaj wartość kwadratury
z wynikiem dokładnym
dla , tzn. policz
przyjmując za wartość dokładną.
porównaj wynik obliczony za pomocą kwadratury Gaussa - Czebyszewa, tzn.
quad()
. Wypisz na ekran quad()
.
function c=kwadprost(FCN,a,b,n)
,
która zwraca wartość złożonej kwadratury prostokątów dla funkcji na odcinku
na
równoodległych punktach:
Parametry funkcji:
y=......
endfunction
obliczającej wartość funkcji, której całkę chcemy obliczyć, tj. , w danym punkcie
.
Funkcja zwraca przybliżoną wartość całki obliczoną za pomocą powyższego wzoru, tzn. złożonej kwadratury prostokątów.
Funkcja powinna działać również jeśli ją wywołamy bez ostatniego parametru. Wtedy powinno domyślnie przyjąć ustaloną wartość, np. dwieście.
Przetestuj tę funkcję octave'a kwadprost()
dla
z ustalonym
licząc:
dla całek z następujących funkcji po odpowiednich odcinkach:
silnie oscylująca (duże wartości drugiej pochodnej),
i o nieograniczonej w otoczeniu zera
Porównaj wyniki obliczane kwadraturą prostokątów z wynikami funkcji quad()
.
Porównaj błędy dla wartości i
z poprzedniego zadania - czyli całek, których wartość teoretycznie znamy - z wynikami dla obu kwadratur:
function c=Romberg(FCN,a,b,p,N0)
z kwadraturą Romberga obliczającą przybliżenie
całki .
Parametry funkcji:
function y=f(x)
obliczającej wartość funkcji podcałkowej
Funkcja zwraca przybliżoną wartość całki obliczoną za pomocą kwadratury Romberga.
Funkcja powinna działać również jeśli ją wywołamy tylko z trzema albo czterema parametrami. Parametr powinien wtedy domyślnie przyjąć wartość
,
a wartość sto.
dla i dla
.
Czy dla i rosnącego
błąd maleje?
Czy stosunek maleje tak samo dla wszystkich funkcji?
Tutaj użyliśmy oznaczenia na błąd .