Из всех методов вычисления определенных интегралов самым простым, но в то же время довольно успешно применяемым является метод трапеций. Для вычисления интегралов методом трапеций в ней предусмотрена функция trapz:
Integ = trapz(х, у);
Одномерный массив х (вектор) содержит дискретные значения аргументов подынтегральной функции [5, 6]. Значения подынтегральной функции в этих точках сосредоточены в одномерном массиве у. Чаще всего для интегрирования выбирают равномерную сетку, то есть значения элементов массива х отстоят друг от друга на одну и ту же величину - шаг интегрирования. Точность вычисления интеграла зависит от величины шага интегрирования: чем меньше этот шаг, тем больше точность.
Вычислим простой интеграл:
методом трапеций с разной величиной шага интегрирования. Сначала зададим шаг интегрирования равным pi/10:
dx = pi/10; х = 0:dx:pi; y=cos(x); I = trapz(x,y);
I = 5.5511e-017
и получим поразительно точный результат (абсолютно точный равен нулю), который бесполезно пытаться улучшать, так как уже достигнута предельная точность, обусловленная конечной точностью хранения вещественных чисел на компьютере (примерно 16 десятичных знаков после запятой). Такая высокая точность является скорее исключением, чем правилом. Обычно же для достижения высокой точности требуется выполнять интегрирование с очень малыми шагами, а контроль достигнутой точности осуществлять путем сравнения последовательных результатов. Например, при вычислении методом трапеций интеграла:
с шагом интегрирования dx = 1
dx = 1; х = 0:dx:5;
l2 = trapz(x, y);
получается следующий результат:
l2 = 0.4226.
Если провести повторное интегрирование с шагом dx = 0.1, то результат будет:
l2 = 0.5014.
Уменьшая далее шаги интегрирования последовательно в 10 раз, находим, что при dx = 0.01 интеграл равен 0.5023, то есть уже здесь видна тенденция к стабилизации результата. При dx = 0.001 снова получаем:
l2 = 0.5023,
так что в пределах четырех десятичных цифр после запятой результат получен окончательно. Напомним, что если мы хотим наблюдать дальнейшие десятичные цифры, то нужно предварительно ввести и исполнить команду: