exponenta event banner

quadl

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

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.

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

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