Romberg integração numérica usa intergration trapenzoidal para aumentar a precisão do cálculo de uma área. Constrói-se uma matriz utilizando a regra trapenzoidal seguida, estende-se a calcular uma resposta mais precisa.
O script que eu fiz para a regra trapezoidal é no seguinte link. O roteiro para a integração de Romberg tem o roteiro trpezoidal incorporado no cálculo da primeira coluna
>>> trapezoidal Estado de Integração Numérica -.
Scripts Matlab
A primeira coluna é calculada usando a regra para trapenzoidal integração, onde o número de áreas a função é dividida em 2 aumenta em cada tempo:
Linha 1: n = 1, linha 2: n = 2, Linha 3: n = 4, linha 4: n = 8 ... 16 ... 32 ...
Tal como para as outras colunas, os dados são calculados utilizando os valores da coluna à esquerda.
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)) /(4-1)
= (4 (0,898904) - 0,888511) /3
= 0,902368
>> romberg ('sin (x) /x', 1,3,4)
= matriz
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
continueing para baixo, a resposta mais precisa é o canto inferior direito
Matlab Script
função I = romberg (f_str, a, b, n)% de integração ROMBERG Regra Romberg.% I = ROMBERG (F_STR, A, B, N) retorna o Romberg Integração aproximação% para a integral de f ( x) de x = A = B para x, para as camadas n, onde% F_STR é a representação da cadeia de f. Também exibe a matriz utilizada para calcular a% inegral
matriz = zeros (n);.
G = inline (f_str);
if (rem (n, 1) == 0) para II = 1: n h = (ba) /(2 ^ (II-1)); matriz (ii, 1) = matriz (ii, 1) + g (a);
para kk = (a + h): h: (bh) matriz (ii, 1) = matriz (ii, 1) * + 2 g (kk); acabar
matriz (ii, 1) = matriz (ii, 1) + g (b); matriz (ii, 1) = matriz (ii, 1) * h /2; ENDFOR JJ = 2: n = II para JJ: N matriz (II, JJ) = ((4 ^ (1-jj)) * matriz (II, JJ-1) -matrix (II-1, JJ-1)) /((^ 4 (JJ-1)) - 1); endend
else disp ('número de camadas necessárias para ser um Integer') endmatrix = matrixI = matriz (n, n);
< p >>>> Estado de Integração Numérica Regra de Simpson e trapezoidal - Scripts