Приближенное решение нелинейных уравнений (можно с объяснением строк) - Turbo Pascal

Узнай цену своей работы

Решение задачи: «Приближенное решение нелинейных уравнений (можно с объяснением строк)»

textual
Листинг программы
uses crt;
function F(x:real):real;{исследуемая функция}
begin
F:=4*cos(2*x)-x+0.1
end;
function Bisec(a,b,e:real):real;{поск корня методом бисекции}
var x,c:real;
begin
repeat
c:=(a+b)/2;{середина отрезка}
if F(a)*F(c)<0 then b:=c{если знаки разные с левым концом}
else a:=c;{перенсимпрвый конец в середину, иначе  левый}
until b-a<e;{и так пока концы не "срастутся"}
Bisec:=(a+b)/2;{значение корня}
end;
 
var x,x1,x2,dx,x11,x12,eps:real;
    i:integer;
begin
clrscr;
repeat
writeln('Введите границы отрезка x2-x1>0.1');
readln(x1,x2);
until(x2-x1>0.1);
dx:=0.1;{шаг поиска}
eps:=0.0001; {точность нахожления корня}
x:=x1;
i:=0; {номер корня}
while x<=x2 do {пока не конец интервала}
 begin
  x11:=x; {границы проверяемого диапазона}
  x12:=x+dx;
  {если на концах разные знаки функции, то есть корень}
  if (F(x11)*F(x12)<0)and(F(x12)<1) then
   begin
    i:=i+1;
    writeln('X',i,'=',Bisec(x11,x12,eps):8:5);{находим его}
   end;
  x:=x+dx;{к следующему отрезку}
 end;
 if i=0 then write('На данном интервале корней нет');
 readln
end.

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы