Romberg numerisk integration bruger trapenzoidal Integration for at øge nøjagtigheden af beregningen af et område. Det opbygger en matrix ved hjælp af trapenzoidal reglen derefter strækker sig til at beregne en mere præcis svar.
Scriptet jeg har lavet til den trapezformede regel er på følgende link. Scriptet til Romberg integration har trpezoidal script i bygget ved beregning den første kolonne
>>> trapezreglen af numerisk integration -.
Matlab scripts
Den første kolonne er beregnet ved hjælp af trapenzoidal regel for integration, hvor antallet af områder funktionen brudt op i stiger med 2 hver gang:
Row 1: n = 1, række 2: n = 2, Række 3: n = 4, Række 4: n = 8 ... 16 ... 32 ...
Som for de andre kolonner, er de beregnet ved hjælp af værdierne i kolonnen til venstre.
R (i, j) = ((4 ^ j) -R (i, j-1) - R (I-1, j-1)) /((4 ^ j) -1)
R (1,1) = (4 * R (1,0) - H (0,0)) /(4-1)
= (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 =
,902569455127252
continueing ned, den mest præcise svar er nederst til højre en
Matlab script
funktionen I = Romberg (f_str, a, b, n)% integration Romberg Romberg Regel.% I = Romberg (f_str, A, B, N) returnerer Romberg Integration tilnærmelse% for integralet af f ( x) fra x = A til x = B, til n lag, hvor% f_str er den streng repræsentation af f. Også viser matricen bruges til% beregne inegral
matrix = nuller (n).
G = inline (f_str)
if (rem (n, 1) == 0) til ii = 1: n h = (ba) /(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); ende
matrix (II, 1) = matrix (II, 1) + g (b); matrix (II, 1) = matrix (II, 1) * h /2; EndFor jj = 2: n for ii = jj: n matrix (ii, jj) = ((4 ^ (jj-1)) * matrix (II, jj-1) -matrix (ii-1, jj-1)) /((4 ^ (jj-1)) - 1); endend
ellers disp ('Antal Lag der kræves for at være et heltal) endmatrix = matrixI = matrix (n, n);
< p >>>> Simpsons regel og trapezreglen af numerisk integration - Matlab scripts
>>> Lagrange Metode og N
Hvad der virkelig…