Numerical integration: Difference between revisions
Content added Content deleted
MaiconSoft (talk | contribs) No edit summary |
|||
Line 165: | Line 165: | ||
Sum : Scalar := F(A) + F(B); |
Sum : Scalar := F(A) + F(B); |
||
X : Scalar := 1.0; |
X : Scalar := 1.0; |
||
begin |
begin |
||
while X <= Scalar (N) - 1.0 loop |
while X <= Scalar (N) - 1.0 loop |
||
Sum := Sum + 2.0 * F (A + X * (B - A) / Scalar (N)); |
Sum := Sum + 2.0 * F (A + X * (B - A) / Scalar (N)); |
||
Line 175: | Line 175: | ||
function Simpsons (A, B : Scalar; N : Positive) return Scalar is |
function Simpsons (A, B : Scalar; N : Positive) return Scalar is |
||
H : constant Scalar := (B - A) / Scalar (N); |
H : constant Scalar := (B - A) / Scalar (N); |
||
Sum_U : Scalar := 0.0; |
|||
Sum_E : Scalar := 0.0; |
|||
begin |
begin |
||
for I in |
for I in 1 .. N - 1 loop |
||
if I mod 2 /= 0 then |
|||
Sum_U := Sum_U + F (A + H * Scalar (I)); |
|||
else |
|||
Sum_E := Sum_E + F (A + H * Scalar (I)); |
|||
end if; |
|||
end loop; |
end loop; |
||
return H / |
return (H / 3.0) * (F (A) + F (B) + 4.0 * Sum_U + 2.0 * Sum_E); |
||
end Simpsons; |
end Simpsons; |
||
end Integrate;</lang> |
end Integrate;</lang> |