Romberg integración numérica utiliza Intergration trapenzoidal para aumentar la precisión del cálculo de un área. Se acumula una matriz usando la regla trapenzoidal luego se extiende para calcular una respuesta más precisa.
El script que he hecho para la regla del trapecio es en el siguiente enlace. El guión de la integración de Romberg tiene el guión trpezoidal incorporado en el cálculo de la primera columna
>>> trapezoidal Estado de Integración Numérica -.
Scripts Matlab
La primera columna se calcula utilizando la regla de trapenzoidal la integración en el que el número de áreas de la función se divide en incrementos de 2 cada vez:
Fila 1: n = 1, Fila 2: n = 2, Fila 3: n = 4, Fila 4: n = 8 ... 16 ... 32 ...
En cuanto a las otras columnas, que se calculan utilizando los valores de la columna a la izquierda.
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 =
,888510987494519 0 0 0 0 0 ,898904207160100 ,902368613715294 ,901644861268860 ,902558412638446 ,902571065899989 0 ,902337806742469 ,902568788567005 ,902569480295576 ,902569455127252
ans =
,902569455127252
continueing abajo, la respuesta más precisa es la parte inferior derecha
Función I = romberg (f_str, a, b, n)% Integración ROMBERG Romberg Regla.
% I = ROMBERG (F_STR, A, B, N) devuelve la integración de Romberg aproximación% para la integral de f ( x) desde x = a hasta x = B, para n capas, donde% F_STR es la representación de cadena de f. También muestra la matriz utilizada para calcular el% inegral
= matriz de ceros (n.), G = inline (f_str);
si (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); terminar
matriz (ii, 1) = matriz (ii, 1) + g (b); matriz (ii, 1) = matriz (ii, 1) * h /2; endfor jj = 2 n para ii = jj n matriz (ii, jj) = ((4 ^ (1 jj)) * matriz (ii, jj-1) -matrix (ii-1, jj-1)) /((4 ^ (jj-1)) - 1); endend
cosa disp ('número de capas necesarias para ser un Integer') endmatrix = matrixI = matriz (n, n);
< p >>>> Estado de Integración Numérica d