Iteracyjne metody znajdowania miejsc zerowych funkcji

Problemy:

lokalizacja pierwiastka (punkt startowy, przedział izolacji)

zbieżność procesu iteracyjnego, szybkość zbieżności

Metody dwupunktowe

bisekcji (połowienia)

siecznych

regula falsi

Metody jednopunktowe

stycznych (Newtona)

metoda iteracji prostych

gdy dla funkcji ciągłych to istnieją pierwiastki w

gdy pochodna nie zmienia znaku w to istnieje jeden pierwiastek

wybieramy przedział taki aby

dzielimy przedział na połowy

jeżeli to jest znalezionym pierwiastkiem

jeżeli ma ten sam znak co to powtarzamy szukanie pierwiastka w przedziale

jeżeli ma ten sam znak co to powtarzamy szukanie pierwiastka w przedziale

(prawie) zawsze zbieżna

wolno zbieżna (zbieżność liniowa)

nie uwzględnia kształtu funkcji w poszukiwaniu pierwiastka

często stosowana do znalezienia przybliżonego przedziału pierwiastka dla szybciej zbieżnych metod

Miejsca zerowe funkcji

Sprawdź przedziały izolacji: , .

Jaki jest problem z drugim przedziałem?

Czy proces jest zawsze zbieżny?

#include<stdio.h> #include<math.h> float f(float x) { return (x*x)-1; } int main() { float a, b, x0, eps; int i; printf("Podaj przedzial izolacji:"); scanf("%f%f", &a, &b); eps = 1e-6; i=0; while(fabs(a-b)>eps) { i++; x0 = (a+b)/2; printf("%f %f %f\n", a, b, b-a); if (fabs(f(x0)) < eps) break; if(f(a)*f(x0) < 0) b=x0; else a=x0; } printf("x0 = %f\niterations %d\n", x0, i); printf("f(%g)=%g\n", x0, f(x0)); return 0; }

Dla dwóch wartości początkowych i kolejne przybliżenie za pomocą linii prostej (siecznej)

zatrzymanie algorytmu gdy lub gdy

proces może być rozbieżny (ustalenie maks. liczby iteracji lub zatrzymanie gdy rośnie)

Zaimplementuj program znajdujący rozwiązanie równania postaci

za pomocą metod bisekcji oraz siecznych

Program wczytuje wartości początkowe i po czym wypisuje dla każdej z metod:

przybliżoną wartość miejsca zerowego lub informację o braku znalezienia pierwiastka lub o tym, że proces jest rozbieżny

wartość funkcji w wyznaczonym punkcie

wartość zastosowanej precyzji obliczeń

ilość wykonanych iteracji

Ćw. 1

Napisz program znajdujący pierwiastki rzeczywiste jednego z poniższych równań z dokładnością

Ćw. 2 Rozwiąż zadanie z zajęć używając metody Regula falsi, która jest modyfikacją metody siecznych polegająca na tym, że jeden punktów lub jest stały.

Jakie warunki musi spełniać funkcja na odcinku aby ta metoda znalazła pierwiastek.