Этот пример показывает, как вычислить определенные интегралы с помощью Symbolic Math Toolbox™.
Покажите что определенный интеграл для на 0.
syms x
int(sin(x),pi/2,3*pi/2)
ans =
Максимизировать для , во-первых, задайте символьные переменные и примите это :
syms a x assume(a >= 0);
Затем задайте функцию, чтобы максимизировать:
F = int(sin(a*x)*sin(x/a),x,-a,a)
F =
Отметьте особый случай здесь . Чтобы сделать вычисления легче, используйте assumeAlso
, чтобы проигнорировать эту возможность (и более поздняя проверка это не максимум):
assumeAlso(a ~= 1); F = int(sin(a*x)*sin(x/a),x,-a,a)
F =
Создайте график проверять его форму:
fplot(F,[0 10])
Используйте diff
, чтобы найти производную относительно :
Fa = diff(F,a)
Fa =
Нули локальные экстремальные значения :
hold on fplot(Fa,[0 10]) grid on
Максимум между 1 и 2. Используйте vpasolve
, чтобы найти приближение нуля в этом интервале:
a_max = vpasolve(Fa,a,[1,2])
a_max =
Используйте subs
, чтобы получить максимальное значение интеграла:
F_max = subs(F,a,a_max)
F_max =
Результат все еще содержит точные числа и . Используйте vpa
, чтобы заменить их числовыми приближениями:
vpa(F_max)
ans =
Проверяйте что исключенный случай не приводит к большему значению:
vpa(int(sin(x)*sin(x),x,-1,1))
ans =
Численное интегрирование по более высоким размерным областям имеет специальные функции:
integral2(@(x,y) x.^2-y.^2,0,1,0,1)
ans = 4.0127e-19
Нет таких специальных функций для более многомерного символьного интегрирования. Используйте вложенные одномерные интегралы вместо этого:
syms x y int(int(x^2-y^2,y,0,1),x,0,1)
ans =
Задайте векторное поле F
на 3D пробеле:
syms x y z F(x,y,z) = [x^2*y*z, x*y, 2*y*z];
Затем, задайте кривую:
syms t
ux(t) = sin(t);
uy(t) = t^2-t;
uz(t) = t;
Линейный интеграл F
вдоль кривой u
задан как , где на правой стороне обозначает скалярное произведение.
Используйте это определение, чтобы вычислить линейный интеграл для от
F_int = int(F(ux,uy,uz)*diff([ux;uy;uz],t),t,0,1)
F_int =
Получите числовое приближение этого точного результата:
vpa(F_int)
ans =