(Не рекомендуемый), Численно оценивают интеграл, адаптивную квадратуру Симпсона
quad не рекомендуется. Используйте integral вместо этого.
q = quad(fun,a,b)
q = quad(fun,a,b,tol)
q = quad(fun,a,b,tol,trace)
[q,fcnt] = quad(...)
Квадратура является численным методом, используемым, чтобы найти область в соответствии с графиком функции, то есть, вычислить определенный интеграл.
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 приводят к меньшему количеству функциональных оценок и более быстрому вычислению, но менее точным результатам. В версии 5.3 MATLAB® и ранее, функция 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 со знаком массива.
Если интервал бесконечен, , затем для интеграла fun(x), чтобы существовать, fun(x) должен затухнуть как бесконечность подходов x, и quadgk требует, чтобы он затух быстро. Специальные методы должны использоваться для колебательных функций на бесконечных интервалах, но quadgk может использоваться, если fun(x) затухает достаточно быстро.
Функция quadgk интегрирует функции, которые сингулярны в конечных конечных точках, если особенности не слишком сильны. Например, это интегрирует функции, которые ведут себя в конечной точке c как log|x-c| или |x-c|p для p >= -1/2. Если функция сингулярна в точках в (a,b), запишите интеграл как сумму интегралов на подынтервалах с особыми точками как конечные точки, вычислите их с quadgk и добавьте результаты.
Вычислить интеграл
запишите функциональный 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] Гандер, W. и В. Гочи, “Адаптивная Квадратура – Пересмотренный”, BIT, Издание 40, 2000, стр 84-101. Этот документ также доступен в https://www.inf.ethz.ch/personal/gander.
dblquad | integral | integral2 | integral3 | quad2d | quadgk | quadl | quadv | trapz | triplequad