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

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

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

textual
Листинг программы
  1. uses crt;
  2. function F(x:real):real;{исследуемая функция}
  3. begin
  4. F:=4*cos(2*x)-x+0.1
  5. end;
  6. function Bisec(a,b,e:real):real;{поск корня методом бисекции}
  7. var x,c:real;
  8. begin
  9. repeat
  10. c:=(a+b)/2;{середина отрезка}
  11. if F(a)*F(c)<0 then b:=c{если знаки разные с левым концом}
  12. else a:=c;{перенсимпрвый конец в середину, иначе  левый}
  13. until b-a<e;{и так пока концы не "срастутся"}
  14. Bisec:=(a+b)/2;{значение корня}
  15. end;
  16.  
  17. var x,x1,x2,dx,x11,x12,eps:real;
  18.     i:integer;
  19. begin
  20. clrscr;
  21. repeat
  22. writeln('Введите границы отрезка x2-x1>0.1');
  23. readln(x1,x2);
  24. until(x2-x1>0.1);
  25. dx:=0.1;{шаг поиска}
  26. eps:=0.0001; {точность нахожления корня}
  27. x:=x1;
  28. i:=0; {номер корня}
  29. while x<=x2 do {пока не конец интервала}
  30.  begin
  31.   x11:=x; {границы проверяемого диапазона}
  32.   x12:=x+dx;
  33.   {если на концах разные знаки функции, то есть корень}
  34.   if (F(x11)*F(x12)<0)and(F(x12)<1) then
  35.    begin
  36.     i:=i+1;
  37.     writeln('X',i,'=',Bisec(x11,x12,eps):8:5);{находим его}
  38.    end;
  39.   x:=x+dx;{к следующему отрезку}
  40.  end;
  41.  if i=0 then write('На данном интервале корней нет');
  42.  readln
  43. end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы