![]() |
![]() |
||||
![]() | |||||
![]() |
![]() АЛГОРИТМЫ Новости Рассылка новостей Форум AlgoPascal Редактор блок-схем Статьи О сайте Контакты |
![]() |
![]() Интегрирование методом трапеций с оценкой точностиСобственное значение определенного интеграла находится методом трапеций. Отрезок [a, b] разбивается на n частей x0 =a, x1 =a+h, ..., xn =b с шагом h=(b-a)/n. На каждом отрезке [xi , xi+1 ] вычисляется значения интеграла по формуле трапеций, таким образом: Затем количество точек разбиения удваивается и производится оценка точности вычислений: Rn = |S2n -Sn |/3Если Rn > e, то количество точек разбиения удваивается. Для уменьшения времени, затрачиваемого на вычисления в алгоритме при получении S2n используется формула: Если нашли ошибку в алгоритме - сообщите! Реализации алгоритма на различных языках:![]() ![]() ![]() Блоксхемы:![]() ![]() Реализация алгоритма на AlgoPascal:unit IntegralTrapUnit; declaration (* интегрируемая функция *) function F(X:Real):Real; interface IntegralTrap; implementation (********************************************************* Интегрирование методом трапеций с оценкой точности. Считается интеграл функции F на отрезке [a,b] с погрешностью порядка Epsilon. function IntegralTrap(a:Real;b:Real;Epsilon:real):real; *********************************************************) function IntegralTrap( const a : Real; const b : Real; const Epsilon:Real):Real; var i : Integer; n : Integer; h : Real; s1 : Real; s2 : Real; begin n:=1; h:=b-a; s2:=h*(F(a)+F(b))/2; repeat s1:=s2; s2:=0; i:=1; repeat s2:=s2+F(a-h/2+h*i); i:=i+1; until not(i<=n); s2:=s1/2+s2*h/2; n:=2*n; h:=h/2; until not(AbsReal(s2-s1)>3*Epsilon); Result:=s2; end; end. |
![]() |
|
|
![]() |