Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałKarina Wiciński Został zmieniony 11 lat temu
1
Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
Programowanie w VBA Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
2
Krztyna teorii Układ równań liniowych niejednorodnych: x – niewiadoma
a i b – współczynniki wyliczane lub uzyskiwane doświadczalnie
3
Krztyna teorii c.d. Analityczne rozwiązanie polega na sprowadzeniu układu równań do postaci: zwykle za pomocą mniej lub bardziej zorganizowanych działań na równaniach (mnożenie obu stron przez stałe, odejmowanie stronami, podstawianie jednych wyliczonych niewiadomych do innych równań itd.).
4
Krztyna teorii c.d. Macierz współczynników Macierz rozwiązań Macierz wyrazów wolnych Macierz rozszerzona układu równań Równanie macierzowe
5
Metoda Gaussa-Jordana
Polega na przekształceniu macierzy rozszerzonej do macierzy jednostkowej (tzw. metoda eliminacji macierzy) poprzez działanie na wszystkich wierszach następująco: 1. Normowanie wiersza względem wyrazu głównego (położonego na przekątnej – aii): wszystkie elementy wiersza i są dzielone przez element aii, aby był on równy 1. 2. Jeśli aii=0, szukamy najbliższego elementu akl≠0 o k>i i l>i, i zamieniamy wiersze i i k ze sobą. Jeśli taki element nie zostanie znaleziony, dalsza eliminacja niemożliwa. 3. Odejmujemy wiersz i od pozostałych wierszy tyle razy, żeby w całej kolumnie i wszystkie wyrazy poza aii były równe 0. Na koniec zostaje macierz jednostkowa, a wektor wyrazów wolny jest równy macierzy rozwiązań.
6
Zbieżność i cyfrowy zapis liczb
Zadanie: Wpisz w komórkę A1 cyfrę "1"; Wpisz w komórkę A2 formułę "=A1/3" Zaznacz obie powyższe komórki, sformatuj ich zapis liczbowy tak, żeby miały 20 cyfr po przecinku. Zmodyfikuj formułę w komórce A2 na: "A1/11"
7
Zbieżność i cyfrowy zapis liczb
Liczba rzeczywista jest zapisana w pamięci komputera w postaci binarnej z ograniczoną ilością bitów przeznaczoną na zapis cyfr znaczących (dla Double – 52 bitów, reszta przeznaczona jest na znak i potęgę "przesunięcia" zapisu, tak jak w zapisie naukowym liczb: 1,2E02 oznacza 120). W praktyce można więc zapisać zaledwie cyfr znaczących. Stąd każdy zapis jest obarczony błędem na "końcu" zapisu cyfr, który może rosnąć w miarę obliczeń. Dlatego przyjęcie pożądanej dokładności wyniku na mniej niż 10^-10 może spowodować, że algorytm numeryczny nigdy nie osiągnie tej dokładności – sam błąd wynikający z błędu zapisu może być podobnego rzędu. Dodatkowo można ograniczyć liczbę iteracji (np. 100 – dlaczego tyle?).
8
Metoda odwracania macierzy
Pamiętając o tym, że iloczyn macierzy nie jest przemienny i że macierzowy iloczyn "A A-1 = I" (gdzie I to macierz jednostkowa), można wyliczyć wektor rozwiązań X za pomocą przekształcenia równania "A X = B" do równania "X = A-1 B". W arkuszu kalkulacyjnym mamy funkcje tablicowe bloków: - MACIERZ.ODW(macierz) - MACIERZ.ILOCZYN(macierz1;macierz2) Uwaga na błędy zaokrągleń zapisu binarnego liczb! Liczba to numeryczne zero (rząd ostatniego bitu)!
9
Metoda Cramera Wyznacznik macierzy A (DetA) zapisujemy tak:
DetA≠0 dla układu równań liniowo niezależnych, co jest warunkiem koniecznym rozwiązania układu równań, z którego współczynników jest macierz A. Macierz A z kolumną i zastąpioną wektorem wyrazów wolnych układu równań oznaczamy jako macierz Ai:
10
Metoda Cramera c.d. Kolejne elementy wektora rozwiązań X są równe: xi = detAi/detA . Metoda Cramera pozwala na identyfikacje problemów przy rozwiązywaniu układu równań. Dla DetA=0 układ jest nieoznaczony lub sprzeczny, a konkretnie: - Jeśli detAi=0 dla wszystkich i, to układ jest nieoznaczony; - Jeśli dla przynajmniej jednego i detAi≠0, to układ jest sprzeczny.
11
Metody numeryczne część 2. Rozwiązywanie równań nieliniowych.
Programowanie w VBA Metody numeryczne część 2. Rozwiązywanie równań nieliniowych.
12
Krztyna teorii Rozwiązanie równania to w formie graficznej znalezienie przecięcia wykresy funkcji z osią X. Dana jest ciągła w otoczeniu pierwiastka funkcja, gdzie rozwiązanie ma ogólną postać: f(x)=0 Nie dla każdego rodzaju funkcji wystarczają do rozwiązania metody analityczne (algebraiczne). W większości przypadków potrzebne są metody numeryczne do otrzymania przybliżonego wyniku.
13
Metoda bisekcji Przypadek, gdzie f(x)*f(a)<0
czyli między x i a zmienił się znak, czyli jest miejsce zerowe. Przypadek, gdzie f(x)*f(a)>0, czyli między x i a nie zmienił się znak, czyli nie ma miejsca zerowego. a b X Y f(b) f(x) f(a) x=(a+b)/2 Nie ma miejsca zerowego między x i b, więc x to nowe b b:=x x=(a+b)/2 a b X Y f(b) f(x) f(a) a:=x Nie ma miejsca zerowego między x i a, więc x to nowe a
14
Metoda bisekcji 1. Wyznaczamy przedział [a,b] z tylko jednym miejscem zerowym; 2. Obliczamy f(a) i f(b), gdzie f(a)*f(b)<0 (musi być tylko jeden pierwiastek); 3. Przybliżenie to środek przedziału: xi=(a+b)/2; 4. Liczymy f(xi) - jeśli wartość jest mniejsza niż założona dokładność docelowa rozwiązania εx, to xi jest numerycznym rozwiązaniem, jeśli f(xi) jest większa niż docelowa dokładność, to sprawdzamy f(a)*f(xi)<0 – jeśli prawda, to b:=xi, jeśli nie, to a:=xi; 5. Powtarzamy punkty 3 i 4, aż przedział a-b będzie węższy niż docelowa dokładność εx.
15
Metoda bisekcji START f(a)∙f(b)<0 xi=(a+b)/2 |xi-xi-1|<εx NIE KONIEC, błąd; TAK f(a)∙f(x)<0 b:=x a:=x b-a<εx KONIEC; x=xi Metoda bisekcji (połowienia przedziału) jest zawsze zbieżna, o ile w początkowym przedziale funkcja ma dokładnie jedno miejsce zerowe i jest w tym obszarze ciągła. Każda iteracja (krok w pętli) zmniejsza dwukrotnie przedział [a,b] – dając pewność równomiernego zwiększenia dokładności w iteracji.
16
Metoda interpolacji liniowej
Przypadek, gdzie f(x)*f(a)<0 czyli między x i a zmienił się znak, czyli jest miejsce zerowe. Przypadek, gdzie f(x)*f(a)>0, czyli między x i a nie zmienił się znak, czyli nie ma miejsca zerowego. a b X Y f(b) f(x) f(a) x Nie ma miejsca zerowego między x i b, więc x to nowe b b:=x x a b X Y f(b) f(x) f(a) a:=x Nie ma miejsca zerowego między x i a, więc x to nowe a
17
Metoda interpolacji liniowej
1. Wyznaczamy przedział [a,b] z tylko jednym miejscem zerowym; 2. Obliczamy f(a) i f(b), gdzie f(a)*f(b)<0 (musi być tylko jeden pierwiastek); 3. Przybliżenie to środek przedziału: xi=b-f(b)*(b-a)/(f(b)-f(a); 4. Liczymy f(xi) - jeśli wartość jest mniejsza niż założona dokładność docelowa rozwiązania εx, to xi jest numerycznym rozwiązaniem, jeśli f(xi) jest większa niż docelowa dokładność, to sprawdzamy f(a)*f(xi)<0 – jeśli prawda, to b:=xi, jeśli nie, to a:=xi; 5. Powtarzamy punkty 3 i 4, aż przedział a-b będzie węższy niż docelowa dokładność εx.
18
Metoda interpolacji liniowej
TAK START f(a)∙f(b)<0 xi=b-f(b)∙(b-a)/(f(b)-f(a) |xi-xi-1|<εx NIE KONIEC, błąd; f(a)∙f(x)<0 b:=x a:=x b-a<εx KONIEC; x=xi Metoda interpolacji liniowej jest co do zasady identyczna z metodą bisekcji, poza przybliżeniem, które wynika z interpolacji liniowej. Metoda ta jest zazwyczaj szybciej zbieżna niż metoda bisekcji, aczkolwiek w nielicznych przypadkach może być wolniejsza – nie daje gwarancji równomiernego zwiększania dokładności.
19
Metoda Newtona Metoda Newtona jest potencjalnie najszybciej zbieżna z przedstawionych metod. Wymaga ona jednak znajomości pierwszej pochodnej danej funkcji, oraz ciągłych i nie zmieniających znaku pierwszej i drugiej pochodnej między miejscem zerowym a punktem startowym. Czyli funkcja musi być w całym zakresie działania monotoniczna i albo tylko wklęsła albo tylko wypukła. Dodatkowo w punkcie startowym musi być spełnione równanie f(x)∙f'(x)>0, aby przybliżanie w miarę iteracji było na osi X w kierunku miejsca zerowego, a nie w przeciwnym. f(x0) x1 x0 X Y f(x1) x2 f'(x0) f'(x1) TAK START x:=x0-f(x0)/f'(x0) |x-x0|<εx NIE x0:=x KONIEC x=xi
20
Metoda Newtona 1. Podajemy wartość początkową pierwiastka (x0), w którym jest spełnione równanie f(x)*f'(x)>0; 2. Pochodna w punkcie startowym to: f'(x)=f(x0)/(x0-x1), więc: x1=x0-(f(x0)/f'(x0)) 3. Obliczona wartość x1 to punkt startowy dla następnej iteracji: x0=x1. 4. Powtarzamy punkty 3 i 4 aż |xi-xi-1|<εx
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.