![]() |
![]() |
||||
![]() | |||||
![]() |
![]() АЛГОРИТМЫ Новости Рассылка новостей Форум AlgoPascal Редактор блок-схем Статьи О сайте Контакты |
![]() |
![]() Вычисление интеграла методом РомбергаЗадается значение n (на первом шаге n = 2) и вычисляется приближенное значение интеграла по формуле трапеций (деленное на (b-a)): Затем число n удваивается (k раз). Каждый раз значение S (1)n запоминается в массиве T[i]. Погрешность метода имеет порядок 2n+1 (e = 1E-(2n+1)) Если нашли ошибку в алгоритме - сообщите! Реализации алгоритма на различных языках:![]() ![]() ![]() Блоксхемы:![]() ![]() Реализация алгоритма на AlgoPascal:unit RombergIntegrationUnit; declaration //интегрируемая функция function F(X:Real):Real; interface IntegralRomberg; implementation function IntegralRomberg( const A : Real; const B : Real; const K : Integer):Real; var T : array of Real; D : Real; S : Real; H : Real; X : Real; M : Real; N : Integer; I : Integer; J : Integer; begin SetBounds(T, [1, K]); d:=b-a; t[1]:=F(a)+F(b)/2; n:=1; i:=1; repeat s:=0; n:=2*n; h:=d/n; j:=1; repeat x:=a+j*h; s:=s+F(x); j:=j+2; until not(j<=n); t[i+1]:=(2*s/n+t[i])/2; m:=1; j:=i; repeat m:=4*m; t[j]:=t[j+1]+(t[j+1]-t[j])/(m-1); j:=j-1; until not(j>=1); I:=i+1; until not(i<=k); Result:=t[1]*d; end; end. |
![]() |
|
|
![]() |