Simpsons regel och trapetsregeln för numerisk integration beräknar arean under en funktion genom att bryta funktionen upp i många mindre områden som är lättare att beräkna Omdömen
>> trapets ('sin (x) /x', 1,3,8) Review
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) katalog
= 0,902338 Omdömen
trapezoidregeln för numerisk integration med hjälp av trapazoids att beräkna arean under funktion. Varje trapazoid modeller en linjär linje mellan två punkter på funktion och beräknar arean under linjen.
>> simprule ('sin (x) /x', 1,3 , 8) Review
ans = Omdömen
,902568788567005 Omdömen
Istället för att använda linjära linjer för att modellera funktionen beräknar Simpsons regel området genom modellering ett polynom till funktionen. Detta polynom är exakt för andra polynom av grad 2 och 3.
Omdömen
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 = trapets (f_str, a, b, n) % trapetsformig trapezoidregeln integrationen.% I = trapets (F_STR, A, B, N) returnerar trapetsregeln approximationen% för integralen av f (x) från x = a till x = B, med användning av N delintervall, där% F_STR är strängbeteckningen för f Omdömen
I = 0;.
g = inline (f_str); h = (ba) /n, Omdömen
I = I + g (a);
< p> för ii = (a + h): h: (bh) I = I + 2 * g (ii); slutet Omdömen
I = I + g (b), I = I * h /2 ;.
funktions I = simprule (f_str, a, b, n)% SIMPRULE Simpsons regel integrations% I = SIMPRULE (F_STR, A, B, N) avkastning Simpsons regel approximation% för integralen av f (x) från x = A till x = B, med hjälp av N delintervallen, där% F_STR är strängbeteckningen för f.% Ett fel genereras om N är inte ett positivt, även heltal .
I = 0, g = inline (f_str), h = (ba) /n;
if ((n> 0) && (rem (n, 2) == 0 )) I = I + g (a); för ii = (a + h): 2 * h: (bh) I = I + 4 * g (ii); avsluta för kk = (a + 2 * h): 2 * h: (b-2 * H) I = I + 2 * g (kk); end I = I + g (b);
I = I * h /3, annars disp ('Felaktigt värde för N') end Omdömen