SOISK - SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Tomasz Puchała

Bisekcja PASCAL

Załóżmy, że chcemy rozwiązać równanie
1 - e sin x * cos x
posiadające (jak nietrudno obliczyć na kartce) pierwiastek w punkcie x
= 0. Tłumacząc powyższy schemat na angielski (i Pascal) otrzymamy
następujący program:
       program Bisekcja;
       { Program rozwiązuje równania nieliniowe metodą bisekcji }

       var
               a, b, c : real; { granice przedziału i punkt podziału }
               eps : real;     { dokładność }

       begin
               writeln('Program znajduje miejsce zerowe funkcji')
               writeln('w przedziale [a;b]');
               write('Podaj wartosc a: ');     { wprowadź granice przedziału }
               readln(a);
               write('Podaj wartosc b: ');
               readln(b);
               write('Podaj dokladnosc: ');
               readln(eps);
               repeat
                       c := (a + b)/2; { podziel przedział na pół }
                       if (1 - exp(sin(a)*cos(a)))*(1 - exp(sin(c)*cos(c))) < 0
                       then
                               b := c  { funkcja ma przeciwne znaki w a i c }
                       else
                               a := c; { funkcja ma przeciwne znaki w b i c }
               writeln(c);
               until abs(1 - exp(sin(c)*cos(c))) < eps;
               { badamy wartość bezwzględną! }
               writeln('Miejsce zerowe: c = ',c:12:8);
               readln;
       end.


Ta strona internetowa została utworzona bezpłatnie pod adresem Stronygratis.pl. Czy chcesz też mieć własną stronę internetową?
Darmowa rejestracja