exponenta event banner

интеграл

Численная интеграция

Описание

пример

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

Входные аргументы

свернуть все

Integrand, определяемый как дескриптор функции, который определяет функцию, которая должна быть интегрирована из 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 использует допуск абсолютной ошибки для ограничения оценки абсолютной ошибки, | q - 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) указывает, что интегранд является функцией, возвращающей значение массива.

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

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

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

  • Выполните сложную контурную интеграцию, указав комплексные числа в качестве ППМ. Если 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] Л. Ф. Шампин «Векторизированная адаптивная квадратура в MATLAB ®», Журнал вычислительной и прикладной математики, 211, 2008, стр. 131-140.

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