integral2

Численно оцените двойной интеграл

Описание

пример

q = integral2(fun,xmin,xmax,ymin,ymax) аппроксимирует интеграл функционального z = fun(x,y) по плоской области xmin ≤ x ≤ xmax и ymin(x) ≤ y ≤ ymax(x).

пример

q = integral2(fun,xmin,xmax,ymin,ymax,Name,Value) задает дополнительные опции с одним или несколькими Name,Value парные аргументы.

Примеры

свернуть все

Рассмотрите функцию

f(x,y)=1(x+y)(1+x+y)2.

Эта функция не определена когда x и y нуль. integral2 выполняет лучше всего, когда сингулярность находится на контуре интегрирования.

Создайте анонимную функцию.

fun = @(x,y) 1./( sqrt(x + y) .* (1 + x + y).^2 )
fun = function_handle with value:
    @(x,y)1./(sqrt(x+y).*(1+x+y).^2)

Объединяйтесь по треугольной области, ограниченной 0x1 и 0y1-x.

ymax = @(x) 1 - x;
q = integral2(fun,0,1,0,ymax)
q = 0.2854

Задайте функцию

f(θ,r)=rrпотому чтоθ+rsinθ(1+rпотому чтоθ+rsinθ)2

fun = @(x,y) 1./( sqrt(x + y) .* (1 + x + y).^2 );
polarfun = @(theta,r) fun(r.*cos(theta),r.*sin(theta)).*r;

Задайте функцию для верхнего предела r.

rmax = @(theta) 1./(sin(theta) + cos(theta));

Объединяйтесь по области, ограниченной 0θπ/2 и 0rrmax.

q = integral2(polarfun,0,pi/2,0,rmax)
q = 0.2854

Создайте анонимную параметризованную функцию f(x,y)=ax2+by2 параметрами a=3 и b=5.

a = 3; 
b = 5;
fun = @(x,y) a*x.^2 + b*y.^2;

Оцените интеграл по области 0x5 и -5y0. Задайте 'iterated' метод и приблизительно 10 значительных цифр точности.

format long
q = integral2(fun,0,5,-5,0,'Method','iterated',...
'AbsTol',0,'RelTol',1e-10)
q = 
     1.666666666666666e+03

Входные параметры

свернуть все

Подынтегральное выражение, определенный функцией указатель, задает функцию, которая будет интегрирована по плоской области xmin ≤ x ≤ xmax и yminX) ≤ y ≤ ymaxX). Функциональный fun должен принять два массива, одного размера, и возвратить массив соответствующих значений. Это должно выполнить поэлементные операции.

Типы данных: function_handle

Нижний предел x, заданного как действительное скалярное значение, которое или конечно или бесконечно.

Типы данных: double | single

Верхний предел x, заданного как действительное скалярное значение, которое или конечно или бесконечно.

Типы данных: double | single

Нижний предел y, заданного как действительное скалярное значение, которое или конечно или бесконечно. Можно задать ymin быть указателем на функцию (функция x) при интеграции по непрямоугольной области.

Типы данных: double | function_handle | single

Верхний предел y, заданного как действительное скалярное значение, которое или конечно или бесконечно. Также можно задать ymax быть указателем на функцию (функция x) при интеграции по непрямоугольной области.

Типы данных: double | function_handle | single

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'AbsTol',1e-12 устанавливает допуск абсолютной погрешности приблизительно на 12 десятичных разрядов точности.

Допуск абсолютной погрешности, заданный как разделенная запятой пара, состоящая из 'AbsTol' и неотрицательное вещественное число. integral2 использует допуск абсолютной погрешности, чтобы ограничить оценку абсолютной погрешности, |qQ |, где q является вычисленным значением интеграла, и Q является (неизвестным) точным значением. integral2 может обеспечить больше десятичных разрядов точности, если вы уменьшаете допуск абсолютной погрешности. Значением по умолчанию является 1e-10.

Примечание

