[ Pobierz całość w formacie PDF ]
.Zmodyfikowana metoda Newtona.Proces iteracyjny jest rozbieznyNowe obliczenia: (t/n)?PROGRAM 3.2Rozwiazywanie rownania nieliniowego:f(x) = x - sin(x) - 0.25 = 0.Klasyczna i zmodyfikowana metoda Newtona.Przyblizenie poczatkowe - x0 = 0.9Dokladnosc obliczen - eps = 1E-9Klasyczna metoda Newtona.Pierwiastek rownania - ksi = 1.171230E+00Residuum rownania: f(ksi) = 1.06E-10Liczba iteracji: 5Zmodyfikowana metoda Newtona.Pierwiastek rownania - ksi = 1.171230E+00Residuum rownania: f(ksi) = -3.03E-10Liczba iteracji: 41Nowe obliczenia: (t/n)?3.3.Dwupunktowe metody iteracyjneNajprostsz¹ iteracyjn¹ metod¹ dwupunktow¹ wyznaczania pierwiastków równania(3.1) jest metoda bisekcji (po³owienia).Przy za³o¿eniu, ¿e wewn¹trz przedzia³u[a, b] znajduje siê dok³adnie jeden pierwiastek równania (3.1) oraz ¿e nakoñcach tego przedzia³u wartoœci funkcji maj¹ przeciwne znaki metoda bisekcjidla generuje ci¹g punktów zdefiniowany nastêpuj¹cym algorytmem:(3.25)Interpretacja geometryczna procesu iteracyjnego (3.25) jest bardzo prosta:w ka¿dym kroku dzielimy przedzia³ na po³owê i z otrzymanych dwóchpodprzedzia³Ã³w wybieramy ten, w którym na pewno znajduje siê pierwiastekrównania (3.1).W wyniku takiego postêpowania po pewnej liczbie kroków albootrzymujemy pierwiastek dok³adny albo otrzymujemy pierwiastek przybli¿onyobarczony b³êdem bêd¹cym d³ugoœci¹ podprzedzia³u(3.26)Zatem metoda bisekcji jest zbie¿na liniowo, ze sta³¹ asymptotyczn¹ b³êdu{Program 3.3}uses Crt;variter: Integer;a,b,bl,eps,fa,fb,fx,x: Real;zn: Char;label omin,powt;function f(x: Real): Real;beginf:=x-Sin(x)-0.25;end;beginpowt:ClrScr;Writeln('PROGRAM 3.3');Writeln('Rozwiazywanie rownania nieliniowego:');Writeln(' f(x) = x - sin(x) - 0.25 = 0.');Writeln('Metoda bisekcji.'); Writeln;Writeln('Przedzial izolacji pierwiastka:');Write(' a = '); Readln(a);Write(' b = '); Readln(b);fa:=f(a);Writeln(' f(a) = ',fa:13);fb:=f(b);Writeln(' f(b) = ',fb:13);if fa*fb>0 then beginWriteln('Wartosci funkcji na koncach przedzialu [a,b]');Writeln('nie sa roznych znakow.');Writeln;goto omin;end;Write('Dokladnosc obliczen - eps = ');Readln(eps); Writeln;iter:=0;repeatx:=(a+b)/2;fx:=f(x);if fx*fa
[ Pobierz całość w formacie PDF ]