Этот пример показывает, как вычислить определенные интегралы с помощью 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 =