Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Приближенное вычисление интегралов (http://www.tehnari.ru/f43/t79415/)

Fieria 16.10.2012 19:20

Приближенное вычисление интегралов
 
Вложений: 1
Вычислить интеграл по трём различным формулам с одинаковым значением шага, на паскале

Vladimir_S 16.10.2012 20:43

Цитата:

Сообщение от Fieria (Сообщение 805839)
Вычислить интеграл по трём различным формулам с одинаковым значением шага, на паскале

Пожалуйста. Только опять же это Паскаль Free (Turbo):
Код:

Const
 a=0.0;
 b=3.0;
 h=0.5;

Function F(x:Real):Real;
begin
 F:=Cos(exp(x/3)+x);
end;

Procedure Rectangle;
var
 i,N:Integer;
 Sum:Real;
begin
 N:=Round((b-a)/h);
 Sum:=0;
 for i:=0 to N-1 do
  Sum:=Sum+h*F(a+h*i);
 WriteLn('Rectangle:    ', Sum:0:5);
end;

Procedure Trapezium;
var
 i,N:Integer;
 Sum:Real;
begin
 N:=Round((b-a)/h);
 Sum:=(F(a)+F(b))/2*h;
 for i:=1 to N-1 do
  Sum:=Sum+h*F(a+h*i);
 WriteLn('Trapezium:    ', Sum:0:5);
end;

Procedure Simpson;
var
 i,N:Integer;
 Sum,hs:Real;
begin
 hs:=h;
 N:=Round((b-a)/hs) div 2;
 If (N mod 2)=1 then
  begin
  N:=N*2;
  hs:=hs/2;
  end;
 Sum:=(F(a)+F(b))/3*hs;
 for i:=1 to N do
  Sum:=Sum+4.0*hs/3.0*F(a+hs*(2*i-1));
 for i:=2 to N do
  Sum:=Sum+2.0*hs/3.0*F(a+hs*(2*i-2));
 WriteLn('Simpson:      ', Sum:0:5);
end;

Begin
 Rectangle;
 Trapezium;
 Simpson;
 ReadLn;
End.


Fieria 16.10.2012 20:51

Спасибочки большое, и это подойдетtehno040


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

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.