Ромбергова интеграција (понекад се наводи такође као Ромбергова метода) је поступак из нумеричке анализе. Користи се када желимо нумерички да израчунамо неки интеграл, а добила је име по Вернеру Ромбергу.
Основа Ромбергове интеграције је комбинација две лоше апроксимације којом ћемо доћи до једне боље. У суштини, она представља само један вид Ричардсонове екстраполације примењене на интеграцију и трапезоидно правило.
Присетимо се грешке трапезоидног правила са
датих тачака:
![{\displaystyle T_{r}(h)={\frac {h}{2}}\left(f(x_{0})+2f(x_{1})+2f(x_{2})+\dots +2f(x_{n-1})+f(x_{n})\right)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4fa3b7c37844e4237fcfcb76cde837a9712d85e7)
![{\displaystyle h={\frac {b-a}{n}}\,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1e443ea6db5b8f67538d7b647809653a4300e84a)
![{\displaystyle I_{precizan}=\int _{a}^{b}f(x)dx=T_{r}(h)+{(b-a) \over 12}h^{2}f''(\xi )+\dots }](https://wikimedia.org/api/rest_v1/media/math/render/svg/76f40735401767f34f91f61c72eefbd2eb3ed155)
![{\displaystyle \xi \in [a,b]\,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a7de8070b8ea307392622987cbee5c976029a4ea)
Напишимо то све мало другачије:
![{\displaystyle T(h)=I_{precizan}+c_{2}\cdot h^{2}+c_{4}\cdot h^{4}+\dots }](https://wikimedia.org/api/rest_v1/media/math/render/svg/54c858e271084c57ffd777ef9cd9a6744cd3c39d)
![{\displaystyle c_{2}={(b-a) \over 12}\cdot f''(\xi ),c_{4}=\ldots }](https://wikimedia.org/api/rest_v1/media/math/render/svg/1d67a755ded3dee4c7dc9eeca2091b2f32af53c8)
А шта се дешава када преполовимо размак између тачака?
![{\displaystyle T(h/2)=I_{precizan}+c_{2}\cdot (h/2)^{2}+c_{4}\cdot (h/4)^{2}+\dots =I_{precizan}+{\frac {1}{4}}c_{2}\cdot h^{2}+{\frac {1}{16}}c_{4}\cdot h^{4}+\dots }](https://wikimedia.org/api/rest_v1/media/math/render/svg/dd5d1d24dadbce113b14dd7f6349a4628680f66e)
Очигледно је да се коефицијенти за квадратни део грешке (
) донекле преклапа; зато га можемо простом комбинацијом ове две апроксимације елиминисати:
![{\displaystyle T_{1}(h/2)={\frac {4\cdot T(h/2)-T(h)}{3}}=I_{precizan}-{\frac {1}{4}}c_{4}+\dots }](https://wikimedia.org/api/rest_v1/media/math/render/svg/cf7d700d8172c9ff9388abf2666e7e02c2570618)
Сада грешка зависи само од
! Постпупак можемо наставити и врло брзо ћемо доћи до веома прецизних резултата.
Даљим рачуном елиминишемо остале степене из грешке:
![{\displaystyle T_{n}({\frac {h}{2^{k}}})={\frac {4^{n}\cdot T_{n-1}({\frac {h}{2^{k}}})-T_{n-1}({\frac {h}{2^{k-1}}})}{2^{k}-1}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0970978776ca841bd19c49e1540e968b22219378)
На шеми се види мало јасније:
![{\displaystyle {\begin{matrix}T_{0}(h)&&&&&\\&\searrow &&&&\\T_{0}(h/2)&\rightarrow &T_{1}(h/2)&&&\\&\searrow &&\searrow &&\\T_{0}(h/4)&\rightarrow &T_{1}(h/4)&\rightarrow &T_{2}(h/4)&\\\vdots &\ddots &\vdots &\ddots &\vdots &\ddots \\\end{matrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b17a33e3a79bc18d1de42e9d63542abf0710f729)
Као резултат се узима увек последњи елемент на дијагонали.
Грешка Ромбергове интеграције, написана нотацијом са великим О:
.
За њену приближну вредност (за критеријум обуставе алгоритма) може се узети разлика дијагонале:
Треба међутим имати у виду да у одређеним случајевима грешка не мора да се смањује - добар пример за то су таласне функције (косинус, синус итд.). На конкретном примеру:
![{\displaystyle \int _{0}^{2\pi }f(x)*cos(2^{n}x)dx}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6d0ad079107ff15f2e7bb8461d3414abf27e5f36)
број тачака мора да будем барем
иначе ће нам интеграл увек бити једнак нули.
Ромбергова интеграција има и ту предност што грешку можемо у сваком следећем кораку да израчунамо и тако сваки пут изнова одлучимо да ли хоћемо да идемо даље или смо задовољни досадашњим резултатом.
Узмимо да желимо да израчунамо:
![{\displaystyle \int _{10}^{20}{\frac {1}{\sqrt {\pi }}}\ \mathrm {e} ^{\left({\frac {x}{3}}\right)}dx}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1fd3f7f9f6da6ebe560c1400ef450b4bd4254013)
Трапезоидно правило са две тачке нам даје:
![{\displaystyle T_{0}(h=10)=10\cdot ({\frac {1}{2}}f(10)+{\frac {1}{2}}f(20))=2295.70}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c03fdff25e9a3c30c1d0c1d6d264a6673d0d67ca)
Са три:
![{\displaystyle T_{0}(h/2=5)=5\cdot ({\frac {1}{2}}f(10)+f(15)+{\frac {1}{2}}f(20))=1566.51}](https://wikimedia.org/api/rest_v1/media/math/render/svg/816e4bc6bfb75eab5e46e9efc2046e673d3e75e2)
И са пет:
![{\displaystyle T_{0}(h/4=2.5)=2.5\cdot ({\frac {1}{2}}f(10)+f(12.5)+f(15)+f(17.5)+{\frac {1}{2}}f(20))=1355.90}](https://wikimedia.org/api/rest_v1/media/math/render/svg/39b8c36bc9fd6253f88b0b369f0000f2c2ee470b)
Када упоредимо чак и задњи резултат, грешка је још увек велика:
![{\displaystyle \int _{10}^{20}{\frac {1}{\sqrt {\pi }}}\ \mathrm {e} ^{\left({\frac {x}{3}}\right)}dx-T_{0}(h/4)=-73.38}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9583e7ce01edd3a2ed2e70bf268d3a038fb5687b)
У неким ситуацијама би таква грешка могла да буде кобна! Применимо са овим резултатима Ромбергову методу:
![{\displaystyle T_{1}(h/2)={\frac {4\cdot T_{0}(h/2)-T_{0}(h)}{3}}={\frac {4\cdot 1566.51-2295.70}{3}}=1323.45}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4e2d66f47e89376939e460a06333fa90eb96e78c)
Грешка је
, још увек недовољно прецизно за наше потребе. Идемо још један корак даље:
![{\displaystyle T_{1}(h/4)={\frac {4\cdot T_{0}(h/4)-T_{0}(h/2)}{3}}={\frac {4\cdot 1355.90-1566.51}{3}}=1285.70}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5f08050ff970ef2cb2745a14c136b0a262410e38)
![{\displaystyle T_{2}(h/4)={\frac {4^{2}\cdot T_{1}(h/4)-T_{1}(h/2)}{4^{2}-1}}=1283.18}](https://wikimedia.org/api/rest_v1/media/math/render/svg/78e323f27e056a0b83955529c7a3374529ffa49b)
Грешка на крају: -0.65 ! Са само пет тачака смо добили изузетно прецизан резултат. Када бисмо желели да постигнемо исти резултат простим трапезоидним правилом, требало би нам око 50 тачака.