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 путем определения waypoints.

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

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

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

Примечание

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

Советы

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

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

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

Ссылки

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

Расширенные возможности

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