![]() |
![]() ![]() ![]() ![]() |
|
Вычисление определённого интеграла методом Симпсона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. Метод используется для приблизительного вычисления значения определенного интеграла. Вот разбивка кода:
Пример использования демонстрирует, как использовать эту функцию для вычисления интеграла кубической функции Некоторые предложения по улучшению:
В целом, этот код предоставляет хороший старт для реализации метода Симпсона в Delphi. С некоторыми дополнительными улучшениями он мог бы быть еще более полезен и надежным. Метод Симпсона для вычисления определенного интеграла с заданной относительной точностью на примере программирования в языке Delphi. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Математика ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||