Команда expand(S) расширяет символьные выражения массива S. Рациональные выражения она раскладывает на простые дроби, полиномы – на полиномиальные выражения и т. д. Функция работает со многими алгебраическими и тригонометрическими функциями.
Примеры:
>>syms a b x
>>S=[(x+2)*(x+3)*(x-4),sin(2*x)];
>>expand(S)
ans =
[ x^3+x^2-14*x-24, 2*sin(x)*cos(x)]
>>expand(sin(a+b))
ans =
sin(a)*cos(b)+cos(a)*sin(b)
>>expand((a+b)^3)
ans =
a^3+3*a^2*b+3*a*b^2+b^3
Разложение выражений на простые множители – команда factor
Команда factor(S) поэлементно разлагает символьные выражения массива S на простые множители, а целые числа – на произведение простых чисел.
Примеры:
>>x=sym('x');
>>factor(x^7-1)
ans =
(x-1)*(x^6+x^5+x^4+x^3+x^2+x+1)
>>factor(sym('123456789'))
ans =
(3)^2*(3803)*(3607)
Пусть требуется найти определитель D (команда det) и обратную матрицу A-1 (команда inv) символьной матрицы
A = .
>> syms a b
>> A=[a b;a^2 b^2]
A =
[ a, b]
[ a^2, b^2]
>> D=det(A)
D =
a*b^2-b*a^2
>> factor(D)
ans =
-a*b*(-b+a)
>> A1=inv(A)
A1 =
[ -b/a/(-b+a), 1/a/(-b+a)]
[ a/b/(-b+a), -1/b/(-b+a)]
Приведение подобных членов – команда collect
Команда collect(S, v) работает с символьными полиномами S нескольких переменных, где v – одна из переменных полинома. Эта функция возвращает разложение полинома S по степеням v (S может быть массивом полиномов).
Примеры:
>>syms x y
>>S=[x^3*y^2+x^2*y+3*x*y^2,x^4*y-y*x^2];
>>collect(S,x)
ans =
[ x^3*y^2+x^2*y+3*x*y^2, x^4*y-x^2*y]
>>collect(S,y)
ans =
[ (x^3+3*x)*y^2+x^2*y, (x^4-x^2)*y]