Dla równania f(x) = 0
, gdzie f(x) = 2x-6-lnx
, wczytać liczby rzeczywiste a
,b
takie, by 0 < a < b
oraz f(a) * f(b) < 0
. Następnie dopóki Użytkownikowi się nie znudzi, wczytywać wartość 0 < E < 1
i metodą połowienia na [ a, b ]
przybliżyć z dokładnością E
rozwiązanie tego równania. Rozwiązanie to przybliżyć również metodą siecznych z x_0 = a
, x_1 = b
, przy czym x_k
będzie dobrym przybliżeniem, gdy | x_n-x_n-1 | < E
. Porównać ilość kroków wykonanych metodą połowienia i metodą siecznych.
Jeśli funkcja spełnia następujące założenia można zastosować metodę połowienia:
- Funkcja jest ciągła w przedziale domkniętym
[ a, b ]
, - Funkcja przyjmuje różne znaki na końcach przedziału:
f(a) * (b) < 0
.
- Sprawdzić czy pierwiastkiem jest punkt
c = (a + b) / 2
, czyli czyf(c) = 0
. - Jeżeli tak jest, algorytm kończy, a punkt
c
jest miejscem zerowym. W przeciwnym raziec
dzieli przedział[ a, b ]
na dwa mniejsze przedziały[ a, c ]
i[ c, b ]
. - Wybierany jest ten przedział, dla którego spełnione jest drugie założenie, to znaczy albo
f(c) * f(a) < 0
albof(c) * f(b) < 0
. Cały proces powtarzany jest dla wybranego przedziału.
Metodę siecznych dla funkcji f(x)
mającej pierwiastek w przedziale < a, b >
można zapisać następującym wzorem rekurencyjnym:
Obliczamy kolejne wartości x_n+1
do momentu, w którym f(x_n+1) = 0
lub | x_n - x_n-1 | <= E
.