(Не рекомендуемый), Численно оценивают интеграл, адаптивную квадратуру Lobatto
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 использование рекурсивной адаптивной квадратуры Lobatto. fun указатель на функцию. Это принимает векторный x и возвращает векторный y, функция fun оцененный в каждом элементе x. Пределы a и b mustBeFinite.
Параметризация Функций объясняет, как предоставить дополнительные параметры функциональному 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 реализует высокого уровня метод, использующий адаптивное квадратурное правило Gauss/Lobatto.
[1] Гандер, W. и В. Гочи, “Адаптивная Квадратура – Пересмотренный”, BIT, Издание 40, 2000, стр 84-101. Этот документ также доступен в https://people.inf.ethz.ch/gander/.