(Не рекомендуемый) Векторизованная квадратура
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 должны быть конечными.
Параметризация Функций объясняет, как предоставить параметры сложения функциональному 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);
dblquad | integral | integral2 | integral3 | quad | quad2d | quadgk | quadl | triplequad