Для уравнения, x2 - cosx = 0, и найденного интервала (0,2) уточнить корень x с погрешностью =10-4 методом п - Free Pascal

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

Формулировка задачи:

Для уравнения, x2 - cosx = 0, и найденного интервала (0,2) уточнить корень x с погрешностью =10-4 методом половинного деления. Обозначим: xл - левая граница; xп - правая граница поля, т.е. xл  x  xп. Вначале считаем xл = а, xп = b, значение корня x = (xл + xп)/2, текущая погрешность  = (xn - xл)/2. Уменьшаем интервал (xл,xп) вдвое. Для этого вычисляем f(x1) и f(xп), где x1= (xл + xп)/2. Если f(x1) и f(xп) имеют равные знаки, то уменьшаем интервал до (xл,xп=x1), в противном случае - (xл=x1,xп). Выбранный интервал вновь делится пополам и так до тех пор, пока текущая погрешность не станет меньше заданной. Полученный корень x проверить путем подстановки его значения в уравнение f(x) = 0.

Решение задачи: «Для уравнения, x2 - cosx = 0, и найденного интервала (0,2) уточнить корень x с погрешностью =10-4 методом п»

textual
Листинг программы
  1. Program Lab4;
  2. begin
  3. sqr(x)-cos(x);
  4. var a,b,c,x,e:real;
  5. begin
  6. a:=0;
  7. b:=2;
  8. e:=0.0001;
  9. writeln('Решение уравнения x^2-cosx=0');
  10. writeln('на интервале [0;2] с погрешностью 0.0001');
  11. c:=(a+b)/2;
  12. if (sqr(a)-cos(a)) then x:=a
  13. else if (sqr(c)-cos(c)) then x:=c
  14. else if (sqr(b)-cos(b)) then x:=b
  15. else
  16. repeat
  17.    c:=(a+b)/2;
  18.    if (sqr(a)-cos(a))*(sqr(c)-cos(c))<=0 then b:=c
  19.    else a:=c;
  20. until abs(b-a)<e;
  21. x:=(a+b)/2;
  22. writeln('x=',x:0:4);
  23. readln
  24. end.

Объяснение кода листинга программы

  1. Уравнение, с которым работает программа, - x^2 - cosx = 0.
  2. Задан интервал для решения уравнения - [0; 2].
  3. Погрешность решения установлена равной 0.0001 (e = 0.0001).
  4. Программа выводит на экран информацию о решении уравнения.
  5. Вычисляется среднее значение интервала (a + b) / 2 для начального приблищения.
  6. Проверяется условие (x^2 - cos(x)) > 0 для a. Если это условие не выполняется, то a становится текущим значением x.
  7. Если условие (x^2 - cos(x)) > 0 для (a+b)/2 не выполняется, то (a+b)/2 становится текущим значением x.
  8. Если условие (x^2 - cos(x)) > 0 для b не выполняется, то b становится текущим значением x.
  9. Если ни одно из условий не выполняется, то происходит рекурсивный вызов программы с новыми значениями a и b.
  10. Цикл повторяется до тех пор, пока разница между a и b не станет меньше заданной погрешности.
  11. x вычисляется как среднее значение интервала (a+b)/2.
  12. Значение x выводится на экран.
  13. Программа ожидает ввода от пользователя для подтверждения выполнения задачи.

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


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

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

14   голосов , оценка 4 из 5

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

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

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