Для уравнения, 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
Листинг программы
Program Lab4;
begin
sqr(x)-cos(x);
var a,b,c,x,e:real;
begin
a:=0;
b:=2;
e:=0.0001;
writeln('Решение уравнения x^2-cosx=0');
writeln('на интервале [0;2] с погрешностью 0.0001');
c:=(a+b)/2;
if (sqr(a)-cos(a)) then x:=a
else if (sqr(c)-cos(c)) then x:=c
else if (sqr(b)-cos(b)) then x:=b
else
repeat
   c:=(a+b)/2;
   if (sqr(a)-cos(a))*(sqr(c)-cos(c))<=0 then b:=c
   else a:=c;
until abs(b-a)<e;
x:=(a+b)/2;
writeln('x=',x:0:4);
readln
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
Похожие ответы