2. Функция trapz(y)
Отличие данной функции от функции cumtrapz(y) состоит в том, что осуществляется простое интегрирование без накопления, то есть trapz(y) возвращает не столько интегралов, насколько шагов разбивается область интегрирования, а общее значение интеграла.
Пример 1: вычислить интеграл вида с шагом 0,5.
x=1: 0.5: 10;
y=x.*exp(x) + log(x) + 1;
trapz(y)
ans = 4.0657e+005.
Существует модификация данной функции trapz (х, у). Следует иметь в виду, что при вычислении интеграла с помощью функции trapz (х, у) его значение зависит от шага интегрирования.
Метод парабол (Симпсона)
Для его реализации в системе MATLAB используются следующие функции:
quad('fun', a, b)
quad('fun', a, b, tol)
quad('fun', a, b, tol, trace)
dblquad('fun', a, b, c, d)
dblquad('fun', a, b, c, d, tol)
В этих функциях приняты обозначения:
1) 'fun' - подынтегральная функция, взятая в одинарные кавычки;
2) а, b - пределы интегрирования;
3) tol - относительная погрешность, задаваемая пользователем (по умолчанию tol = 10e -3);
4) с,d - пределы интегрирования по другой переменной (внешней) при вычислении двойного интеграла;
5) trace — число, отличное от нуля, по которому система показывает ход вычислительного процесса.
Рассмотрим перечисленные функции и приведем примеры.
-
Функция quad('fun', a, b)
Функция вычисляет определенный интеграл с погрешностью, не превышающей 10-3.
Пример 1:
Подынтегральная функция имеет вид: f(x) = е х + х 2 + 2 sin х - 5 .
Необходимо вычислить интеграл
Решение:
>> y='exp(x)+x.^2 + 2*sin(x)-5';
>> quad (y, 1, 5)
ans = 167.5415
Функция может быть представлена одной строкой:
quad (‘ехр(х) + х.^2 + 2*sin(х) – 5’, 1, 5).
2. Функция dblquad('fun',a,b,c,d).
В функции dblquad ('fun', a, b, с, d) приняты следующие обозначения:
'fun' - это функция с двумя переменными;
а, b - пределы по внутренней переменной;
с, d - пределы по внешней переменной.
Пример 1: Пусть функция двух переменных имеет вид: z = x2 + y2 - 2
Необходимо вычислить интеграл
Решение:
>> z='x.^2 + y.^2 - 2';
>> dblquad (z,1,2,0,3)
ans = 10.
Аналитические методы вычисления интеграла
Функция int() вычисления неопределенного и определенного интегралов.
Вычисление интеграла аналитическими методами осуществляется в системе MATLAB с помощью функций int(), которые имеют вид:
1) int(у(х))
2) int(y(x), а, b),
где:
• у(х) — подынтегральная функция;
• а, b — пределы интегрирования.
Эти функции вычисляют:
• неопределенный интеграл;
• неопределенный интеграл с символьными переменными;
• определенный интеграл с символьными значениями пределов интегрирования;
• определенный интеграл от алгебраических функций;
• кратные интегралы;
• несобственные интегралы.
Технология вычисления интегралов достаточно проста и состоит в следующем:
1. Определение символьных переменных с помощью функции syms.
2. Ввод подынтегрального выражения с присвоением ему имени y=f(x);
3. Ввод функции int(у), если вычисляется неопределенный интеграл, или функции int(у, а, b), если вычисляется определенный интеграл в пределах [a; b].
4. Получение решения путем нажатия клавиши <Enter>.
Пример 1: Необходимо вычислить интеграл
>> syms x;
>> y = х/(1+х^2);
>> int(y)
ans =1/2*log(1+x^2)
Пример 2 : Вычислить значение определенного интеграла
>> syms x a b;
>> y=x/(1+x^2);
>> int(y, a, b)
ans = 1/2*log(1+b^2)-1/2*log(1+a^2)
Пример 3: Вычислить определенный интеграл
>> syms x;
>> y=x/(1+x^2);
>> int(y, 1, 5)
ans = 1/2*log(13)
Вычисления кратных интегралов.
Наиболее просто кратный интеграл вычислить путем интегрирования ответа, полученного от предыдущего значения интеграла.
Пример 1: Пусть необходимо вычислить двойной неопределенный интеграл
Решение:
>> syms x;
>> y=x/(1-x^2);
>> int(int(y))
ans = -1/2*log(x-1)*(x-1)+x-1/2*log(x+1)*(x+1)