Вычисление определённого интеграла методом СимпсонаDelphi , Синтаксис , МатематикаВычисление определённого интеграла методом Симпсона
Автор: Dimka Maslov { **** UBPFD *********** by delphibase.endimus.com **** >> Вычисление определённого интеграла методом Симпсона A, B - границы интегрирования Eps - заданная относительная точность вычисления F - подинтегральная функция Зависимости: нет Автор: Dimka Maslov, mainbox@endimus.ru Copyright: Dimka Maslov Дата: 26 ноября 2003 г. ***************************************************** } type TDoubleFunc = function(X: Double): Double; function Integral(A, B, Eps: Double; F: TDoubleFunc): Double; function InternalCalc(A, B: Double; F: TDoubleFunc; N: Integer): Double; var x, dx: Double; i: Integer; begin dx := (B - A) / N; Result := 0; x := A; for i := 1 to N do begin Result := Result + dx * (F(x) + 4 * F(x + dx / 2) + F(x + dx)) / 6; x := x + dx; end; end; var N: Integer; Prev: Double; begin Result := InternalCalc(A, B, F, 4); N := 4; repeat Prev := Result; N := N shl 1; Result := InternalCalc(A, B, F, N); until (Result = 0) or (Abs((Result - Prev) / Result) < Eps); end; Пример использования: function F(X: Double): Double; begin Result := X * X * X; end; procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := FloatToStr(Integral(-10, 10, 0.00001, F)); end; Статья Вычисление определённого интеграла методом Симпсона раздела Синтаксис Математика может быть полезна для разработчиков на Delphi и FreePascal. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Математика ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |