(Не рекомендуемый) Численно вычислите интегральную, адаптивную квадратурную единицу Лобатто
quadl не рекомендуется. Использовать integral вместо этого.
q = quadl(fun,a,b)
q = quadl(fun,a,b,tol)
quadl(fun,a,b,tol,trace)
[q,fcnt] = quadl(...)
q = quadl(fun,a,b) аппроксимирует интеграл функции fun от a на b, в пределах ошибки 10-6 использование рекурсивной адаптивной квадратурной модели Лобатто. fun является указателем на функцию. Он принимает вектор x и возвращает вектор y, функцию fun оценивается на каждом элементе x. Значения пределов a и b должно быть конечным.
Параметризация функций объясняет, как предоставить дополнительные параметры функции fun, при необходимости.
q = quadl(fun,a,b,tol) использует абсолютный допуск ошибок tol вместо значения по умолчанию, которое 1.0e-6. Большие значения tol привести к меньшему количеству вычислений функции и более быстрым расчетам, но менее точным результатам.
quadl(fun,a,b,tol,trace) с ненулевым trace показывает значения [fcnt a b-a q] во время рекурсии.
[q,fcnt] = quadl(...) возвращает количество вычислений функции.
Используйте операторы массивов .*, ./ и .^ в определении fun чтобы его можно было оценить с помощью вектора аргумента.
Функция quad может быть более эффективным с низкими точностями или нежесткими интеграми.
Список ниже содержит информацию, которая поможет вам определить, какая квадратурная функция в 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, и добавить результаты.
Передайте указатель на функцию, @myfunКому quadl:
Q = quadl(@myfun,0,2);
где функция myfun.m является:
function y = myfun(x) y = 1./(x.^3-2*x-5);
Передайте указатель анонимной функции F кому quadl:
F = @(x) 1./(x.^3-2*x-5); Q = quadl(F,0,2);
quadl может выдать одно из следующих предупреждений:
'Minimum step size reached' указывает, что рекурсивное подразделение интервала произвело подынтервал, длина которого находится в порядке округления ошибки в длине исходного интервала. Неинтегрируемая особенность возможна.
'Maximum function count exceeded' указывает, что интегранд был оценен более 10 000 раз. Вероятна неинтегрируемая особенность.
'Infinite or Not-a-Number function value encountered' указывает переполнение с плавающей точкой или деление на нули во время оценки интегранда во внутреннем пространстве интервала.
quadl реализует метод высокого порядка, используя адаптивное квадратурное правило Гаусса/Лобатто.
[1] Gander, W. and W. Gautschi, «Adaptive Quadrature - Revisited», БИТ, Vol . 40, 2000, pp. 84-101. Этот документ также доступен в https://people.inf.ethz.ch/gander/.