Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 14.03.2011, 22:07   #1 (permalink)
Fotohotnik
Новичок
 
Регистрация: 14.03.2011
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Интеграл методом прямоугольников

Нужно найти интеграл заданными способами, учитывая погрешность. вот собственно интеграл: 1/(x(sqrt(2*x*x-3*x-5)) пределы интегрирования от 3 до 6; погрешность 0,001 и желательно блок-схему и график в экселе, буду очень признателен! Абсолютно не понимаю паскаль, а училка сама не знает как делать!
Fotohotnik вне форума   Ответить с цитированием

Старый 14.03.2011, 22:07
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Ваша тема схожа с этими, рекомендую внимательно прочитать

Вычислить методом тарапеции в VBA
Решение уравнений методом Ньютона
Помогите с модифицированным методом Эйлера
Как задать число pi, e , определенный интеграл?
Многопоточный сортировщик методом слияния
Неопределенный интеграл

Старый 15.03.2011, 11:40   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Fotohotnik Посмотреть сообщение
Нужно найти интеграл заданными способами, учитывая погрешность. вот собственно интеграл: 1/(x(sqrt(2*x*x-3*x-5)) пределы интегрирования от 3 до 6; погрешность 0,001 и желательно блок-схему и график в экселе, буду очень признателен! Абсолютно не понимаю паскаль, а училка сама не знает как делать!
Значит, так. Программу на Паскале я сделал, а уж всякие там блок-схемы да графики - пожалуйста, без меня. Помимо указанных численных способов, в программе рассчитывается (для сравнения) еще и точное значение интеграла, благо он берущийся:
Код:
Function ArcSin(X:Real):Real;
BEGIN
    IF ROUND(X*10000000)=10000000 THEN ArcSin:=Pi/2 ELSE
    IF ROUND(X*10000000)=-10000000 THEN ArcSin:=-Pi/2 ELSE
    ArcSin:=ArcTan(X/SQRT(1-X*X));
END;

Function F(x:Real):Real;
begin
 F:=1.0/(x*SQRT(SQR(x)*2-x*3-5.0));
end;

Function Antiderivative(x:Real):Real;
begin
 Antiderivative:=1.0/SQRT(5.0)*arcsin((-x*3-10)/(x*7));
end;

Procedure Rectangle;
var
 i,N:Integer;
 Sum1,Sum2,h:Real;
begin
 N:=5;
 h:=3.0/N;
 Sum1:=0;
 for i:=0 to N-1 do
  Sum1:=Sum1+h*F(3.0+h*i);
 Sum2:=Sum1;
 Repeat
  Sum1:=Sum2;
  N:=N*2;
  h:=3.0/N;
  Sum2:=0;
  for i:=0 to N-1 do
   Sum2:=Sum2+h*F(3.0+h*i);
 Until ABS(Sum2-Sum1)<0.001;
 WriteLn('Rectangle:     ', Sum2:10:5);
end;

Procedure Trapezium;
var
 i,N:Integer;
 Sum1,Sum2,h:Real;
begin
 N:=5;
 h:=3.0/N;
 Sum1:=(F(3.0)+F(6.0))/2*h;
 for i:=1 to N-1 do
  Sum1:=Sum1+h*F(3.0+h*i);
 Sum2:=Sum1;
 Repeat
  Sum1:=Sum2;
  N:=N*2;
  h:=3.0/N;
  Sum2:=(F(3.0)+F(6.0))/2*h;
  for i:=1 to N-1 do
   Sum2:=Sum2+h*F(3.0+h*i);
 Until ABS(Sum2-Sum1)<0.001;
 WriteLn('Trapezium:     ', Sum2:10:5);
end;

Procedure Simpson;
var
 i,N:Integer;
 Sum1,Sum2,h:Real;
begin
 N:=2;
 h:=3.0/(2*N);
 Sum1:=(F(3.0)+F(6.0))/3*h;
 for i:=1 to N do
  Sum1:=Sum1+4.0*h/3.0*F(3.0+h*(2*i-1));
 for i:=2 to N do
  Sum1:=Sum1+2.0*h/3.0*F(3.0+h*(2*i-2));
 Sum2:=Sum1;
 Repeat
  Sum1:=Sum2;
  N:=N*2;
  h:=3.0/(2*N);
  Sum2:=(F(3.0)+F(6.0))/3*h;
  for i:=1 to N do
   Sum2:=Sum2+4.0*h/3.0*F(3.0+h*(2*i-1));
  for i:=2 to N do
   Sum2:=Sum2+2.0*h/3.0*F(3.0+h*(2*i-2));
 Until ABS(Sum2-Sum1)<0.001;
 WriteLn('Simpson:       ', Sum2:10:5);
end;

BEGIN
 Rectangle;
 Trapezium;
 Simpson;
 WriteLn('Accurate value:', (Antiderivative(6.0)-Antiderivative(3.0)):10:5);
 ReadLn;
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 15.03.2011, 14:31   #3 (permalink)
Fotohotnik
Новичок
 
Регистрация: 14.03.2011
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо большое, очень выручили!
Fotohotnik вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 13:03.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.