Вычислить длину дуги гладкой кривой - Pascal

Узнай цену своей работы

Формулировка задачи:

Вычислить длину дуги s гладкой кривой y = f(x), содержащейся между двумя точками с абс-циссами x = a и x = b по формуле: Интеграл вычисляется заданным численным методом с точностью Е*=10-5. А вот мой вариант: Найти длину дуги кривой y = ex , содержащейся между точками [0;1] и [1;e] мето-дом парабол. Как я понимаю это метод Симонса? (или я не прав? Кто сможет написать прогу на паскале. Очень надо. Вроде бы там еще график надо в в екселе написать) Кто напишет пишите сот в ЛС на телефон 100р кину

Решение задачи: «Вычислить длину дуги гладкой кривой»

textual
Листинг программы
function f(x: real): real;
begin
  f := sqrt(1 + sqr(exp(x)))
end;
 
const a = 0.0;
      b = 1.0;
      eps = 1e-5;
 
var n, i: integer;
    s1, s: real;
 
begin
  n := 2; {для параболы нужно 3 точки, значит, изначально интервал разбиваем на 2 части}
  s := (b - a) / 6 * (f(a) + 4 * f((a + b) / 2) + f(b)); {формула Симпсона для разбиения интервала на 2 части}
  repeat
    s1 := s; {запоминаем предыдущее значение интеграла}
    n := 2 * n; {удваиваем количество частей в интервале}
    s := f(a) + f(b); {начальное значение интеграла}
    for i := 1 to n - 1 do
      if odd(i)
        then s := s + 4 * f(a + (b - a) * i / n)
        else s := s + 2 * f(a + (b - a) * i / n);
    s := s * (b - a) / 3 / n
  until abs(s - s1) / 15 <= eps;
  write('Curve length = ', s:0:6);
  readln
end.

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

  1. Объявляется функция под названием f, которая принимает аргумент x типа real и возвращает значение типа real. Она вычисляет квадратный корень из выражения 1 + exp(x) в квадрате.
  2. Объявляются константы a (со значением 0.0), b (со значением 1.0) и eps (со значением 1е-5).
  3. Объявляются переменные n и i целочисленного типа и s1, s вещественного типа.
  4. Выполняется блок кода, в котором вычисляется интеграл методом Симпсона для заданной функции на отрезке [a, b] с точностью eps.
  5. В цикле происходит удвоение количества частей в интервале и пересчет значения интеграла.
  6. Повторяется шаг 5, пока условие abs(s - s1) / 15 <= eps не станет истинным.
  7. На экран выводится длина дуги гладкой кривой с точностью до 6 знаков после запятой.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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