И другие программы этой серии
Длина вектора X должна быть равна size(Y,dim). Примеры:
>> cumtrapz(y)
ans = 0 1.5000 4.0000 7.5000
>> Y=magic(4)
16 5 9 4
2
11 7 14
3
10 6 15
13 8
12 1
>> Z = cumtrapz(Y,1)
Z
0
10.5000 17.5000 24.0000
0 6.5000 15.5000 26.0000
0 6.5000 14.5000 25.0000
0 10.5000 20.5000 27.0000
8.6.2. Интегрирование методом квадратур
Метод трапеций обеспечивает невысокую точность при заданном числе шагов или дает слишком большое число шагов при вычислениях с заданной погрешностью. Приведенные ниже функции осуществляют интегрирование и двойное интегрирование, используя более точную квадратурную формулу Симпсона или метод Гаусса–Лобатто. Квадратура – численный метод нахождения площади под графиком функции f(x), то есть вычисление определенного интеграла вида (8.1).
В приведенных ниже формулах подынтегральное выражение fun обычно задается или в прямых апострофах, или в форме handle-функции.
Функции quad и quadl используют два различных алгоритма квадратуры для вычисления определенного интеграла. Функция quad выполняет интегрирование по методу низкого порядка, используя рекурсивное правило Симпсона. Но она может быть более эффективной при негладких подынтегральных функциях или при низкой требуемой точности вычислений. Алгоритм quad в MATLAB 6 изменен по сравнению с предшествовавшими версиями, точность по умолчанию по сравнению с версиями 5.3x повышена в 1000 раз (с 10–3 до 10–6).
Новая функция quad1 (квадратура Лобатто) использует адаптивное правило квадратуры Гаусса–Лобатто очень высокого порядка. Устаревшая функция quad8 выполняла интегрирование, используя квадратурные формулы Ньютона– Котеса 8-го порядка [53]. Достижимая точность интегрирования гладких функций в MATLAB 6 поэтому также значительно выше, чем в предшествующих версиях.
Y
410
Программные средства численных методов
Математические операции с полиномами
411
• quad(fun,a,b) возвращает численное значение определенного интеграла от заданной функции @fun на отрезке [a b].
Начало в части 1