
Мат методы / Лаб3 / QUAD
.docx
QUAD, QUAD8 |
Вычисление интегралов методом квадратур
Синтаксис:
[I, cnt] = quad(‘<имя функции>‘, a, b) [I, cnt] = quad(‘<имя функции>‘, a, b, tol) [I, cnt] = quad(‘<имя функции>‘, a, b, tol, trace) [I, cnt] = quad8(‘<имя функции>‘, a, b) [I, cnt] = quad8(‘<имя функции>‘, a, b, tol) [I, cnt] = quad8(‘<имя функции>‘, a, b, tol, trace)
Описание:
Квадратура - это численный метод вычисления площади под графиком функции, то есть вычисление определенного интеграла вида
I
=
.
Функции quad и quad8 используют разные квадратурные формулы.
Функции [I, cnt] = quad(‘<имя функции>‘, a, b) и [I, cnt] = quad8(‘<имя функции>‘, a, b) вычисляют интеграл от заданной функции; последняя может быть как встроенной функцией, так и М-файлом. Переменная cnt содержит информацию о том, сколько раз в процессе интегрирования вычислялась подынтегральная функция.
Функции [I, cnt] = quad(‘<имя функции>‘, a, b, tol) и [I, cnt] = quad8(‘<имя функции>‘, a, b, tol) вычисляют интеграл с заданной относительной погрешностью tol. По умолчанию tol = 1e-3.
Функции [I, cnt] = quad(‘<имя функции>‘, a, b, tol, trace) и [I, cnt] = quad8(‘<имя функции>‘, a, b, tol, trace), когда аргумент trace не равен нулю, строят график, показывающий ход вычисления интеграла.
Примеры:
Вычислим интеграл
I
=
.
Его точное значение равно двум.
|
[I, cnt] = quad('sin', 0, pi) |
[I, cnt] = quad('sin', 0, pi, 1e-4, 1) |
|
I = 2.0000 |
I = 2.0000 |
|
cnt = 17 |
cnt = 33 |
Как следует из анализа полученных данных, при увеличении точности вычисления на порядок почти вдвое увеличивается трудоемкость расчетов. График с результатами промежуточных расчетов показан на рисунке.
Алгоритм:
Функция quad использует квадратурные формулы Ньютона - Котеса 2-го порядка (правило Симпсона), а функция quad8 - формулы 8-го порядка [1-2]. При наличии в подынтегральной функции особенностей типа
I
=
предпочтительнее использовать процедуру quad8.
Диагностические сообщения:
Функции quad и quad8 используют рекурсивный вызов. Для того чтобы предотвратить бесконечную рекурсию при вычислении сингулярных интегралов, глубина рекурсии ограничена уровнем 10. При достижении этого ограничения выдается сообщение
Recursion level limit reached in quad. Singularity likely. В процедуре quad достигнута предельная глубина рекурсии. Функция, возможно, сингулярна.
Ограничения:
Функции quad и quad8 не позволяют интегрировать функции с особенностями типа
I
=
.
В этом случае рекомендуется выделить такие члены и проинтегрировать их аналитически, а к остатку применить процедуры quad и quad8.