exponenta event banner

quad

(Не рекомендуемый) Численно оцените интегральную, адаптивную квадратуру Симпсона

quad не рекомендуется. Использовать integral вместо этого.

Синтаксис

q = quad(fun,a,b)
q = quad(fun,a,b,tol)
q = quad(fun,a,b,tol,trace)
[q,fcnt] = quad(...)

Описание

Квадратура - это численный метод, используемый для нахождения области под графиком функции, то есть для вычисления определенного интеграла.

q=abf(x) dx

q = quad(fun,a,b) пытается аппроксимировать интеграл функции fun от a на b в пределах ошибки 1e-6 использование рекурсивной адаптивной квадратуры Симпсона. fun является указателем на функцию. Значения пределов a и b должно быть конечным. Функция y = fun(x) должен принять вектор аргумент x и возвращает вектору результат y, интеграция и оценка по каждому элементу x.

Параметризация функций объясняет, как предоставить дополнительные параметры функции fun, при необходимости.

q = quad(fun,a,b,tol) использует абсолютный допуск ошибок tol вместо значения по умолчанию, которое 1.0e-6. Большие значения tol привести к меньшему количеству вычислений функции и более быстрым расчетам, но менее точным результатам. В MATLAB® версии 5.3 и более ранних, quad функция использовала менее надежный алгоритм и относительную погрешность по умолчанию 1.0e-3.

q = quad(fun,a,b,tol,trace) с ненулевым trace показывает значения    [fcnt a b-a Q] во время рекурсии.

[q,fcnt] = quad(...) возвращает количество вычислений функции.

Функция quadl может быть более эффективным с высокими точностями и плавными интеградами.

Список ниже содержит информацию, которая поможет вам определить, какую квадратурную функцию в 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, и добавить результаты.

Примеры

Чтобы вычислить интеграл

021x32x5dx,

написание функции myfun который вычисляет интегранд:

function y = myfun(x) 
y = 1./(x.^3-2*x-5);

Затем передайте @myfun, указатель на функцию для myfunКому quad, наряду с пределами интегрирования, 0 на 2:

Q = quad(@myfun,0,2)

Q =

   -0.4605

Кроме того, можно передать интегранд quad как указатель анонимной функции F:

F = @(x)1./(x.^3-2*x-5);
Q = quad(F,0,2); 

Диагностика

quad может выдать одно из следующих предупреждений:

'Minimum step size reached' указывает, что рекурсивное подразделение интервала произвело подынтервал, длина которого находится в порядке округления ошибки в длине исходного интервала. Неинтегрируемая особенность возможна.

'Maximum function count exceeded' указывает, что интегранд был оценен более 10 000 раз. Вероятна неинтегрируемая особенность.

'Infinite or Not-a-Number function value encountered' указывает переполнение с плавающей точкой или деление на нули во время оценки интегранда во внутреннем пространстве интервала.

Алгоритмы

quad реализует метод низкого порядка точности, используя адаптивное рекурсивное правило Симпсона.

Ссылки

[1] Gander, W. and W. Gautschi, «Adaptive Quadrature - Revisited», БИТ, Vol. 40, 2000, pp. 84-101. Этот документ также доступен в https://people.inf.ethz.ch/gander/.

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