Найти корень уравнения методом итерации - Pascal
Формулировка задачи:
Здравствуйте. помогите пожалуйста надо Найти корень уравнения методом итерации с точностью 0.001
sin(x)-x2+1=0
заранее спасибо
Решение задачи: «Найти корень уравнения методом итерации»
textual
Листинг программы
function f(x: real): real; begin f := sin(x) - x * x + 1 end; procedure root(x: real; n: integer); const eps = 0.001; var lambda, xi: real; begin lambda := 0.5 / (f(x) - f(x - 0.5)); repeat xi := x; x := xi - lambda * f(xi) until abs(x - xi) < eps; writeln('x', n, ' = ', x:6:3) end; var f1, f2, x: real; i, k: integer; begin k := 0; f2 := f(-1); for i := -1 to 3 do begin f1 := f2; x := i / 2; f2 := f(x); if f1 * f2 <= 0 then begin inc(k); root(x, k) end end; readln; end.
Объяснение кода листинга программы
- Объявляется функция
f
с параметромx
и возвращаемым значением типаreal
. - В функции
f
вычисляется значение функции для заданногоx
по формулеsin(x) - x * x + 1
и возвращается результат. - Объявляется процедура
root
с параметрамиx
типаreal
иn
типаinteger
. - В процедуре
root
объявляется константаeps
со значением 0.001 и переменныеlambda
иxi
типаreal
. - В процедуре
root
вычисляется значениеlambda
по формуле0.5 / (f(x) - f(x - 0.5))
. - В процедуре
root
начинается циклrepeat
для вычисления корня уравнения методом итерации. - В цикле
repeat
переменнойxi
присваивается значениеx
. - В цикле
repeat
значениеx
пересчитывается по формулеxi - lambda * f(xi)
. - Цикл
repeat
повторяется, пока разница междуx
иxi
меньше заданной точностиeps
. - После выхода из цикла
repeat
выводится на экран результат в виде строкиx n = значение_x
с округлением до трех знаков после запятой. - Объявляются переменные
f1
,f2
иx
типаreal
, и переменныеi
иk
типаinteger
. - Происходит инициализация переменной
k
нулем и переменнойf2
значением функцииf
при-1
. - Выполняется цикл
for
от -1 до 3 для всех значенийi
. - В цикле
for
переменнойf1
присваивается значение переменнойf2
, переменнойx
присваивается значениеi / 2
и переменнойf2
присваивается значение функцииf
для данногоx
. - Проверяется условие, а именно, если произведение
f1
иf2
меньше или равно 0, то выполняется блок операций. - В случае выполнения условия переменная
k
увеличивается на 1, и вызывается процедураroot
с параметрамиx
иk
. - В конце программы осуществляется ожидание ввода данных из консоли.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д