120 likes | 344 Views
Dawid Rasała. Metody numeryczne szukanie pierwiastka metodą bisekcji. Rozwiązywanie równań.
E N D
Dawid Rasała Metody numeryczneszukanie pierwiastka metodą bisekcji
Rozwiązywanie równań Pierwiastki równania f(x) = 0 na ogół nie wyrażają się zamkniętymi wzorami, dlatego rozwiązując równania nieliniowe stosujemy na ogół metody przybliżone, opierające się zazwyczaj na kolejnych przybliżeniach pierwiastka. Są to metody iteracyjne, co oznacza, że startując od jednego lub kilku przybliżeń początkowych pierwiastka, metody te dają ciąg x0, x1, x2, … kolejnych przybliżeń pierwiastka.
Metoda bisekcji Metoda równego podziału (metoda połowienia, metoda bisekcji, metoda połowienia przedziału) - jedna z metod rozwiązywania równań nieliniowych. Opiera się ona na następującym twierdzeniu: Jeżeli funkcja ciągła f(x) ma na końcach przedziału domkniętego wartości różnych znaków, to wewnątrz tego przedziału, istnieje co najmniej jeden pierwiastek równania f(x) = 0.
Metoda bisekcji Mamy daną funkcję f(x) oraz przedział <a,b>, w którym będziemy poszukiwali miejsca zerowego. Aby można było zastosować algorytm połowienia muszą być spełnione poniższe warunki: 1. Funkcja f(x) jest określona w każdym punkcie przedziału <a,b>. Określoność funkcji oznacza, iż dla każdej wartości argumentu x z przedziału <a,b> potrafimy policzyć wartość funkcji. Dla przykładu rozważmy prostą funkcję: W punkcie x = 1 tak podana funkcja ma nieokreśloną wartość. Musimy dzielić przez 0, a jak wiadomo jest to zadanie niewykonalne.
Metoda bisekcji 2. Funkcja f(x) jest ciągła. Ciągłość funkcji oznacza z kolei, iż jej wartości nie "wykonują" nagłych skoków, nie istnieją przerwy w kolejnych wartościach funkcji. Dla przykładu rozważmy taką oto funkcję: Nieciągłość występuje w punkcie x = 0, czyli w miejscu zmiany przepisu funkcji.
Metoda bisekcji 3. Funkcja f(x) na krańcach przedziału <a,b> przyjmuje różne znaki. Ponieważ funkcja, zgodnie z poprzednim wymogiem, jest ciągła, to przyjmuje w przedziale <a,b> wszystkie wartości pośrednie pomiędzy f(a) i f(b). Wartości te mają różne znaki (czyli leżą po różnych stronach osi OX), zatem musi być taki punkt xo w przedziale <a,b>, dla którego funkcja przyjmuje wartość pośrednią.
Kroki algorytmu Gdy funkcja f(x) spełnia powyższe trzy warunki, to w przedziale <a,b> zagwarantowane jest istnienie pierwiastka i możemy go wyszukać algorytmem połowienia. Zasada jest następująca: 1. Wyznaczamy punkt xo jako środek przedziału <a,b>. 2. Obliczamy wartość funkcji w punkcie xo. Sprawdzamy, czy f(xo) znajduje się dostatecznie blisko 0:
Kroki algorytmu 3. Jeśli nierówność jest spełniona, to xo jest poszukiwaną wartością pierwiastka. Zwracamy wynik i kończymy algorytm. W przeciwnym razie za nowy przedział poszukiwań pierwiastka przyjmujemy tą połówkę <a,xo> lub <xo,b>, w której funkcja zmienia znak na krańcach i przechodzimy ponownie do punktu 1.
Warunki zakończenia obliczeń Algorytm powtarzamy od początku dotąd, aż: znajdziemy pierwiastek, czyli spełniona będzie nierówność przedział <a,b> osiągnie założoną długość (może to być również epsilon) wykonamy określoną ilości iteracji.
Przykład Wyznaczyć pierwiastek równania x3 − x + 1 = 0 w przedziale [ − 2;0].
Zadania • Wszystkie poniższe równania maja pierwiastek w przedziale (0, 1.6). Wyznaczyć te pierwiastki metodą bisekcji z błędem mniejszym od 0,02: • x * cos(x) = - ln(x); • 2 x + e-x = 0. • Napisać w dowolnym języku program, który realizuje metodę bisekcji dla zadanej funkcji.