Метод прямоугольников — метод численного интегрирования функции одной переменной, заключающийся в замене подынтегральной функции на многочлен нулевой степени, то есть константу, на каждом элементарном отрезке. Если рассмотреть график подынтегральной функции, то метод будет заключаться в приближённом вычислении площади под графиком суммированием площадей конечного числа прямоугольников, ширина которых будет определяться расстоянием между соответствующими соседними узлами интегрирования, а высота — значением подынтегральной функции в этих узлах. Алгебраический порядок точности равен 0. (Для формулы средних прямоугольников равен 1).
Если отрезок является элементарным и не подвергается дальнейшему разбиению, значение интеграла можно найти по
В случае разбиения отрезка интегрирования на элементарных отрезков приведённые выше формулы применяются на каждом из этих элементарных отрезков между двумя соседними узлами. В результате, получаются составные квадратурные формулы
Формулу с вычислением значения в средней между двумя узлами точке можно применять лишь тогда, когда подынтегральная функция задана аналитически, либо каким-нибудь иным способом, допускающим вычисление значения в произвольной точке. В задачах, где функция задана таблицей значений остаётся лишь вычислять среднее значение между интегралами, посчитанными по формулам левых и правых прямоугольников соответственно, что приводит к составной квадратурной формуле трапеций.
Поскольку составные квадратурные формулы являются ни чем иным, как суммами, входящими в определение интеграла Римана, при они сходятся к точному значению интеграла. Соответственно, с увеличением точность получаемого по приближённым формулам результата возрастает.
Равномерную сетку можно описать следующим набором формул:
где — шаг сетки.
Для равномерных сеток формулы прямоугольников можно записать в виде следующих формул Котеса:
Для формул правых и левых прямоугольников погрешность составляет
Для формулы прямоугольников (средних)
Для составных формул правых и левых прямоугольников на равномерной сетке:
Для составной формулы прямоугольников:
Формула средних прямоугольников для аналитически заданной функции, написанная на С
#include <stdio.h>
#include <math.h>
double InFunction(double x) //Подынтегральная функция
{
return sin(x); //Например, sin(x)
}
double CalcIntegral(double a, double b, int n)
{
int i;
double result, h;
result = 0;
h = (b - a) / n; //Шаг сетки
for(i = 0; i < n; i++)
{
result += InFunction(a + h * (i + 0.5)); //Вычисляем в средней точке и добавляем в сумму
}
result *= h;
return result;
}
int main(void)
{
double integral;
integral = CalcIntegral(0, 2, 500);
printf("The value of the integral is: %lf \n", integral);
return 0;
}
Формула средних прямоугольников для аналитически заданной функции, написанная на PHP
<?php
function InFunction($x) //Подынтегральная функция
{
return sin($x); //Например, sin(x)
}
function CalcIntegral($a, $b, $n)
{
$result = 0;
$h;
$i;
$result = 0;
$h = ($b - $a) / $n; //Шаг сетки
for($i = 0; $i < $n; $i++)
{
$result += InFunction($a + $h * ($i + 0.5)); //Вычисляем в средней точке и добавляем в сумму
}
$result *= $h;
return $result;
}
$integral = CalcIntegral(0, 2, 500);
echo $integral;
?>
Формула средних прямоугольников для аналитически заданной функции, написанная на Scheme
(define (calc-integral f a b n)
(let ((h (/ (- b a) n)))
(let loop ((sum 0) (i 0))
(if (= i n)
(* sum h)
(loop (+ sum (f (+ a (* h (+ i 0.5)))))
(+ i 1))))))
(print (calc-integral sin 0 2 500))
В этой статье не хватает ссылок на источники информации. |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .