WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Метод прямоугольников — метод численного интегрирования функции одной переменной, заключающийся в замене подынтегральной функции на многочлен нулевой степени, то есть константу, на каждом элементарном отрезке. Если рассмотреть график подынтегральной функции, то метод будет заключаться в приближённом вычислении площади под графиком суммированием площадей конечного числа прямоугольников, ширина которых будет определяться расстоянием между соответствующими соседними узлами интегрирования, а высота — значением подынтегральной функции в этих узлах. Алгебраический порядок точности равен 0. (Для формулы средних прямоугольников равен 1).

Если отрезок является элементарным и не подвергается дальнейшему разбиению, значение интеграла можно найти по

  1. Формуле левых прямоугольников:
  2. Формуле правых прямоугольников:
  3. Формуле прямоугольников (средних):

Составные квадратурные формулы

В случае разбиения отрезка интегрирования на элементарных отрезков приведённые выше формулы применяются на каждом из этих элементарных отрезков между двумя соседними узлами. В результате, получаются составные квадратурные формулы

  1. Для левых прямоугольников:
  2. Для правых прямоугольников:
  3. Для средних прямоугольников:

Формулу с вычислением значения в средней между двумя узлами точке можно применять лишь тогда, когда подынтегральная функция задана аналитически, либо каким-нибудь иным способом, допускающим вычисление значения в произвольной точке. В задачах, где функция задана таблицей значений остаётся лишь вычислять среднее значение между интегралами, посчитанными по формулам левых и правых прямоугольников соответственно, что приводит к составной квадратурной формуле трапеций.

Поскольку составные квадратурные формулы являются ни чем иным, как суммами, входящими в определение интеграла Римана, при они сходятся к точному значению интеграла. Соответственно, с увеличением точность получаемого по приближённым формулам результата возрастает.


Метод средних прямоугольников

Составные формулы для равномерных сеток

Равномерную сетку можно описать следующим набором формул:

где  — шаг сетки.

Для равномерных сеток формулы прямоугольников можно записать в виде следующих формул Котеса:

  1. Составная формула левых прямоугольников:
  2. Составная формула правых прямоугольников:
  3. Составная формула средних прямоугольников если нет возможности изменять точки в которых вычисляется значение функции выглядит так Т.е. (с точностью до рисунка) превращается в формулу трапеций. Если же есть возможность выбирать точки в которых задано значение функции, то

Погрешность метода

Для формул правых и левых прямоугольников погрешность составляет

Для формулы прямоугольников (средних)

Для составных формул правых и левых прямоугольников на равномерной сетке:

Для составной формулы прямоугольников:

Пример реализации

Формула средних прямоугольников для аналитически заданной функции, написанная на С

#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 .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии