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