Main Content

factor

설명

예제

F = factor(x)x의 모든 기약 인수를 벡터 F로 반환합니다. x가 정수인 경우 factorx의 소인수분해를 반환합니다. x가 기호 표현식인 경우 factorx의 인수인 하위 표현식을 반환합니다.

예제

F = factor(x,vars)는 인수 배열 F를 반환합니다. 여기서 vars는 필요한 변수를 지정합니다. vars의 변수를 포함하지 않는 모든 인수는 첫 번째 요소인 F(1)로 분리됩니다. 다른 요소는 vars의 변수를 하나 이상 포함하는 x의 기약 인수입니다.

예제

F = factor(___,Name,Value)는 하나 이상의 Name,Value 쌍 인수로 지정된 추가 옵션을 사용합니다. 이 구문은 위에 열거된 구문의 모든 입력 인수를 사용할 수 있습니다.

예제

정수 인수분해하기

F = factor(823429252)
F =
           2           2          59         283       12329

flintmax보다 큰 정수를 인수분해하려면 sym을 사용하여 정수를 기호 객체로 변환하십시오. 그런 다음 정확하게 나타내기 위해 숫자를 따옴표로 묶습니다.

F = factor(sym('82342925225632328'))
F =
[ 2, 2, 2, 251, 401, 18311, 5584781]

음의 정수를 인수분해하려면 sym을 사용하여 기호 객체로 변환하십시오.

F = factor(sym(-92465))
F =
[ -1, 5, 18493]

큰 수를 소인수분해하기

41758540882408627201을 소인수분해합니다. 정수가 flintmax보다 크므로 sym을 사용하여 기호 객체로 변환하고, 그 값을 정확하게 나타내기 위해 숫자를 따옴표로 묶습니다.

n = sym('41758540882408627201');
factor(n)
ans =
[ 479001599, 87178291199]

기호 분수 인수분해하기

sym을 통해 분수 112/81를 기호 객체로 변환하여 인수분해합니다.

F = factor(sym(112/81))
F =
[ 2, 2, 2, 2, 7, 1/3, 1/3, 1/3, 1/3]

다항식 인수분해하기

다항식 x^6-1을 인수분해합니다.

syms x
F = factor(x^6-1)
F =
[ x - 1, x + 1, x^2 + x + 1, x^2 - x + 1]

다항식 y^6-x^6을 인수분해합니다.

syms y
F = factor(y^6-x^6)
F =
[ -1, x - y, x + y, x^2 + x*y + y^2, x^2 - x*y + y^2]

지정된 변수를 포함하는 인수 분리하기

x를 포함하는 인수에 대해 y^2*x^2을 인수분해합니다.

syms x y
F = factor(y^2*x^2,x)
F =
[ y^2, x, x]

factorx가 없는 모든 인수를 첫 번째 요소에 결합합니다. F의 나머지 요소에는 x를 포함하는 기약 인수가 있습니다.

기호 변수 bc를 포함하는 인수에 대해 다항식 y를 인수분해합니다.

syms a b c d
y = -a*b^5*c*d*(a^2 - 1)*(a*d - b*c);
F = factor(y,[b c])
F =
[ -a*d*(a - 1)*(a + 1), b, b, b, b, b, c, a*d - b*c]

factorb 또는 c가 없는 모든 인수를 F의 첫 번째 요소에 결합합니다. F의 나머지 요소에는 b 또는 c가 포함된 y의 기약 인수가 있습니다.

인수분해 모드 선택하기

FactorMode 인수를 사용하여 특정 인수분해 모드를 선택합니다.

인수분해 모드를 지정하지 않고 표현식을 인수분해합니다. 기본적으로 factor는 유리수에 대한 인수분해를 사용합니다. 이 모드에서 factor는 유리수를 정확한 기호 형식으로 유지합니다.

syms x
factor(x^3 + 2, x)
ans =
x^3 + 2

이번에는 실수에 대한 수치적 인수분해를 사용하여 동일한 표현식을 인수분해합니다. 이 모드에서는 표현식을 실수 계수가 있는 1차 및 2차 기약 다항식으로 인수분해하고 모든 숫자형 값을 부동소수점 숫자로 변환합니다.

factor(x^3 + 2, x, 'FactorMode', 'real')
ans =
[ x + 1.2599210498948731647672106072782,...
  x^2 - 1.2599210498948731647672106072782*x + 1.5874010519681994747517056392723]

복소수에 대한 인수분해를 사용하여 이 표현식을 인수분해합니다. 이 모드에서 factor는 2차 다항식을 복소수 계수가 있는 1차 표현식으로 축약합니다. 이 모드는 모든 숫자형 값을 부동소수점 숫자로 변환합니다.

