collect

Соберите коэффициенты

Синтаксис

Описание

пример

collect(P) собирает коэффициенты в P из степеней переменной по умолчанию P. Переменная по умолчанию найдена symvar.

пример

collect(P,expr) собирает коэффициенты в P из степеней символьного выражения expr. Если P вектор или матрица, затем collect действия, поэлементные на P. Если expr вектор, затем collect находит коэффициенты в терминах всех выражений в expr.

Примеры

Соберите коэффициенты полномочий переменной по умолчанию

Соберите коэффициенты символьного выражения.

syms x
coeffs = collect((exp(x) + x)*(x + 2))
coeffs =
x^2 + (exp(x) + 2)*x + 2*exp(x)

Поскольку вы не задавали переменную, collect использует переменную по умолчанию, заданную symvar. Для этого выражения переменной по умолчанию является x.

symvar((exp(x) + x)*(x + 2),1)
ans =
x

Соберите коэффициенты полномочий конкретной переменной

Соберите коэффициенты конкретной переменной путем определения переменной в качестве второго аргумента к collect.

Соберите коэффициенты выражения в степенях x, и затем в степенях y.

syms x y
coeffs_x = collect(x^2*y + y*x - x^2 - 2*x,x)
coeffs_y = collect(x^2*y + y*x - x^2 - 2*x,y)
coeffs_x =
(y - 1)*x^2 + (y - 2)*x
coeffs_y =
(x^2 + x)*y - x^2 - 2*x

Соберите коэффициенты в степенях обоих x и y путем определения второго аргумента как вектора из переменных.

syms a b
coeffs_xy = collect(a^2*x*y + a*b*x^2 + a*x*y + x^2,[x y])
coeffs_xy =
(a*b + 1)*x^2 + (a^2 + a)*x*y

Соберите коэффициенты в терминах i и pi

Соберите коэффициенты выражения в терминах i, и затем в терминах pi.

syms x y
coeffs_i = collect(2*x*i - 3*i*y,i)
coeffs_pi = collect(x*pi*(pi - y) + x*(pi + i) + 3*pi*y,pi)
coeffs_i =
(2*x - 3*y)*1i
coeffs_pi =
x*pi^2 + (x + 3*y - x*y)*pi + x*1i

Соберите коэффициенты символьных выражений и функций

Соберите коэффициенты выражений и функций путем определения второго аргумента как выражения или функции. Соберите коэффициенты нескольких выражений или функций при помощи векторного входа.

Расширьте sin(x + 3*y) и соберите коэффициенты cos(y), и затем обоих sin(x) и sin(y).

syms x y
f = expand(sin(x + 3*y));
coeffs_cosy = collect(f,cos(y))
coeffs_cosy =
4*sin(x)*cos(y)^3 + 4*cos(x)*sin(y)*cos(y)^2 + (-3*sin(x))*cos(y) - cos(x)*sin(y)
coeffs_sinxsiny = collect(f,[sin(x) sin(y)])
coeffs_sinxsiny =
(4*cos(y)^3 - 3*cos(y))*sin(x) + (4*cos(x)*cos(y)^2 - cos(x))*sin(y)

Соберите коэффициенты символьного функционального y(x) в символьном выражении.

syms y(x)
f = y^2*x + y*x^2 + y*sin(x) + x*y;
coeffs_y = collect(f,y)
coeffs_y(x) =
x*y(x)^2 + (x + sin(x) + x^2)*y(x)

Соберите коэффициенты для каждого элемента матрицы

Вызвать collect на матрице. collect действия, поэлементные на матрице.

syms x y
collect([(x + 1)*(y + 1), x^2 + x*(x -y); 2*x*y - x, x*y + x/y], x)
ans =
[ (y + 1)*x + y + 1, 2*x^2 - y*x]
[       (2*y - 1)*x, (y + 1/y)*x]

Соберите коэффициенты вызовов функции

Соберите коэффициенты вызовов конкретной функции путем определения имени функции в качестве второго аргумента. Соберите коэффициенты вызовов функции относительно нескольких функций путем определения нескольких функций как массива ячеек из символьных векторов.

Соберите коэффициенты вызовов sin функция в F, где F содержит множественные вызовы различных функций.

syms a b c d e f x
F = a*sin(2*x) + b*sin(2*x) + c*cos(x) + d*cos(x) + e*sin(3*x) + f*sin(3*x);
collect(F,'sin')
ans =
(a + b)*sin(2*x) + (e + f)*sin(3*x) + c*cos(x) + d*cos(x)

Соберите коэффициенты вызовов обоих sin и cos функции в F.

collect(F,{'sin' 'cos'})
ans =
(a + b)*sin(2*x) + (e + f)*sin(3*x) + (c + d)*cos(x)

Входные параметры

свернуть все

Входное выражение в виде символьного выражения, функции, вектора или матрицы.

Выражение, в терминах которого вы собираете коэффициенты в виде символьного числа, переменной, выражения, функции или вектора; вектор символов; массив ячеек из символьных векторов.

Пример: i\PiX, sin(x), y(x), [sin(x) cos(y)], {'sin' 'cos'}.

Советы

  • collect возвращает выходной параметр, который синтаксически отличается от входного выражения (несмотря на то, что выражения ввода и вывода могут выглядеть одинаково). Поэтому функции как isequal не может возвратить true при проверке на равенство. Вместо этого используйте isAlways доказать эквивалентность между выражениями ввода и вывода.

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте