exponenta event banner

quadv

(Не рекомендуемый) Векторизованная квадратура

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 со знаком массива.

  • Если интервал бесконечен, [a,), затем для интеграла 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);

Представлено до R2006a