*   >> Læs Uddannelse artikler >> education >> college and university

Romberg numerisk integration - Matlab Script

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

Romberg Numerisk integration -.

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);

Andre Matlab Scripts jeg har skabt, omfatter:

< p >>>> Simpsons regel og trapezreglen af ​​numerisk integration - Matlab scripts

>>> Lagrange Metode og N

Page   <<       [1] [2] >>

Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.