Rule en Simpson Trapezium Regel van numerieke integratie berekent het gebied onder een functie door het breken van de functie op in vele kleinere gebieden die zijn gemakkelijker te berekenen
>> trapeziumvormige ('sin (x) /x', 1,3,8)
ans =
0,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
Trapezium Regel voor numerieke integratie met trapazoids het gebied onder de functie te berekenen.
Elke trapazoid modellen een lineaire lijn tussen twee punten op de functie en berekent het gebied onder de lijn.
>> simprule ('sin (x) /x', 1,3 , 8)
ans =
0,902568788567005
In plaats van lineaire lijnen naar de functie model berekent Rule Simpson het gebied door het modelleren van een polynoom van de functie. Dit polynoom is nauwkeurig voor andere veeltermen van graad 2 en 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
functie I = trapeziumvormige (f_str, a, b, n) % trapeziumvormige Trapezium Regel integratie.% I = trapeziumvormige (f_str, A, B, N) geeft de Trapezium Regel benadering% van de integraal van f (x) van x = A naar x = B, met behulp van N subintervallen, waarbij% f_str is de string representatie van 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) end
I = I + g (b), I = I * h /2 ;.
functie I = simprule (f_str, a, b, n)% SIMPRULE Simpson regel integratie% I = SIMPRULE (f_str, A, B, N) terug de Simpson regel benadering% van de integraal van f (x) van x = A naar x = B, met behulp van N subintervallen, waarbij% f_str is de string representatie van f.% een fout wordt gegenereerd als N is niet een positief, zelfs integer .
I = 0; g = inline (f_str); h = (ba) /n;
als ((n> 0) && (rem (n, 2) == 0 )) I = I + g (a); voor ii = (a + h): 2 * h: (BH) I = I + 4 * g (ii); end KK = (a + 2 * h) 2 * h: (b-2 * h) I = I + 2 * g (KK); end I = I + g (b);
I = I * h /3; anders disp ('onjuiste waarde voor N') eind
>>> Romberg Numerieke Integratie - Matlab Script
>>> Lagr