(Не рекомендуемый) Векторизованная квадратура
quadv не рекомендуется. Использование integral с 'ArrayValued' опция вместо этого.
Q = quadv(fun,a,b)
Q = quadv(fun,a,b,tol)
Q = quadv(fun,a,b,tol,trace)
[Q,fcnt] = quadv(...)
Q = quadv(fun,a,b) аппроксимирует интеграл функции со знаком комплексного массива fun от a к b к в ошибке 1.e-6 использование рекурсивной адаптивной квадратуры Симпсона. fun указатель на функцию. Функциональный Y = fun(x) должен принять скалярный аргумент x и возвратите результат массивов Y, чьи компоненты являются подынтегральными выражениями, оцененными в x. Пределы a и b mustBeFinite.
Параметризация Функций объясняет, как предоставить параметры сложения функциональному fun, при необходимости.
Q = quadv(fun,a,b,tol) использует допуск абсолютной погрешности tol для всех интегралов вместо значения по умолчанию, которое является 1.e-6.
Примечание
Тот же допуск используется для всех компонентов, таким образом, результаты, полученные с quadv обычно не то же самое как полученные с quad на отдельных компонентах.
Q = quadv(fun,a,b,tol,trace) с ненулевым trace показывает значения [fcnt a b-a Q(1)] во время рекурсии.
[Q,fcnt] = quadv(...) возвращает количество вычислений функции.
Список ниже содержит информацию, чтобы помочь вам определить, какая квадратура функционируют в MATLAB® использовать:
quad функциональная сила быть самым эффективным для низкой точности с несглаженными подынтегральными выражениями.
quadl функциональная сила быть более эффективным, чем quad в более высокой точности со сглаженными подынтегральными выражениями.
quadgk функциональная сила быть самым эффективным для высокой точности и колебательных подынтегральных выражений. Это поддерживает бесконечные интервалы и может обработать умеренную сингулярность в конечных точках. Это также поддерживает контурное интегрирование вдоль кусочных линейных контуров.
quadv функция векторизует quad для fun со знаком массива.
Если интервал бесконечен, , затем для интеграла fun(x) существовать, fun(x) должен затухнуть как x бесконечность подходов, и quadgk требует, чтобы он затух быстро. Специальные методы должны использоваться для колебательных функций на бесконечных интервалах, но quadgk может использоваться если fun(x) затухания достаточно быстро.
quadgk функция интегрирует функции, которые сингулярны в конечных конечных точках, если сингулярность не слишком сильна. Например, это интегрирует функции, которые ведут себя в конечной точке c как log|x-c| или |x-c |p для p >= -1/2. Если функция сингулярна в точках в (a,b), запишите интеграл как сумму интегралов на подынтервалах с особыми точками как конечные точки, вычислите их с quadgk, и добавьте результаты.
Для параметрированного функционального myarrayfun со знаком массива, заданный
function Y = myarrayfun(x,n) Y = 1./((1:n)+x);
следующая команда интегрирует myarrayfun, для значения параметров n = 10 между = 0 и b = 1:
Qv = quadv(@(x)myarrayfun(x,10),0,1);
Полученный массив Qv имеет 10 элементов, оценивающих Q(k) = log((k+1)./(k)), для k = 1:10.
Записи в Qv немного отличаются, чем если бы вы вычисляете интегралы с помощью quad в цикле:
for k = 1:10 Qs(k) = quadv(@(x)myscalarfun(x,k),0,1); end
где myscalarfun :
function y = myscalarfun(x,k) y = 1./(k+x);
quad | quad2d | quadgk | quadl | dblquad | triplequad | integral | integral2 | integral3