Romberg numerieke integratie gebruikt trapenzoidal intergratie de nauwkeurigheid van berekening van een gebied te vergroten. Het bouwt een matrix met behulp van de trapenzoidal regel dan strekt zich uit tot een nauwkeuriger antwoord te berekenen.
Het script heb ik gemaakt voor de Trapezium Regel is op de volgende link. Het script voor de Romberg integratie heeft de trpezoidal script gebouwd bij de berekening van de eerste kolom
>>> Trapezium Regel van numerieke integratie -.
Matlab Scripts
De eerste kolom wordt berekend op basis van de trapenzoidal regel voor integratie waar het aantal gebieden de functie is opgedeeld in stijgt met 2 telkens:
Row 1: n = 1, Rij 2: n = 2, Rij 3: n = 4, Rij 4: n = 8 ... 16 ... 32 ...
Wat de andere kolommen, worden deze berekend door de waarden van de kolom links.
R (i, j) = ((4 ^ j) -R (i, j-1) - R (i-1, j-1)) /((4 ^ j) -1)
R (1,1) = (4 * R (1,0) - R (0,0)) /(01/04)
= (4 (0,898904) - 0,888511) /3
= 0,902368
>> Romberg ('sin (x) /x', 1,3,4)
matrix =
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 =
0,902569455127252
nog voortdurend naar beneden, de meest nauwkeurige antwoord is rechtsonder een
Matlab Script
functie I = Romberg (f_str, a, b, n)% ROMBERG Romberg Regel integratie.% I = ROMBERG (f_str, A, B, N) geeft de Romberg integratie benadering% van de integraal van f ( x) van x = A naar x = B, n lagen, waarbij% f_str is de string representatie van f. Geeft ook de matrix wordt gebruikt om% berekenen van de inegral
matrix = nullen (n).
G = inline (f_str);
als (rem (n, 1) == 0) voor ii = 1: n = h (bis) /(2 ^ (ii-1)); matrix (ii, 1) = matrix (II, 1) + g (a)
KK = (a + h): h: (bh) matrix (ii, 1) = matrix (ii, 1) + 2 * g (kk); end
matrix (II, 1) = matrix (II, 1) + g (b); matrix (ii, 1) = matrix (II, 1) * h /2; endfor jj = 2: n voor ii = jj n matrix (ii, jj) = ((4 ^ (jj-1)) * matrix (ii, jj-1) -matrix (ii-1, jj-1)) /((4 ^ (jj-1)) - 1); endend
anders disp ('Aantal lagen nodig is om een integer te zijn') endmatrix = matrixI = matrix (n, n);
< p >>>> Simpson's Rule en Trapezium Regel van numerieke integratie - Matlab Scripts
>>> Lagrange Methode en Newton Verdeeld Difference Method - Matlab Sc