Символьные операции математического анализа
1. Функция вычисления производных – diff
Для вычисления в символьном виде производных от выражения S служит функция diff, записываемая в формате diff(S,'v') или diff(S, sym('v')) Она возвращает символьное значение первой производной от символьного выражения или массива символьных выражений S по переменной v. Эта функция возвращает
• diff(S, n) — возвращает п-ю (п — целое число) производную символьного выражения или массива символьных выражений Sпо переменной v.
• diff(S, V, n) и diff(S, n, V) – возвращает п-ю производную S по переменной v.
Примеры:
» x =sym( 'x' ); y=sym( 'у' );
» diff(x^y)
ans =
х^у*y / x
» slmplify(ans)
ans =
x^(y-1)*y
» diff(s1n(y*x), x, 3)
ans =
- cos(y*x)*y^3
» diff([x^3 sin(x) exp(x)], x)
ans =
[ 3*x^2, cos(x), exp(x)]
2. Функция интегрирования – int
Функция int вычисляет неопределенные и определенные интегралы
• int(S) — возвращает символьное значение неопределенного интеграла от символьного выражения или массива символьных выражений S по переменной, которая автоматически определяется функцией findsym. Если S — скаляр или матрица, то вычисляется интеграл по переменной 'х'.
• int(S, v) — возвращает неопределенный интеграл от S по переменной v .
• int(S, a, b) — возвращает определенный интеграл от S с пределами интегрирования от а до b, причем пределы интегрирования могут быть как символьными, так и числовыми.
• int(S, v, a, b) — возвращает определенный интеграл от S по переменной v с пределами от а до b.
Примеры:
» int(sin(x)^3, x)
ans =
- l/3*sin(x)^2*cos(x)-2/3*cos(x)
» int(log(2*x), x)
ans =
log(2*x)*x - x
» int((x^2-2)/(x*3-l), x, l, 2)
ans =
-inf
» int((x^2-2)/(x*3-l), x, 2, 5)
ans =
- 2/3*1og(2) + 2/3*1og(31) + 2/3*3^(l/2)*atan(11/3*3^(l/2)) -...
2/3*log(7) - 2/3*3^(1/2)*atan(5/3*3^(l/2))
» int([x^3 sin(x) exp(x)], x)
ans =
[ l/4*x^4, -cos(x), exp(x)]
» int(log(sin(x)),x,0,pi/2)
ans =
-pi/2*log(2)
С помощью функции int можно вычислять имеющие аналитическое решение сложные интегралы, например с бесконечными пределами (или одним из пределов), а также кратные интегралы.
» int(log(1+exp(-x),x,0,inf)
ans =
pi^2/12
» syms x a b
» int(int(int(x^2 + y^2)*z, x, 0, a), y, 0, a), z, 0, a)
ans =
1/3*a^6
3. Функция вычисления пределов – limit
Для вычисления пределов аналитически заданной функции F(x) служит функция limit
▪ limit(F, x, a) – возвращает предел символьного выражения F в точке х = а.
Пример:
»limit(sin(x)/x, x, 0)
ans =
4. Функция разложения в ряд Тейлора – taylor
▪ taylor (f) – возвращает шесть членов ряда Маклорена функции f ;
▪ taylor (f, n, x, a) – возвращает n членов ряда Тейлора в точке х = а ;
▪ taylor (f, n) – возвращает ( n - 1) членов ряда Маклорена функции f ;
▪ taylor (f, a) – возвращает шесть членов ряда Тейлора функции f в точке а.
Примеры:
»x = sym(‘x’)
»taylor(sin(x))
ans =
x – 1/6*x^3 + 1/120*x^5
»taylor(int(sin(x))
ans =
- 1 +1/2*x^2 – 1/24*x^4
5. Функция вычисления суммы рядов – symsum
Для аналитического вычисления суммы ряда служит команда symsum:
• symsum(S) — возвращает символьное значение суммы бесконечного ряда по переменной, найденной автоматически с помощью функции findsym;
• symsum(S, v) — возвращает сумму бесконечного ряда по переменной v;
• symsum(S, a, b) и symsum(S, v, a, b) — возвращают конечную сумму ряда в пределах номеров слагаемых от а до b.
Примеры:
» x = sym(‘x’);
» symsum(x^2)
ans =
1/3*x^3-1/2*x^2+1/6*x
» symsum([x, x^2, x^3], 1, 5)
ans =
[ 15, 55, 225]
6. Функция решение алгебраических уравнений – solve
Для решения систем алгебраических уравнений и одиночных уравнений служит функция solve:
• solve(expr1, expr2,... exprN, var1, var2,... varN) — возвращает значения переменных var1, при которых соблюдаются равенства, заданные выражениями exprI. Если в выражениях не используются знаки равенства, то полагается ехргI = 0;
• solve(expr1, expr2, ..... exprN) — аналогична предшествующей функции, но переменные, по которым ищется решение, определяются функцией findsym.
Примеры решения уравнений:
» syms x у;
» so1ve(x^3 -1, x)
ans =
[ 1]
[ -1/2+1/2*i*3^(1/2)]
[ -1/2-1/2*i*3^(1/2)]
» syms a b с
» solve(a*x^2+b*x+c)
ans =
[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
»S = solve(‘x+y=3’, ‘x*y^2=4’, x, y)
S =
x : [ 3x1 sym ]
y : [ 3x1 sym ]
» S.x
ans =
[4]
[1]
[1]
» S.y
ans =
[-1]
[2]
[2]
» solve(‘sin(x)=0.5’, x)
ans =
0.52359877559829887307710723054658
7. Решение дифференциальных уравнений – dsolve
Для решения дифференциальных уравнений в форме Коши MATLAB имеет следующую функцию:
• dsolve( 'eqn1', 'eqn2', ...) — возвращает аналитическое решение системы дифференциальных уравнений с начальными условиями. Они задаются равенствами eqnl (вначале задаются уравнения, затем начальные условия).
По умолчанию независимой переменной считается переменная 't', обычно обозначающая время. Можно использовать и другую переменную, добавив ее в конец списка параметров функции dsolve. Символ D обозначает производную по независимой переменной, то есть d / dt, при этом D2 означает d2 / dt2 и т. д. Имя независимой переменной не должно начинаться с буквы D.
Начальные условия задаются в виде равенств 'у(а)=b' или 'Dy(a)=b', где у — независимая переменная, а и b — константы. Если число начальных условий меньше, чем число дифференциальных уравнений, то в решении будут присутствовать произвольные постоянные С1, С2 и т. д.
Примеры применения функции dsolve:
» dsolve('D2x = -2*x')
ans =
Cl*cos(2^(1/2)*t) + C2*sin(2^(l/2)*t)
» dsolve('D2y = -2*x + y', 'у(0) = 1 , 'х')
ans =
(2*х*ехр(х) + (- С2 + 1)*ехр(х)^2 + С2 / ехр(х)