Для уравнения, 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.
Объяснение кода листинга программы
- Уравнение, с которым работает программа, - x^2 - cosx = 0.
- Задан интервал для решения уравнения - [0; 2].
- Погрешность решения установлена равной 0.0001 (e = 0.0001).
- Программа выводит на экран информацию о решении уравнения.
- Вычисляется среднее значение интервала (a + b) / 2 для начального приблищения.
- Проверяется условие (x^2 - cos(x)) > 0 для a. Если это условие не выполняется, то a становится текущим значением x.
- Если условие (x^2 - cos(x)) > 0 для (a+b)/2 не выполняется, то (a+b)/2 становится текущим значением x.
- Если условие (x^2 - cos(x)) > 0 для b не выполняется, то b становится текущим значением x.
- Если ни одно из условий не выполняется, то происходит рекурсивный вызов программы с новыми значениями a и b.
- Цикл повторяется до тех пор, пока разница между a и b не станет меньше заданной погрешности.
- x вычисляется как среднее значение интервала (a+b)/2.
- Значение x выводится на экран.
- Программа ожидает ввода от пользователя для подтверждения выполнения задачи.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д