• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Паскаль. Вычисление интегралов

  • Автор темы Автор темы fluqxs
  • Дата начала Дата начала

fluqxs

Ученик
Регистрация
1 Дек 2016
Сообщения
1
Реакции
0
Баллы
0
Паскаль. Вычисление интегралов

Составить программу, подсчитывающую с точностью Е=10^-3 значение интеграла : 1)интеграл от Пи/6 do Pi/3(tg^2(x) + ctg^2(x))*d*x) по методу Правых прямоугольников. Для точности использовать метод двойного пересчета. Результат срав-нить со значением интеграла, подсчитанным с помощью первообразной F(x) по формуле Ньютона-Лейбница: F(b)-F(a).
Метод приближенного вычисления определенного интеграла должен быть запро-граммирован с помощью процедуры. Отрезок интегрирования, точность вычисления вводятся с клавиатуры, подынтегральная функция описывается с помощью функции пользователя.
Распечатать: отрезок интегрирования, точность вычисления, приближенное значение определенного интеграла, значение интеграла, подсчитанное по формуле Ньютона-Лейбница.
 
И Вам тоже здравствовать! Очень рады Вас видеть.
Я не слишком Вас побеспокою, если предложу ознакомиться с решением Вашей задачи? Нет? Ну, не взыщите, если что, просто не откликнуться на столь изысканно-вежливую просьбу о помощи было выше моих сил.
Код:
Var
 AV,a,b,Res,eps:Real;

Function F(t:Real):Real;
begin
 F:=Sqr(Sin(t)/Cos(t))+Sqr(Cos(t)/Sin(t));
end;

Function Antiderivative(t:Real):Real;
begin
 Antiderivative:=-2*(Cos(t*2)/Sin(t*2)+t);
end;

Function Rectangle(Hr:Real):Real;
var
 Sum,x:Real;
begin
 Sum:=0;
 x:=a;
 repeat
  Sum:=Sum+Hr*F(x);
  x:=x+Hr;
 until x>b;
 Rectangle:=Sum;
end;

Procedure Calc_Int(var R:real);
var
 dif,Hc:Real;
begin
 Hc:=b-a;
 repeat
  dif:=Abs(Rectangle(Hc)-Rectangle(Hc/2));
  Hc:=Hc/2;
 until dif<eps;
 R:=Rectangle(Hc);
end;

Begin
 Write('a = ');
 Readln(a);
 Write('b = ');
 Readln(b);
 Write('eps = ');
 Readln(eps);
 Calc_Int(Res);
 Writeln('Result: ',Res:0:8);
 AV:=Antiderivative(b)-Antiderivative(a);
 WriteLn('Accurate value: ', AV:0:8);
 Readln
End.
 
Назад
Сверху