Вычислить определенный интеграл методом Ньютона - 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.

Объяснение кода листинга программы

  1. В программе объявлены переменные: f, f0, h - числа с плавающей точкой, n, i - целые числа.
  2. Строка clrscr; очищает экран.
  3. Переменная n инициализируется значением 2.
  4. Цикл repeat...until выполняется до тех пор, пока абсолютное значение разности между текущим значением переменной f и предыдущим значением f0 не станет меньше 0.001.
  5. Внутри цикла переменная f инициализируется нулем.
  6. Для каждого значения i от 1 до n выполняется следующая операция:
    • f обозначает текущее значение переменной f;
    • (0.25+sin(ih)+cos(2ih))h/ln(i*h) - это вычисленное значение интеграла методом Ньютона;
    • h - это шаг сетки, он равен 0.7/n.
  7. После завершения цикла выводится ответ f = ... на экран.
  8. Программа завершается с помощью readkey; для чтения символа с клавиатуры.

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы