Процедура нахождения корня уравнения методом половинного деления и методом Ньютона - Turbo Pascal
Формулировка задачи:
написать программу процедуру для нахождения корня каждого уравнения методом половинного деления и методом Ньютона с точностью ε=0,001. уравнения:1) х2-2cos(x)-1=0; 2)x3-x2+2x+1=0
Решение задачи: «Процедура нахождения корня уравнения методом половинного деления и методом Ньютона»
textual
Листинг программы
uses crt; const max_iter = 100; var a, b, e, M, x0: real; k: integer; function f(x: real): real; begin result := sqr(sin(x)) - x + 1; end; begin clrscr; write('a/b/e: '); readln(a, b, e); k := 0; while (abs(a - x0) >= e) or (k > max_iter) do begin M := -(F(a + e) - F(a - e) ) / (2 * e); x0 := a; a := x0 + F(x0) / M; inc(k); writeln('C=', a:3:2, ' f(c)=', f(a):3:2); end; if (abs(a - x0) <= e) then writeln('C=', a:3:2, ' Iteratsiy: ', k) else writeln('Answer not found!'); readln; end.
Объяснение кода листинга программы
- В начале кода подключается библиотека crt, которая содержит функции для работы с консолью.
- Затем определяются константы и переменные:
- max_iter - максимальное количество итераций;
- a, b, e - переменные для ввода значений a, b и e от пользователя;
- M - переменная для хранения значения выражения (F(a + e) - F(a - e)) / (2 * e);
- x0 - начальное значение переменной x;
- Затем определяется функция f, которая вычисляет значение выражения f(x) = sqr(sin(x)) - x + 1.
- После этого происходит инициализация переменных:
- k = 0;
- x0 = 0;
- Затем идет цикл while, который выполняется до тех пор, пока abs(a - x0) >= e или k не превысит max_iter:
- M = -(F(a + e) - F(a - e)) / (2 * e);
- x0 = a;
- a = x0 + F(x0) / M;
- k++;
- Если в процессе выполнения цикла abs(a - x0) <= e, то выводится сообщение C= и значение a, а также вычисляется значение f(a).
- Если abs(a - x0) > e, то выводится сообщение Answer not found!.
- После окончания цикла выводится сообщение Iteratsiy: k.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д