To tylko jedna z 4 stron tej notatki. Zaloguj się aby zobaczyć ten dokument.
Zobacz
całą notatkę
METODY NUMERYCZNE
ĆWICZENIE 6
Znajdowanie miejsc zerowych równań nieliniowych
Zadaniem naszej grupy było znalezienie miejsc zerowych równań nieliniowych za pomocą podanych metod numerycznych. Mieliśmy podane funkcje i badaliśmy ma ich podstawie różne metody obliczania miejsc zerowych podając im przedziały, na jakich te metody będą pracowały oraz warunek błędu, jaki musiał być spełniony, aby zakończyć obliczenia. Wybraliśmy trzy metody z czterech zaproponowanych:
- bisekcji( połowienia)
- falsi
- siecznych
Metoda bisekcji - polega na podaniu początkowego przedziału, jaki ma zostać zbadany, przedział ten musi spełniać warunki:
- funkcja musi być ciągła
- musi przyjmować różne znaki na końcach przedziałów
Funkcja sprawdza czy końce przedziału spełniają warunek pierwszy, jeśli tak to przedział zostaje przepołowiony i sprawdza się drugi warunek. Zadanie kończy się w momencie wyliczenia pierwiastka z dokładnością wcześniej zadana lub z ograniczeniem liczby iterakcji, jakie wprowadzimy.
x=(a+b)/2;
if f1(a)*f1(x)0
a=x;
else b=x;
end
Metoda falsi - polega ona dokładnie tak samo jak metoda bisekcji z ta różnicą ze nie dzielimy na pół a wyznaczamy sieczną, sieczna ta wyznaczona jest przez dwa punkty. Nowe granice tak samo jak i warunek stopu realizuje się tak samo jak w metodzie bisekcji.
x=a-f1(a)*(b-a)/(f1(b)-f1(a));
Metoda siecznych - sens tej metody polega na przyjęciu, że funkcja na dostatecznie małym odcinku w przybliżeniu zmienia się w sposób liniowy. W metodzie tej każde następne przybliżenie pierwiastka wyliczane jest na podstawie dwóch poprzednich, które musimy podać na samym początku. Rysujemy tak jakby prosta przechodzącą przez te punkty i obliczamy pierwsze przybliżenie. Jeżeli wartość funkcji w tym przedziale jest równa zero lub mniejsza od zadanego stopu to otrzymujemy wtedy pierwiastek i kończymy algorytm. Jeżeli nie to powtarzamy rysowanie prostej tylko tym razem za końcowe punkty podstawiamy obliczone wcześniej przybliżenia.
if f1(a)*f1(b)
(…)
… dla podanych przypadków:
y1(x) = (x+6)*(x+∏)*(x+√2)*(x-√50)*(x-4∏)
y2(x) = (log(x2)-1/x - 1
y3(x) = sin(x) - cos(x2)
Zbadaliśmy zbieżność wybranej procedury i uzyskaliśmy odpowiednio następujące wyniki:
Metoda/funkcja Bisekcji
Falsi
siecznych
y1(x)
12.5664
12.5664
-1.3643e+003
y2(x)
-0.9973 i 2.0898
1 i 1
1 i 1
y3(x)
-6.0321
0.8458
-48.7342
Zbadaliśmy rowniez liczbę iteracji:
Metoda/funkcja Bisekcji
Falsi
siecznych
y1(x)
28
79679
100000
y2(x)
12 i 12
5 i 7
100000
y3(x)
20
9
22
Wzrost liczby iteracji po zwiększeniu dokladnosci o jeden rząd na 0.001
Metoda/funkcja Bisekcji
Falsi
siecznych
y1(x)
31
92582
100000
y2(x)
15 i 14
5 i 9
100000
y3(x)
23
10
1832
Wybierane przedziały zawierały się pomiędzy -100 do 100, natomiast w drugiej funkcji badalismy od -100 d0 1 i od 1 do 100 ponieważ funkcja logarytmiczna…
... zobacz całą notatkę
Komentarze użytkowników (0)