exponenta event banner

quad

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

quad не рекомендуется. Использование integral вместо этого.

Описание

пример

q = quad(fun,a,b) аппроксимирует интеграл функционального fun от a к b использование рекурсивной адаптивной квадратуры Симпсона:

q=abf(x) dx

q = quad(fun,a,b,tol) задает допуск абсолютной погрешности tol для каждого подынтервала, вместо значения по умолчанию 1e-6.

q = quad(fun,a,b,tol,trace) опционально включает отображение диагностической информации. Когда trace является ненулевым, quad показывает вектор из значений [fcnEvals, a, b-a, Q] во время рекурсии.

[q,fcnEvals] = quad(___) дополнительно возвращает количество вычислений функции fcnEvals. Можно задать любую из предыдущих комбинаций входных аргументов.

Примеры

свернуть все

Вычислите интеграл

021x3-2x-5dx.

Во-первых, создайте анонимную функцию myfun это вычисляет подынтегральное выражение.

myfun = @(x) 1./(x.^3-2*x-5);

Теперь используйте quad вычислить интеграл. Задайте пределы интегрирования как вторые и третьи входные параметры.

q = quad(myfun,0,2)
q = -0.4605

В качестве альтернативы можно передать подынтегральное выражение quad путем создания файла функции:

function y = myfun(x) 
  y = 1./(x.^3-2*x-5);
end

С этим методом, вызовом quad становится quad(@myfun,0,2).

Входные параметры

свернуть все

Подынтегральное выражение в виде указателя на функцию, который задает функцию, которая будет интегрирована от a к b.

Для проблем со скалярным знаком, функционального y = fun(x) должен принять аргумент вектора x и возвратите векторный результат y, где y подынтегральное выражение, оцененное в каждом элементе x. Это требование обычно означает тот fun должен использовать операторы массивов (.^, .*, …) вместо матричных операторов (^, *, …).

Параметризация Функций объясняет, как предоставить дополнительные параметры функциональному fun, при необходимости.

Пример: q = quad(@(x) exp(1-x.^2),a,b) интегрирует указатель анонимной функции.

Пример: q = quad(@myFun,a,b) интегрирует функциональный myFun, который сохранен как файл.

Типы данных: function_handle

Интегрирование ограничивает в виде отдельных скалярных аргументов. Пределы a и b mustBeFinite.

Пример: quad(fun,0,1) интегрирует fun от 0 к 1.

Типы данных: single | double

Допуск абсолютной погрешности в виде скаляра. quad использует допуск абсолютной погрешности на каждом подынтервале в интегрировании. Как величина tol увеличения, quad выполняет меньше вычислений функции и завершает вычисление быстрее, но приводит к менее точным результатам.

Пример: quad(fun,a,b,1e-12) устанавливает погрешность абсолютной погрешности 1e-12.

Типы данных: single | double

Переключитесь для диагностической информации в виде ненулевого скаляра. Когда trace является ненулевым, quad отображает вектор из значений [fcnEvals, a, b-a, Q] для каждого подынтервала в рекурсии:

  • fcnEvals дает количество вычислений функции

  • a и b пределы интегрирования

  • Q вычисленная область подынтервала

Пример: quad(fun,a,b,1e-8,1) интегрирует fun от a к b с допуском 1e-8 и диагностическая информация включена.

Выходные аргументы

свернуть все

Значение интеграла, возвращенного как скаляр.

Количество вычислений функции, возвращенных как скаляр.

Алгоритмы

quad реализует квадратурный метод низкоуровневый, использующий правило адаптивного рекурсивного Симпсона.

Ссылки

[1] Гандер, W. и В. Гочи. “Адаптивная Квадратура — Пересмотренный”. BIT Числовая Математика 40 (2000): 84–101. https://doi.org/10.1023/A:1022318402393

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