Вычислить определенный интеграл методом Ньютона - Turbo Pascal
Формулировка задачи:
Вычислить определенный интеграл методом Ньютона. F(x) = (0.25 + sin(x) + cos(2x))/ ln(x);
На промежутке [0..7]. eps = 0.001
Можно взять n=4, или любое другое по вашему усмотрению, для необходимого класса точности.
В принципе, если кто-то напишет даже алгоритм работы метода, буду очень благодарен.
Можно взять самый простой интеграл подобного уровня , далее, я все сделаю. Почему то у меня не получилось создать работающую программу.
Решение задачи: «Вычислить определенный интеграл методом Ньютона»
textual
Листинг программы
program lab; uses crt; var f,f0,h: real; n,i:integer; begin clrscr; n:=2; repeat n:=n*2; h:=0.7/n; f0:=f; f:=0; for i:=1 to n do f:=f+(0.25+sin(i*h)+cos(2*i*h))*h/ln(i*h); until abs(f-f0)<0.001; write('otvet f = ',f:8:6); readkey; end.
Объяснение кода листинга программы
- В программе объявлены переменные: f, f0, h - числа с плавающей точкой, n, i - целые числа.
- Строка
clrscr;
очищает экран. - Переменная n инициализируется значением 2.
- Цикл repeat...until выполняется до тех пор, пока абсолютное значение разности между текущим значением переменной f и предыдущим значением f0 не станет меньше 0.001.
- Внутри цикла переменная f инициализируется нулем.
- Для каждого значения i от 1 до n выполняется следующая операция:
- f обозначает текущее значение переменной f;
- (0.25+sin(ih)+cos(2ih))h/ln(i*h) - это вычисленное значение интеграла методом Ньютона;
- h - это шаг сетки, он равен 0.7/n.
- После завершения цикла выводится ответ f = ... на экран.
- Программа завершается с помощью readkey; для чтения символа с клавиатуры.