exponenta event banner

quadl

(Не рекомендуемый), Численно оценивают интеграл, адаптивную квадратуру 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 со знаком массива.

  • Если интервал бесконечен, [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 реализует высокого уровня метод, использующий адаптивное квадратурное правило Gauss/Lobatto.

Ссылки

[1] Гандер, W. и В. Гочи, “Адаптивная Квадратура – Пересмотренный”, BIT, Издание 40, 2000, стр 84-101. Этот документ также доступен в https://people.inf.ethz.ch/gander/.

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