LABORATORIUM 2 Grupa NP, wtorek 05.03.2024, godz 12:15
Napisz skrypt wyznaczający numerycznie rzeczywiste rozwiązanie równania \(f(x)=3x^3-4x^2-1\) metodą bisekcji na dowolnym przedziale \(x \in \langle a; b \rangle \), wczytane z klawiatury. Narysuj wykres zestawiający punkty wyznaczone numerycznie z analityczną postacią funkcji.
Wymagania odnośnie zadania (w nawiasach podana punktacja):
Skrypt ma rozwiązać zadane równanie numerycznie, metodą bisekcji. Algorytm metody został przedstawiony na Wykładzie nr 2 na slajdach od 5 do 8. Przed wykonaniem właściwych obliczeń skrypt powinien sprawdzać czy w zadanym przedziale może znajdować się pierwiastek (patrz: punkt 1 algorytmu). Jeśli dany przedział nie spełnia założeń, skrypt powinien wyświetlić komunikat o błędnym przedziale. Jeżeli podany przedział jest prawidłowy, należy wczytać z klawiatury dokładność z jaką ma zostać wyznaczone miejsce zerowe. [2p.]
Poprawne rozwiązanie ma zostać wyświetlone w czytelnej i łatwej do odnalezienia formie, np. rozwiazanie = 1.485. Zmienne z kroków pośrednich także powinny zostać wyświetlone w celu łatwiejszego namierzenia przyczyny ewentualnych błędów. [0.5p.]
Na koniec skrypt ma wykonać wykres, na którym punktami (kropkami, gwiazdkami, itp.) zaznaczone zostaną rozwiązania pośrednie wyznaczone przez metodę, a linią ciągłą - analityczna postać funkcji \(f(x)\) otrzymana na podstawie wzoru z treści zadania. [1p.]
Należy wypisać liczbę kroków potrzebnych algorytmowi do wyznaczenia miejsca zerowego z określoną dokładnością. [0.5p.]
ALGORYTM
- Wybieramy przedział \(\langle a; b \rangle\) tak, aby \(f(a)f(b) < 0 \)
- Dzielimy przedział na połowy: \(x_0 = a + \frac{b-a}{2}\)
- Mamy trzy przypadki:
- \(|f(x_0)| < \epsilon\) - znaleziono pierwiastek
- \(f(x_0)\) ma ten sam znak co \(f(a)\), zatem pierwiastek jest w przedziale \(\langle x_0; b \rangle\)
- \(f(x_0)\) ma ten sam znak co \(f(b)\), zatem pierwiastek jest w przedziale \(\langle a;x_0 \rangle\)
- Wybieramy przedział zawierający pierwiastek jako nowy przedział \(\langle a; b \rangle\) i wracamy do kroku 2.