Laboratorium – sprawozdanie
Metody Numeryczne
Całkowanie numeryczne
Wykonał: Krzysztof Jóźwiak 208258
Napisz w Matlabie procedurę pozwalającą na obliczanie dla danego przedziału całkowania i zmiennej liczby punktów całek oznaczonych używając metod prostokątów, trapezów i Simpsona. W wyniku obliczeń procedura powinna zwrócić wartość całki oznaczonej. Wykorzystując napisaną procedurę przeprowadź analizę błędu całkowania w zależności od liczby podprzedziałów całkowania dla funkcji określonych w tabeli.
Tabela 1: Funkcje podcałkowe i przedziały całkowania.
Funkcja | Przedział |
---|---|
5x3 + x – 3 | [1, 2] |
cos(x) | [0, 1] |
ln(x) | [1, 2] |
Listing 1. Całkowanie numeryczne za pomocą interpolacji
Program ma za zadanie podzielić przedział całkowania na n równych fragmentów, gdzie długość jednego równa jest h. Następnie w zależności od zmiennej m wybiera odpowiednią metodę: prostokątów, trapezów lub Simpsona. W metodzie prostokątów pole pod wykresem funkcji jest liczone, jako pole prostokąta dla wartości funkcji dla środkowego argumentu w przedziale równym h. Dla metod trapezu wyznacza się wartości dla dwóch skrajnych punktów przedziału h i liczy się pole tak uzyskanego trapezu. Metoda Simpsona łączy obie z powyższych metod.
Korzystając z wyników poprzednich obliczeń wykorzystaj metodę Romberga do obliczenia całek powyższych funkcji. Porównaj dokładność metod.
Listing 2. Całkowanie numeryczne za pomocą ekstrapolacji
Metoda Romberga opiera się na ekstrapolacji Richardsona. Polega ona na usprawnieniu metod z punktu 1.1 poprzez korekcję uzyskanego wyniku na podstawie innych wyników dla różnych wielkości przedziału h. Aby metoda ta zadziałała wielkość h, jak jest długością pojedynczego przedziału musi zwiększać się wykładniczo ( w tym przypadku o podstawie równej 2). W pierwszej pętli odbywa się zmiana długości h i obliczenie całki jedną z trzech metod interpolacji :prostokątów, trapezów lub Simpsona. W drugiej petli wynik obliczeń jest korygowany na podstawie algorytmu ekstrapolacji Richardsona dla podstawy 2.
Powtórz podobne analizy wykorzystując kwadratury Gaussa-Legendre’a różnego rzędu. Wykorzystaj wartości współczynników podanych w tabeli. Pamiętaj o mapowaniu przedziałów całkowania na przedział [-1, 1]. (Tabela znajduje się w kodzie programu)
Listing 3. Całkowanie numeryczne za kwadratury Gaussa-Legendre’a
Metoda całkowania Gaussa-Legendra opiera się na liczeniu wartości funkcji i dodawaniu do wyniku z odpowiednimi wagami przypadającymi dla określonego argumentu. Aby ta metoda działała przedział całkowania musi być symetryczny. Macierz X zawiera argumenty funkcji, natomiast macierz C zawiera wagi przypadające dla tych argumentów. Ponieważ wagi są takie same dla pary argumentów przeciwnych względem siebie, toteż indeksowanie macierzy w pętli jest zależne od środkowego wyrazy macierzy (ponieważ macierz X jest symetryczna). Do wyniku dodaje się kolejne wartości z macierzy uwzględniając mapowanie na przedział (a,b).
Wyniki w zależności od liczby kroków i użytej metody są przedstawione w tabeli poniżej.
Metoda dla rzędu n | 2 | 4 | 8 |
---|---|---|---|
Prostokątów | 16.7813 | 17.1328 | 17.2207 |
Trapezów | 18.1875 | 17.4844 | 17.3086 |
Simpsona | 17.2500 | 17.2500 | 17.2500 |
Romberga (prostokąty) | 17.2500 | 17.2500 | 17.2500 |
Romberga (trapezy) | 17.2500 | 17.2500 | 17.2500 |
Romberga (Simpson) | 17.2500 | 17.2500 | 17.2500 |
Metoda dla rzędu n | 2 | 4 | 8 |
---|---|---|---|
Prostokątów | 0.8503 | 0.8437 | 0.8420 |
Trapezów | 0.8239 | 0.8371 | 0.8404 |
Simpsona | 0.8415 | 0.8415 | 0.8415 |
Romberga (prostokąty) | 0.8412 | 0.8415 | 0.8415 |
Romberga (trapezy) | 0.8418 | 0.8414 | 0.8415 |
Romberga (Simpson) | 0.8414 | 0.8415 | 0.8415 |
Metoda dla rzędu n | 2 | 4 | 8 |
---|---|---|---|
Prostokątów | 0.3914 | 0.3876 | 0.3866 |
Trapezów | 0.3760 | 0.3837 | 0.3856 |
Simpsona | 0.3863 | 0.3863 | 0.3863 |
Romberga (prostokąty) | 0.3867 | 0.3862 | 0.3863 |
Romberga (trapezy) | 0.3858 | 0.3864 | 0.3863 |
Romberga (Simpson) | 0.3864 | 0.3863 | 0.3863 |
Metoda dla rzędu n | 1 | 2 | 3 | 4 | 6 | 8 |
---|---|---|---|---|---|---|
Kwadratura G-L | 2 | 0.8379 | 1.2859 | 0.8415 | 0.8415 | 0.8415 |
Laboratorium – sprawozdanie
Metody Numeryczne
Zagadnienia początkowe dla równań różniczkowych zwyczajnych
Wykonał: Krzysztof Jóźwiak 208258
Napisz w Matlabie procedury umożliwiające rozwiązywanie ze zmiennym krokiem zagadnień początkowych dla równań różniczkowych zwyczajnych używając metod jednokrokowych umieszczonych w tabeli poniżej. Wykorzystaj te metody do znalezienia wartości y (1) dla następującego zagadnienia:
.
Dla każdej z metod porównaj otrzymane wyniki dla różnych wartości kroku z rozwiązaniem dokładnym. Ponadto dla wszystkich rozważanych metod wykreśl błąd w funkcji liczby kroków.
Listing 4. Metoda jednokrokowa
Zmienna m określa, której metody zamierzamy użyć :Eulera, Heuna, czy Rungego-Kutty 4. Rzędu. W zależności od wybranej metody do wartości wyjściowej wpisuje się wartość, obliczoną na podstawie konkretnego wzoru.
Wykonaj te same analizy dla powyższego zagadnienia z wykorzystaniem wielokrokowych metod drugiego rzędu wymienionych w tabeli poniżej. Dla rozwiązania zagadnienia należy przekształcić funkcję podaną w tabeli
do postaci jawnej. Jeśli będzie to konieczne wykonaj początkowe kroki używając metody Rungego-Kutty 4. rzędu.
Listing 5. Metoda wielokrokowa
Podobnie, jak w przypadku metod jednokrokowych zmienna m określa nam wybór użytej metody wielokrokowej. W dwóch przypadkach we wzorze występuje po obu stronach równania yn+1. Wymagało to przekształcenia wzoru, aby zmienna ta znalazła się po jednej stronie równania (postać jawna). Przez to funkcja wielok przestaje być uniwersalna, ponieważ działa prawidłowo jedynie dla funkcji pierwotnej podanej w zadaniu, czyli f(x,y)=x+y.
Uzyskany wynik w zależności od użytej metody i długości kroku przedstawia tabela poniżej.
Metoda dla h = | 0.5 | 0.1 | 0.02 |
---|---|---|---|
Eulera | 0.2500 | 0.7531 | 0.6916 |
Heuna | 0.6406 | 0.8991 | 0.7181 |
Rungego-Kutty | 0.7173 | 0.9042 | 0.7183 |
Adamsa-Bashfortha | 0.3750 | 0.8779 | 0.7173 |
Adamsa-Moultona | 0.7778 | 0.9069 | 0.7184 |
Geara | 1 | 0.9208 | 0.7189 |
Prawidłowy wynik : 0.7186
Poniżej umieszczone są dwa okna, przedstawiające wykresy dla metod jednokrokowych i wielokrokowych. Są tą błędy względne (błąd/wartość dokładna) od ilości kroków. Skala ilości kroków jest logarytmiczna.
Wykresy błędu względnego od ilości kroków dla metod jednokrokowych
Wykresy błędu względnego od ilości kroków dla metod wielokrokowych
Laboratorium – sprawozdanie
Metody Numeryczne
Metoda różnic skończonych
Wykonał: Krzysztof Jóźwiak 208258
Rozważmy proces nagrzewania cienkiej płyty materiału o grubości a = 1 cm. Płyta ta jest nagrzewana
na powierzchni x = 0 strumieniem ciepła q o wartości 20 000 W/m2 i chłodzona na powierzchni x = a zgodnie
z prawem Newtona ze współczynnikiem wymiany ciepła h = 1 000 W/m2K. Ponadto we wnętrzu płyty zachodzi równomierna generacja ciepła o gęstości objętościowej mocy g = 4 MW/m3. Temperatura otoczenia równa jest temperaturze początkowej płyty i wynosi 0 °C. Przewodność cieplna materiału wynosi λ = 10 W/mK. W stanie równowagi rozkład temperatury w płycie jest opisany równaniem Poissona:
a rozwiązanie analityczne dane jest wzorem:
.
Znajdź numeryczne rozwiązanie powyższego problemu dla stanu ustalonego stosując do rozwiązania metodę różnic skończonych i porównaj je z rozwiązaniem dokładnym. Zbadaj wpływ rozmiaru siatki na uzyskiwane rozwiązania.
Listing 6. Rozwiązanie zadania metodą FDM
Metoda różnic skończonych pozwala na odnalezienie wartości jakiegoś parametru dla elementu, który można podzielić na równomierne części, w których wartość tego parametru przyjmuje się za stałą. W przypadku tego zadania parametrem tym jest temperatura, natomiast elementem płytka, której grubość jest poddawana podziałowi na siatkę. K jest współczynnikiem podziału siatki, czyli określa na ile punktów ma być podzielona grubość płytki. Następnie wzór różniczkowy na rozkład temperatury należy rozpisać do postaci numerycznej. Dzieląc płytkę na pojedyncze segmenty opisuje się podane równanie dla każdego punktu oddzielnie zapisując je jedno pod drugim. Następnie tworzy się macierz wyznaczników, z której liczy się wartości przypadające dla kolejnych punktów.
Dla wystarczająco gęstej siatki przeprowadź analizę czasową powyższego problem za pomocą metody różnic skończonych. Załóż, że dyfuzyjność termiczna materiału α wynosi 5 * 10-5 m2/s. Rozkład temperatury w płycie jest opisany następującym parabolicznym cząstkowym różniczkowym równaniem ciepła:
a rozwiązanie analityczne wyraża się następującym wzorem:
gdzie γn są kolejnymi pierwiastkami równania:
.
Porównaj rozwiązania otrzymane numerycznie z dokładnym rozwiązaniem analitycznym. Zbadaj wpływ kroku czasowego na zbieżność schematów Eulera i Cranka-Nicholsona. Kiedy analiza stanie się niestabilna? Czy zmiana parametrów materiałowych ma wpływ na stabilność metody numerycznej?
Listing 7. Rozwiązanie metodą FDM
Zadanie jest bardzo podobne do poprzedniego z tą różnicą, że dodano zmienną α, która określa dyfuzyjność termiczną materiału. Komplikuje to nieco zadanie, ponieważ w równaniu na rozkład temperatury znajdują się pochodne pierwszego i drugiego rzędu. Aby móc zapisać to równanie w postaci macierzowej, jak w poprzednim zadaniu, należało zamienić obie pochodne na postać numeryczną i przyrównać do siebie wyrazy podobne. Dało to w efekcie macierz A, której wyrazy były zależne od wartości α. Pozostałe czynności były analogiczne do poprzedniego przykładu.
Rozkład temperatury dla pierwszego przypadku (nie brana pod uwagę dyfuzyjność termiczna).
Dla siatki k=25
Dla siatki k=3.
Rozkład otrzymany analitycznie:
Rozkład temperatury dla płytki, biorąc pod uwagę dyfuzyjność termiczna.
Dla siatki k=25
Dla siatki k=3.
Rozkład otrzymany analitycznie