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

  • Если интервал бесконечен, [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