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 между a = 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