Main Content

collect

계수를 모아서 정리

설명

예제

collect(P)P의 디폴트 변수의 거듭제곱을 기준으로 P의 계수를 모아서 정리합니다. 디폴트 변수는 symvar로 확인할 수 있습니다.

예제

collect(P,expr)은 기호 표현식 expr의 거듭제곱을 기준으로 P의 계수를 모아서 정리합니다. P가 벡터 또는 행렬이면 collectP에 대해 요소별로 작동합니다. expr이 벡터이면 collectexpr에 있는 모든 표현식에 대한 계수를 찾습니다.

예제

디폴트 변수의 거듭제곱을 기준으로 계수를 모아서 정리하기

기호 표현식의 계수를 모아서 정리합니다.

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

변수를 지정하지 않았기 때문에 collectsymvar에 의해 정의된 디폴트 변수를 사용합니다. 이 표현식에서 디폴트 변수는 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

두 번째 인수를 변수로 구성된 벡터로 지정하여 xy의 거듭제곱을 기준으로 계수를 모아서 정리합니다.

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

ipi의 계수를 모아서 정리하기

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]

함수 호출의 계수를 모아서 정리하기

특정 함수의 이름을 두 번째 인수로 지정하여 이 함수 호출의 계수를 모아서 정리합니다. 여러 개의 함수를 문자형 벡터로 구성된 셀형 배열로 지정하여 여러 개의 함수에 대한 함수 호출의 계수를 모아서 정리합니다.

F에서 sin 함수 호출의 계수를 모아서 정리합니다. 여기서 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)

F에서 sincos 호출의 계수를 모아서 정리합니다.

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

입력 인수

모두 축소

입력 표현식으로, 기호 표현식, 기호 함수, 기호 벡터 또는 기호 행렬로 지정됩니다.

계수를 모아서 정리할 표현식으로, 기호 숫자, 기호 변수, 기호 표현식, 기호 함수, 기호 벡터, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다.

예: i, pi, x, sin(x), y(x), [sin(x) cos(y)], {'sin' 'cos'}.

  • collect는 입력 표현식과 출력 표현식이 같아 보일 수 있지만 입력 표현식과 구문적으로 다른 출력값을 반환합니다. 이런 이유로 isequal과 같은 함수는 같음을 확인할 때 true를 반환하지 않을 수 있습니다. 입력 표현식과 출력 표현식이 같음을 증명하려면 대신 isAlways를 사용하십시오.

버전 내역

R2006a 이전에 개발됨