И другие программы этой серии
Однако функция quad может иметь не меньшее, а даже большее быстродействие для не слишком гладких функций (разрывны или велики по абсолютной величине вторая или третья производные). В любом случае обе эти функции по умолчанию обеспечивают одинаковую относительную точность результата, равную 0.001.
Как и многие другие функции системы MATLAB, функции quad и quad8 могут принимать различное количество параметров. Минимальный формат вызова этих функций включает в себя три параметра: имя подынтегральной функции, нижний предел интегрирования и верхний предел интегрирования. Если применяется четвертый параметр, то он является требуемой относительной точностью результата вычислений. Кстати, если обе эти адаптивные функции не могут обеспечить получение необходимой точности (расходящийся или близкий к этому интеграл), то они возвращают символическую бесконечность Inf.
Выше в подразделе «Поиск минимума функции» мы приводили график функции humps, для которой там разыскивались локальные минимумы. Вычислим теперь определенный интеграл от этой функции в пределах от нуля до трех, воспользовавшись для этого обеими адаптивными функциями:
{ I, cnt ] = quad( \'humps\', 0, 3 );
23.9681 cnt = 225
[ 18 cnt8 ] = quadS( \'humps\', 0, 3 ); 18 =
23.9681 cnt8 =
113
Второе из возвращаемых значений для этих функций означает количество точек, в которых пришлось вычислять подынтегральную функцию. Таким образом, этот параметр характеризует трудоемкость метода. Сравнивая полученные показатели, приходим к выводу, что при интегрировании такой гладкой функции, как humps, преимущество имеет метод quadS, так как для достижения минимальной точности в 0.001 (а по ходу дела может достигаться и более высокая точность) ему требуется меньшее количество вычислений с подынтегральной функцией (113 против 225).
Из высшей математики известно, что к определенным интегралам могут быть сведены многие другие типы интегралов, например криволинейные интегралы. Таким образом, с помощью функций quad, quad8 (или trapz) можно вычислить и эти интегралы.
Рассмотрим пример на криволинейные интегралы первого рода.