Архив исходников программ, модулей и компонентов на Delphi


Начальная страница

Поиск по базе



Операционная система
Настройка приложения
Взаимодействия приложений
Файлы и директории
Строки и символы
Математика
Базы данных
Интернет и сеть
Мультимедиа
Аппаратная часть
VCL
Другие разделы [0]
 

Количество записей в базе - 537
Сегодня добавлено – 0

Вычисления



Вернуться к списку функций
 Взятие интеграла методом Симпсона

 Прислал: Mystic (Харьков) ( 25 апреля 2002 г. )
©  Mystic
 Описание:
Интеграл методом Симпсона
A, B - интервал интегрирования
N - число точек на интервале
Func - функция, от которой берется интеграл.

Возвращаемое значение - значение интеграла

 Зависимости:
System

 Исходный текст:
{ **** UBPFD *********** by http://kladovka.net.ru/delphibase/ ****
>> Взятие интеграла методом Симпсона

Интеграл методом Симпсона
A, B - интервал интегрирования
N - число точек на интервале
Func - функция, от которой берется интеграл.

Возвращаемое значение - значение интеграла

Зависимости: System
Автор:       Mystic, mystic2000@newmail.ru, ICQ:125905046, Харьков
Copyright:   Mystic
Дата:        25 апреля 2002 г.
***************************************************************** }

type
  TFunction = function(X: Extended; Arg: Pointer): Extended;

function Simpson(A, B: Extended; N: Cardinal; Func: TFunction; Arg: Pointer): Extended;
var
  h: Extended;
  X: Extended;
  K: Extended;
  I: Integer;
begin
  Assert(N>0);
  h := 0.5 * (B-A) / N;
  Result := Func(A, Arg);
  X := A + h;
  for I := 1 to 2*N-1 do
  begin
    if I mod 2 = 0
      then K := 2
      else K := 4;
    Result := Result + K*Func(X, Arg);
    X := X + h;
  end;
  Result := Result + Func(B, Arg);
  Result := h * Result / 3;
end;


Вернуться к списку функций

Наверх ▲