AbsTol и RelTol работать совместно. integral2 может удовлетворить допуску абсолютной погрешности или допуску относительной погрешности, но не обязательно обоим. Для получения дополнительной информации об использовании этих допусков смотрите раздел Tips.

Пример: 'AbsTol',1e-12 устанавливает допуск абсолютной погрешности приблизительно на 12 десятичных разрядов точности.

Типы данных: double | single

Допуск относительной погрешности, заданный как разделенная запятой пара, состоящая из 'RelTol' и неотрицательное вещественное число. integral2 использует допуск относительной погрешности, чтобы ограничить оценку относительной погрешности, |qQ | / | Q |, где q является вычисленным значением интеграла, и Q является (неизвестным) точным значением. integral2 может обеспечить более значительные цифры точности, если вы уменьшаете допуск относительной погрешности. Значением по умолчанию является 1e-6.

Примечание

RelTol и AbsTol работать совместно. integral2 может удовлетворить допуску относительной погрешности или допуску абсолютной погрешности, но не обязательно обоим. Для получения дополнительной информации об использовании этих допусков смотрите раздел Tips.

Пример: 'RelTol',1e-9 устанавливает допуск относительной погрешности приблизительно на 9 значительных цифр.

Типы данных: double | single

Метод интегрирования, заданный как разделенная запятой пара, состоящая из 'Method' и один из методов, описанных ниже.

Метод интегрированияОписание
'auto'Для большинства случаев, integral2 использует 'tiled' метод. Это использует 'iterated' метод, когда любой из пределов интегрирования бесконечен. Это - метод по умолчанию.
'tiled'integral2 преобразовывает область интегрирования с прямоугольной формой и подразделяет его на меньшие прямоугольные области по мере необходимости. Пределы интегрирования должны быть конечными.
'iterated'integral2 вызовы integral выполнять повторный интеграл. Внешний интеграл оценен по xmin ≤ x ≤ xmax. Внутренний интеграл оценен по ymin(x) ≤ y ≤ ymax(x). Пределы интегрирования могут быть бесконечными.

Пример: 'Method','tiled' задает мозаичный метод интегрирования.

Типы данных: char | string

Советы

  • integral2 функционируйте пытается удовлетворить:

    abs(q - Q) <= max(AbsTol,RelTol*abs(q))
    где q вычисленное значение интеграла и Q (неизвестное) точное значение. Абсолютные и относительные допуски обеспечивают способ обменять точность и время вычисления. Обычно, относительный допуск определяет точность интегрирования. Однако, если abs(q) достаточно мал, абсолютный допуск определяет точность интегрирования. Необходимо обычно задавать и абсолютные и относительные допуски вместе.

  • 'iterated' метод может быть более эффективным, когда ваша функция имеет разрывы в области интегрирования. Однако лучшая производительность и точность происходят, когда вы разделяете интеграл в точках разрыва и суммируете результаты нескольких интегрирований.

  • Когда интеграция по непрямоугольным областям, лучшей производительности и точности происходит когда yminymax , (или оба), указатели на функцию. Постарайтесь не устанавливать значения функции подынтегрального выражения обнулять, чтобы объединяться по непрямоугольной области. Если необходимо сделать это, задайте 'iterated' метод.

  • Используйте 'iterated' метод, когда yminymax , (или оба), неограниченные функции.

  • При параметризации анонимных функций, иметь в виду, что значения параметров сохраняются для жизни указателя на функцию. Например, функциональный fun = @(x,y) x + y + a использует значение a в то время fun был создан. Если вы позже решаете изменить значение a, необходимо переопределить анонимную функцию с новым значением.

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

Ссылки

[1] Л.Ф. Шемпин “Векторизовал Адаптивную Квадратуру в MATLAB®”, Журнал Вычислительной и Прикладной математики, 211, 2008, pp.131–140.

[2] Л.Ф. Шемпин, "Программа MATLAB для Квадратуры в 2D". Прикладная математика и Расчет. Издание 202, Выпуск 1, 2008, стр 266–274.

Представленный в R2012a

Для просмотра документации необходимо авторизоваться на сайте