exponenta event banner

Интеграция

В этом примере показано, как вычислить определенные интегралы с помощью символьных математических Toolbox™.

Определенный интеграл

Покажите, что определенный интеграл ∫abf (x) dx для f (x) = sin (x) на [security2,3ā2] равен 0.

syms x
int(sin(x),pi/2,3*pi/2)
ans = 0sym(0)

Определенные интегралы в Maxima и Minima

Чтобы максимизировать F (a) =∫-aasin (ax) sin (x/a) dx для a≥0, сначала определите символьные переменные и предположим, что a≥0:

syms a x
assume(a >= 0);

Затем определите функцию для максимизации:

F = int(sin(a*x)*sin(x/a),x,-a,a)
F = 

{1-sin(2)2 if  a=12asin(a2)cos(1)-a2cos(a2)sin(1)a4-1 if  a1piecewise(a == 1, sym(1) - sin(sym(2))/2, a ~= 1, (2*a*(sin(a^2)*cos(sym(1)) - a^2*cos(a^2)*sin(sym(1))))/(a^4 - 1))

Обратите внимание на особый случай для a = 1. Для упрощения вычислений используйтеassumeAlso чтобы игнорировать эту возможность (и позже проверить, что a = 1 не является максимальным):

assumeAlso(a ~= 1);
F = int(sin(a*x)*sin(x/a),x,-a,a)
F = 

2asin(a2)cos(1)-a2cos(a2)sin(1)a4-1(2*a*(sin(a^2)*cos(sym(1)) - a^2*cos(a^2)*sin(sym(1))))/(a^4 - 1)

Создайте график F для проверки его формы:

fplot(F,[0 10])

Figure contains an axes. The axes contains an object of type functionline.

Использовать diff найти производное F в отношении:

Fa = diff(F,a)
Fa = 

2σ1a4-1+2a2acos(a2)cos(1)-2acos(a2)sin(1)+2a3sin(a2)sin(1)a4-1-8a4σ1a4-12where  σ1=sin(a2)cos(1)-a2cos(a2)sin(1)(2*(sin(a^2)*cos(sym(1)) - a^2*cos(a^2)*sin(sym(1))))/(a^4 - 1) + (2*a*(2*a*cos(a^2)*cos(sym(1)) - 2*a*cos(a^2)*sin(sym(1)) + 2*a^3*sin(a^2)*sin(sym(1))))/(a^4 - 1) - (8*a^4*(sin(a^2)*cos(sym(1)) - a^2*cos(a^2)*sin(sym(1))))/(a^4 - 1)^2

Нули Fa являются локальными крайностями F:

hold on
fplot(Fa,[0 10])
grid on

Figure contains an axes. The axes contains 2 objects of type functionline.

Максимальное значение находится в диапазоне от 1 до 2. Использовать vpasolve чтобы найти приближение нуля Fa в этом интервале:

a_max = vpasolve(Fa,a,[1,2])
a_max = 1.5782881585233198075558845180583vpa('1.5782881585233198075558845180583')

Использовать subs для получения максимального значения интеграла:

F_max = subs(F,a,a_max)
F_max = 0.36730152527504169588661811770092cos(1)+1.2020566879911789986062956284113sin(1)vpa('0.36730152527504169588661811770092')*cos(sym(1)) + vpa('1.2020566879911789986062956284113')*sin(sym(1))

Результат по-прежнему содержит точные числа sin (1) и cos (1). Использоватьvpa заменить их численными аппроксимациями:

vpa(F_max)
ans = 1.2099496860938456039155811226054vpa('1.2099496860938456039155811226054')

Убедитесь, что исключенный вариант a = 1 не приводит к увеличению значения:

vpa(int(sin(x)*sin(x),x,-1,1))
ans = 0.54535128658715915230199006704413vpa('0.54535128658715915230199006704413')

Множественная интеграция

Численное интегрирование по более высокомерным зонам имеет специальные функции:

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 = 0sym(0)

Интегралы линий

Определение векторного поля 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⋅du=∫f (ux (t), uy (t), uz (t)) ⋅dudtdt, где ⋅ на правой стороне обозначает скалярное произведение.

Используйте это определение для вычисления интеграла линии для t из [0,1]

F_int = int(F(ux,uy,uz)*diff([ux;uy;uz],t),t,0,1)
F_int = 

19cos(1)4-cos(3)108-12sin(1)+sin(3)27+39554(sym(19)*cos(sym(1)))/4 - cos(sym(3))/108 - sym(12)*sin(sym(1)) + sin(sym(3))/27 + sym(395/54)

Получите численное приближение этого точного результата:

vpa(F_int)
ans = -0.20200778585035447453044423341349-vpa('0.20200778585035447453044423341349')