Simpsons regel og trapezreglen af numerisk integration beregner arealet under en funktion ved at bryde den funktion op i mange mindre områder, som er lettere at beregne.
>> trapezformet ( "sin (x) /x ', 1,3,8)
ans =
,902337806742469
I = (((3-1) /8) /2 ) [f
(1) +2 {f (1,25) + f (1,5) + f (1,75) + f
(2) + f (2,25) + f (2,5) + f (2,75)} + f
(3)]
= 0,125 [0,841471 + 2 (3,165097) +0,047040)
= 0,902338
trapezreglen til numerisk integration ved hjælp trapazoids til at beregne arealet under funktionen.
Hver trapazoid modeller en lineær linje mellem to punkter på funktionen og beregner arealet under linjen.
>> simprule ('sin (x) /x', 1,3 , 8)
ans =
,902568788567005
I stedet for at bruge lineære linjer til at modellere den funktion, Simpsons regel beregner området ved at modellere et polynomium til funktionen. Dette polynomium er præcis til andre polynomier af grad 2 og 3.
I = (((3-1) /8) /3) [f
(1) 4 {f (1,25) + f (1,75 ) + f (2,25) + f (2,75)} + 2 {f (1,5) + f
(2) + f (2,5)} + f
(3)]
= (0,25 /3) [0,841471 +4 (1.806062) +2 (1.359035) +0.047040)
= 0.902569
funktionen I = trapezformet (f_str, a, b, n) % trapezformet trapezreglen integration.% I = trapezformet (f_str, A, B, N) returnerer trapezreglen tilnærmelse% for integralet af f (x) fra x = A til x = B, ved hjælp af N underintervaller, hvor% f_str er strengen repræsentation af f
I = 0; g.
= inline (f_str), h = (ba) /n,
I = I + g (a);
< p> for ii = (a + h): h: (bh) I = I + 2 * g (ii) afslutning
I = I + g (b) I = I * h /2 ;.
funktion I = simprule (f_str, a, b, n)% SIMPRULE Simpsons regel integration% I = SIMPRULE (f_str, A, B, N) returnerer Simpson regel tilnærmelse% for integralet af f (x) fra x = A til x = B, ved hjælp af N underintervaller, hvor% f_str er den streng repræsentation af f.% En fejl genereres, hvis N er ikke en positiv, selv heltal .
I = 0; g = inline (f_str), h = (ba) /n,
if ((n> 0) && (rem (n, 2) == 0 )) I = I + g (a); for ii = (a + h): 2 * h: (bh) I = I + 4 * g (ii); ende for kk = (a + 2 * h): 2 * h: (b-2 * h) I = I + 2 * g (kk); ende I = I + g (b)
I = I * h /3, ellers disp ('Forkert værdi for N') end
>>>