factor(x^3 + 2, x, 'FactorMode', 'complex')
ans =
[ x + 1.2599210498948731647672106072782,...
  x - 0.62996052494743658238360530363911 + 1.0911236359717214035600726141898i,...
  x - 0.62996052494743658238360530363911 - 1.0911236359717214035600726141898i]

완전 인수분해 모드를 사용하여 이 표현식을 인수분해합니다. 이 모드는 표현식을 1차 표현식으로 인수분해하여 2차 다항식을 복소수 계수가 있는 1차 표현식으로 줄입니다. 이 모드는 유리수를 정확한 기호 형식으로 유지합니다.

factor(x^3 + 2, x, 'FactorMode', 'full')
ans =
[ x + 2^(1/3),...
  x - 2^(1/3)*((3^(1/2)*1i)/2 + 1/2),...
  x + 2^(1/3)*((3^(1/2)*1i)/2 - 1/2)]

vpa를 사용하여 결과의 근사치를 부동소수점 숫자로 계산합니다. 표현식에 변수 x 이외의 기호 파라미터가 없기 때문에 결과는 복소수 인수분해 모드와 동일합니다.

vpa(ans)
ans =
[ x + 1.2599210498948731647672106072782,...
  x - 0.62996052494743658238360530363911 - 1.0911236359717214035600726141898i,...
  x - 0.62996052494743658238360530363911 + 1.0911236359717214035600726141898i]

RootOf를 포함하는 결과의 근사치 계산하기

완전 인수분해 모드에서 factorRootOf로 표현된 다항식 근에 대한 기호 합으로 결과를 반환할 수도 있습니다.

다음 표현식을 인수분해합니다.

syms x
s = factor(x^3 + x - 3, x, 'FactorMode','full')
s =
[ x - root(z^3 + z - 3, z, 1),...
  x - root(z^3 + z - 3, z, 2),...
  x - root(z^3 + z - 3, z, 3)]

vpa를 사용하여 결과의 근사치를 부동소수점 숫자로 계산합니다.

 vpa(s)
ans =
[ x - 1.2134116627622296341321313773815,...
  x + 0.60670583138111481706606568869074 + 1.450612249188441526515442203395i,...
  x + 0.60670583138111481706606568869074 - 1.450612249188441526515442203395i]

입력 인수

모두 축소

인수에 대한 입력값으로, 숫자, 기호 숫자, 기호 표현식 또는 기호 함수로 지정됩니다.

필요한 변수로, 기호 변수 또는 기호 변수로 구성된 벡터로 지정됩니다. vars에 지정한 변수를 포함하지 않는 인수는 F의 첫 번째 요소로 그룹화됩니다. F의 나머지 요소에는 vars의 변수를 포함하는 x의 기약 인수가 자리합니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 버전에서는 쉼표를 사용하여 각 이름과 값을 구분하고 따옴표로 Name을 묶으십시오.

예: factor(x^3 - 2,x,'FactorMode','real')

인수분해 모드로, 'FactorMode'와 다음 중 하나의 문자형 벡터가 쉼표로 구분된 쌍으로 지정됩니다.

'rational'유리수에 대한 인수분해.
'real'실수에 대한 인수분해. 실수 수치 인수분해는 실수 계수가 있는 1차 및 2차 기약 다항식으로 인수분해하는 것입니다. 이 인수분해 모드를 사용하려면 입력값의 계수가 실수 부동소수점 숫자로 변환 가능해야 합니다. 다른 모든 입력값(예: 기호 계수 또는 복소수 계수가 포함된 입력값)은 기약 인수로 취급됩니다.
'complex'복소수에 대한 인수분해. 복소수 수치 인수분해는 계수가 부동소수점 숫자인 선형 인수로 인수분해하는 것입니다. 이러한 인수분해는 입력값의 계수를 부동소수점 숫자로 변환할 수 있는 경우, 즉 근이 숫자로 결정될 수 있는 경우에만 사용할 수 있습니다. 기호 입력값은 기약 인수로 취급됩니다.
'full'완전 인수분해. 완전 인수분해는 선형 인수가 될 때까지 기호적으로 분해하는 것입니다. 결과로 나타나는 인수는 근호로 표현되거나 RootOf에 대한 symsum으로 표현됩니다.

출력 인수

모두 축소

입력값의 인수(factor)로, 기호 벡터로 반환됩니다.

  • flintmax보다 큰 정수를 인수분해하려면 해당 정수를 sym으로 감싸십시오. 그런 다음 정수를 따옴표로 묶어 정확하게 나타냅니다(예: sym('465971235659856452')).

  • 음의 정수를 인수분해하려면 해당 정수를 sym으로 감싸십시오(예: sym(-3)).

버전 내역

R2006a 이전에 개발됨