Numerical integration: Difference between revisions

No edit summary
Line 165:
Sum : Scalar := F(A) + F(B);
X : Scalar := 1.0;
begin
while X <= Scalar (N) - 1.0 loop
Sum := Sum + 2.0 * F (A + X * (B - A) / Scalar (N));
Line 175:
function Simpsons (A, B : Scalar; N : Positive) return Scalar is
H : constant Scalar := (B - A) / Scalar (N);
Sum_1Sum_U : Scalar := 0.0;
Sum_2Sum_E : Scalar := 0.0;
begin
for I in 01 .. N - 1 loop
Sum_1if :=I Sum_1mod +2 F (A + H * Scalar (I) +/= 0.5 * H);then
Sum_2 Sum_U := Sum_2Sum_U + F (A + H * Scalar (I));
else
Sum_E := Sum_E + F (A + H * Scalar (I));
end if;
end loop;
return (H / 63.0) * (F (A) + F (B) + 4.0 * Sum_1Sum_U + 2.0 * Sum_2Sum_E);
end Simpsons;
end Integrate;</lang>
Anonymous user