1 семестр_1 / МА / Практ_12_0
.docПрактикум 12. Интегрирование
Нахождение неопределённых и определённых интегралов |
|
-
Неопределённые интегралы.
Неопределённый интеграл функции находится с помощью функции int(F, v), где F – символическое выражение под интегралом, v – переменная, по которой берётся интеграл (по умолчанию определяется с помощью вызова symvar(F), а если F – константа, то v – символическая x).
Пример 1. Найдём :
>> syms x a b
>> int(sin(a*x)*cos(b*x), x) %% или int(sin(a*x)*cos(b*x)), так как x – переменная по умолчанию в этом выражении
ans =
-(b*sin(a*x)*sin(b*x) + a*cos(a*x)*cos(b*x))/(a^2 - b^2)
То есть Заметьте, что Matlab не добавляет константы в конце.
Пример 2. Найдём
>> syms x n
>> int(x^n, x)
ans =
piecewise([n = -1, log(x)], [n <> -1, x^(n + 1)/(n + 1)])
Это означает Что не так в этом ответе?
Если Matlab не может найти интеграл, то сообщает об ошибке и возвращает ненайденный интеграл.
Пример 3. Попробуем вычислить
>> int(acos(sin(x)), x)
Warning: Explicit integral could not be found.
ans =
int(acos(sin(x)), x)
Упражнение 1. Найдите: a) б) в) и запишите полученные результаты в математических обозначениях.
-
Символическое вычисление определённых интегралов
Определённый интеграл -- это площадь фигуры, ограниченной графиком функции на отрезке осью и прямыми и Если известен то определённый интеграл можно вычислить по формуле Ньютона-Лейбница:
Функцию int можно также использовать для вычисления определённых интегралов, передав ещё два аргумента – a и b. Это могут быть числа или символические выражения.
Пример 4.
>> syms x
>> int(x^2,0,1)
ans =
1/3
Пример 5. Matlab вычислить так же не может, как и в примере 3:
>> syms x pi; int(acos(sin(x)), x, 0, pi)
Warning: Explicit integral could not be found.
ans =
int(acos(sin(x)), x = 0..pi)
Но можно вычислить его приближение с помощью знакомых нам функций double и vpa (с помощью способов, описанных в следующем параграфе):
>> vpa(int(acos(sin(x)), x, 0, pi), 10)
Warning: Explicit integral could not be found.
ans =
2.4674011
-
Численное вычисление интегралов
Часто для разных целей приходится считать интегралы функций, которые или нельзя взять аналитически , или неизвестно, как это сделать. В таких случаях формула Ньютона-Лейбница бесполезна, и применяется один из способов численного интегрирования, различающихся сложностью, скоростью работы, и точностью результатов. Два из них реализованы библиотечными функциями Matlab: trapz использует метод трапеций, а quad – формулу Симпсона (или метод парабол). На практике их применение различается примерно так же, как plot и fplot – trapz(X,Y) принимает вектор аргументов X и вектор соответствующих значений функции Y, а quad(f, a, b, tol) – ссылку на функцию f, пределы интегрирования a и b, и точность приближения tol (по умолчанию
Пример 6. Точное значение Посчитаем приближённо с помощью функции trapz:
>> X = 0:pi/10:pi;
>> Y = sin(X);
>> trapz(X,Y)
ans =
1.9835
И с помощью quad:
>> quad(@sin,0,pi,1e-6)
ans =
2.0000
Может показаться, что ответ точный, но это не так:
>> format long
>> ans
ans =
1.999999996398431
Упражнение 2. Найдите точные (если возможно) значения и приближённые (с помощью trapz и quad) значения интегралов а) б) в*)