Main Content

poly

지정한 근을 포함한 다항식 또는 특성 다항식

설명

예제

p = poly(r)은 근이 r의 요소인 다항식의 계수를 반환합니다. 여기서, r은 벡터입니다.

예제

p = poly(A)는 행렬의 특성 다항식 det(λI – A)의 n+1개 계수를 반환합니다. 여기서 An×n 행렬입니다.

예제

모두 축소

행렬 A의 고유값을 계산합니다.

A = [1 8 -10; -4 2 4; -5 2 8]
A = 3×3

     1     8   -10
    -4     2     4
    -5     2     8

e = eig(A)
e = 3×1 complex

  11.6219 + 0.0000i
  -0.3110 + 2.6704i
  -0.3110 - 2.6704i

e의 고유값은 A의 특성 다항식의 근이므로, poly를 사용하여 e의 값으로부터 특성 다항식을 결정합니다.

p = poly(e)
p = 1×4

    1.0000  -11.0000   -0.0000  -84.0000

poly를 사용하여 행렬 A의 특성 다항식을 계산합니다.

A = [1 2 3; 4 5 6; 7 8 0]
A = 3×3

     1     2     3
     4     5     6
     7     8     0

p = poly(A)
p = 1×4

    1.0000   -6.0000  -72.0000  -27.0000

roots를 사용하여 p의 근을 계산합니다. 특성 다항식의 근은 행렬 A의 고유값입니다.

r = roots(p)
r = 3×1

   12.1229
   -5.7345
   -0.3884

입력 인수

모두 축소

다항식 근으로, 벡터로 지정됩니다.

예: poly([2 -3])

예: poly([2 -2 3 -3])

예: poly(roots(k))

예: poly(eig(A))

데이터형: single | double
복소수 지원 여부:

입력 행렬입니다.

예: poly([0 -1; 1 0])

데이터형: single | double
복소수 지원 여부:

출력 인수

모두 축소

다항식 계수로, 행 벡터로 반환됩니다.

  • 입력값이 정사각 n×n 행렬 A인 경우 pA의 특성 다항식에 대한 계수를 포함합니다.

  • 입력값이 근으로 구성된 벡터 r인 경우 p는 근이 r에 있는 다항식에 대한 계수를 포함합니다.

각각의 경우, p에 있는 n+1개 계수는 다음 다항식을 기술합니다.

p1xn+p2xn1+...+pnx+pn+1.

  • 벡터의 경우, r = roots(p)p = poly(r)은 반올림 오차, 나열 순서, 스케일링의 차이는 있지만 서로 역함수입니다.

알고리즘

polyroots에 사용된 알고리즘은 고유값 계산에 대한 현대적 접근 방식의 흥미로운 측면을 보여줍니다. poly(A)A의 특성 다항식을 생성하고, roots(poly(A))는 이 다항식의 근을 구합니다. 이 근은 A의 고유값입니다. 하지만 polyroots 모두 eig를 사용하며, 이것은 유사 변환(Similarity Transformation)에 기반합니다. 고유값을 특성 다항식의 근으로 간주하는 전통적인 접근 방식은 사실상 순서가 이와 반대입니다.

An×n 행렬인 경우, poly(A)는 다음 식에 있는 p(1)부터 p(n+1)까지의 계수를 생성합니다. 여기서 p(1) = 1입니다.

det(λIA)=p1λn++pnλ+pn+1.

알고리즘은 다음과 같습니다.

z = eig(A);
p = zeros(n+1,1); 
p(1) = 1;
for j = 1:n
    p(2:j+1) = p(2:j+1)-z(j)*p(1:j);
end

이러한 재귀는 다음 곱을 전개해 유도됩니다.

(λλ1)(λλ2)(λλn).

poly(A)A의 반올림 오차 범위 내에서 행렬의 특성 다항식의 계수를 생성한다는 사실을 증명할 수 있습니다. 이는 A의 고유값이 조건이 나쁜 경우에도 성립합니다. 특성 다항식을 얻기 위한 전통적인 알고리즘은 고유값을 사용하지 않으며, 이러한 만족스러운 수치적 속성을 갖지 않습니다.

확장 기능

버전 내역

R2006a 이전에 개발됨