Romberg numerisk integration använder trapenzoidal integrationsprojektet att öka noggrannheten för att beräkna ett område. Det bygger upp en matris med trapenzoidal regeln sedan sträcker sig för att beräkna en mer exakt svar. Omdömen
Skriptet jag har gjort för trapetsregeln är på följande länk. Skriptet för Romberg integration har trpezoidal manus inbyggd vid beräkningen av första kolumnen Omdömen
>>> trapezoidregeln för numerisk Integration -.
Matlab skript Omdömen
Den första kolumnen beräknas enligt trapenzoidal regeln för integration där antalet områden funktionen bryts upp i ökar med 2 varje gång:
Varv 1: n = 1, Varv 2: n = 2, Varv 3: n = 4, rad 4: n = 8 ... 16 ... 32 ... Omdömen
När det gäller de övriga kolumner, har beräknats med hjälp av värdena i kolumnen till vänster.
Omdömen
R (i, j) = ((4 ^ j) -R (i, j-1) - R (i-1, j-1)) /((4 ^ j) -1) Review
R (1,1) = (4 * R (1,0) - R (0,0)) /(4-1) Review
= (4 (0,898904) - 0,888511) /3 Omdömen
= 0,902368
>> Romberg ('sin (x) /x', 1,3,4) katalog
matris =
0,888510987494519 0 0 0 0,898904207160100 0,902368613715294 0 0 0,901644861268860 0,902558412638446 0,902571065899989 0 0,902337806742469 0,902568788567005 0,902569480295576 0,902569455127252
ans =
,902569455127252
continueing ner, är den mest exakta svaret det nedre högra en
Matlab skrivar
funktionen I = Romberg (f_str, a, b, n)% Romberg Romberg Regel integrering.% I = Romberg (F_STR, A, B, N) returnerar Romberg Integrations approximationen% för integralen av f ( x) från x = A till x = B, till n skikt, där% F_STR är strängbeteckningen för f. Visar också den matris som används till% beräkna inegral Omdömen
matrix = nollor (n),.
G = inline (f_str), Omdömen
om (rem (n, 1) == 0) för II = 1: n h = (ba) /(2 ^ (II-1)); matris (II, 1) = matris (ii, 1) + g (a);
för kk = (a + h): h: (bh) matris (II, 1) = matris (II, 1) + 2 * g (kk); avsluta
matris (ii, 1) = matris (ii, 1) + g (b); matris (II, 1) = matris (ii, 1) * h /2; EndFor jj = 2: n för ii = jj: n matris (II, jj) = ((4 ^ (jj-1)) * matris (II, JJ-1) -matris (II-1, jj-1)) /((4 ^ (jj-1)) - 1); endend
annat disp ('Antal skikt som krävs för att vara en Integer') endmatrix = matrixI = matrix (n, n); Omdömen
< p >>>> Simpsons regel och trapetsregeln för numerisk integration - Matlab skript