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

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

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

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

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

textual
Листинг программы
  1. function f(x: real): real;
  2. begin
  3.   f := sqrt(1 + sqr(exp(x)))
  4. end;
  5.  
  6. const a = 0.0;
  7.       b = 1.0;
  8.       eps = 1e-5;
  9.  
  10. var n, i: integer;
  11.     s1, s: real;
  12.  
  13. begin
  14.   n := 2; {для параболы нужно 3 точки, значит, изначально интервал разбиваем на 2 части}
  15.   s := (b - a) / 6 * (f(a) + 4 * f((a + b) / 2) + f(b)); {формула Симпсона для разбиения интервала на 2 части}
  16.   repeat
  17.     s1 := s; {запоминаем предыдущее значение интеграла}
  18.     n := 2 * n; {удваиваем количество частей в интервале}
  19.     s := f(a) + f(b); {начальное значение интеграла}
  20.     for i := 1 to n - 1 do
  21.       if odd(i)
  22.         then s := s + 4 * f(a + (b - a) * i / n)
  23.         else s := s + 2 * f(a + (b - a) * i / n);
  24.     s := s * (b - a) / 3 / n
  25.   until abs(s - s1) / 15 <= eps;
  26.   write('Curve length = ', s:0:6);
  27.   readln
  28. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы