integral

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

Описание

пример

q = integral(fun,xmin,xmax) численно интегрирует функции fun от xmin на xmax использование глобальных адаптивных квадратурных и допусков ошибок по умолчанию.

пример

q = integral(fun,xmin,xmax,Name,Value) задает дополнительные опции с одним или несколькими Name,Value аргументы в виде пар. Для примера задайте 'WayPoints' далее следует вектор вещественных или комплексных чисел, чтобы указать конкретные точки для использования интегратором.

Примеры

свернуть все

Создайте функцию f(x)=e-x2(lnx)2.

fun = @(x) exp(-x.^2).*log(x).^2;

Вычислите интеграл из x=0 на x=Inf.

q = integral(fun,0,Inf)
q = 1.9475

Создайте функцию f(x)=1/(x3-2x-c) с одним параметром, c.

fun = @(x,c) 1./(x.^3-2*x-c);

Вычислите интеграл из x=0 на x=2 при c=5.

q = integral(@(x) fun(x,5),0,2)
q = -0.4605

Смотрите Параметризацию Функций для получения дополнительной информации об этом методе.

Создайте функцию f(x)=ln(x).

fun = @(x)log(x);

Вычислите интеграл из x=0 на x=1 с допусками ошибок по умолчанию.

format long
q1 = integral(fun,0,1)
q1 = 
  -1.000000010959678

Снова оцените интеграл, на этот раз с 12 десятичными знаками точности. Задайте RelTol в нуль так, что integral пытается удовлетворить только абсолютный допуск ошибок.

q2 = integral(fun,0,1,'RelTol',0,'AbsTol',1e-12)
q2 = 
  -1.000000000000010

Создайте функцию f(z)=1/(2z-1).

fun = @(z) 1./(2*z-1);

Интегрирование в комплексной плоскости по треугольному пути от 0 на 1+1i на 1-1i на 0 путем определения путевых точек.

q = integral(fun,0,0,'Waypoints',[1+1i,1-1i])
q = 0.0000 - 3.1416i

Создайте векторную функцию f(x)=[sinx,sin2x,sin3x,sin4x,sin5x] и интегрироваться из x=0 на x=1. Задайте 'ArrayValued',true чтобы вычислить интеграл функции с массивом или векторным значением.

fun = @(x)sin((1:5)*x);
q = integral(fun,0,1,'ArrayValued',true)
q = 1×5

    0.4597    0.7081    0.6633    0.4134    0.1433

Создайте функцию f(x)=x5e-xsinx.

fun = @(x)x.^5.*exp(-x).*sin(x);

Вычислите интеграл из x=0 на x=Inf , корректировка абсолютных и относительных погрешностей.

format long
q = integral(fun,0,Inf,'RelTol',1e-8,'AbsTol',1e-13)
q = 
 -14.999999999998364

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

свернуть все

Интегранд, заданный как указатель на функцию, который задает функцию, которая будет интегрирована с xmin на xmax.

Для скалярных задач функция y = fun(x) должен принять вектор аргумент, xи возвращает вектору результат, y. Это обычно означает, что fun необходимо использовать операторы массивов вместо матричных. Для примера используйте .* (times), а не * (mtimes). Если вы задаете 'ArrayValued' опция для true, затем fun необходимо принять скаляр и вернуть массив фиксированного размера.

Нижний предел x, заданный как действительное (конечное или бесконечное) скалярное значение или комплексное (конечное) скалярное значение. Если либо xmin или xmax являются комплексными, тогда integral аппроксимирует интеграл пути из xmin на xmax по прямой линии пути.

Типы данных: double | single
Поддержка комплексного числа: Да

Верхний предел x, заданный как вещественное число (конечное или бесконечное) или комплексное число (конечное). Если либо xmin или xmax являются комплексными, integral аппроксимирует интеграл пути из xmin на xmax по прямой линии пути.

Типы данных: double | single
Поддержка комплексного числа: Да

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

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

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

Абсолютный допуск ошибки, заданный как разделенная разделенными запятой парами, состоящая из 'AbsTol' и неотрицательное вещественное число. integral использует абсолютный допуск ошибки, чтобы ограничить оценку абсолютной ошибки, |<reservedrangesplaceholder3> - Q |, где q - вычисленное значение интеграла, а Q - (неизвестное) точное значение.integral может обеспечить больше десятичных знаков точности, если вы уменьшите абсолютный допуск ошибки.

Примечание

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

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

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

Относительная погрешность, заданный как разделенная разделенными запятой парами, состоящая из 'RelTol' и неотрицательное вещественное число. integral использует допуск относительной погрешности, чтобы ограничить оценку относительной погрешности, | q - Q | / | Q |, где q - вычисленное значение интеграла, и Q (неизвестное) точное значение. integral может обеспечить более значимые цифры точности, если вы уменьшите допуск относительной погрешности.

Примечание

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

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

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

Флаг функции, заданный как разделенная разделенными запятой парами, состоящая из 'ArrayValued' и числовое или логическое 1 (true) или 0 (false). Установите этот флаг равным true или 1 чтобы указать, что fun является функцией, которая принимает скалярный вход и возвращает вектор, матрицу или N-D выход массива.

Значение по умолчанию false указывает, что fun является функцией, которая принимает вход вектора и возвращает вывод вектора.

Пример: integral(fun,a,b,'ArrayValued',true) указывает, что integrand является функцией с массивом значений.

Интеграционные путевые точки, заданные как разделенная разделенными запятой парами, состоящая из 'Waypoints' и вектор вещественных или комплексных чисел. Используйте путевые точки, чтобы указать точки в интервале интегрирования, которые вы хотели бы, чтобы интегратор использовал в начальном mesh:

  • Добавьте больше точек оценки рядом с интересными функциями функции, такими как локальная экстрема.

  • Эффективно интегрироваться между разрывами интегранда, определяя местоположения разрывов.

  • Выполните комплексные интегрирования контуров путем определения комплексных чисел в качестве путевых точек. Если xmin, xmax, или любой вход вектора путевых точек комплексен, тогда интегрирование выполняется по последовательности прямой линии путей в комплексной плоскости. В этом случае все пределы интегрирования и точки пути должны быть конечными.

Не используйте путевые точки для задания особенностей. Вместо этого разделите интервал и добавьте результаты отдельных интегрирований с особенностями в конечных точках.

Пример: integral(fun,a,b,'Waypoints',[1+1i,1-1i]) задает две сложные точки пути вдоль интервала интегрирования.

Типы данных: single | double
Поддержка комплексного числа: Да

Совет

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

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

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

Ссылки

[1] Векторизованная адаптивная квадратура L.F. Shampine в MATLAB®, "Journal of Computational and Applied Mathematics, 211, 2008, pp.131-140.

Введенный в R2012a