방정식의 근 구하기

방정식의 근 구하기 (Finding Roots)

Octave는 주어진 다항식의 근(root)을 찾을 수 있어요. 다항식의 동반 행렬(companion matrix)을 계산한 다음(정의는 compan 함수 참고) 그 행렬의 고유값을 구하는 방식으로 동작합니다. Octave 매뉴얼 28.2절을 정리해 볼게요.

출처: Finding Roots

본문

roots

r = roots (c)

다항식 c의 근을 계산해요. N개의 성분을 가진 벡터 c에 대해 다음 다항식의 근을 돌려줍니다:

c(1) * x^(N-1) + ... + c(N-1) * x + c(N)

예를 들어 다음 코드는 이차 다항식 p(x) = x^2 - 5의 근을 찾아요:

c = [1, 0, -5];
roots (c)
⇒   2.2361
⇒  -2.2361

실제 근은 +/- sqrt(5), 즉 대략 +/- 2.2361이라는 점을 기억하세요.

See also: poly, compan, fzero.

polyeig

z = polyeig (C0, C1, …, Cl)
[v, z] = polyeig (C0, C1, …, Cl)

차수 l의 다항식 고유값 문제(polynomial eigenvalue problem)를 풀어요. n×n 행렬 다항식

C(s) = C0 + C1*s + … + Cl*s^l

이 주어졌을 때 polyeig는 고유값 문제

(C0 + C1*z + … + Cl*z^l) v = 0

를 풉니다. 고유값 z는 행렬 다항식의 영점(zero)이라는 점에 주의하세요. zn*l개의 원소를 가진 행 벡터이고, v는 고유벡터에 해당하는 열을 가진 행렬(n x n*l)이에요.

See also: eig, eigs, compan.

compan

A = compan (c)

다항식 계수 벡터 c에 대응하는 동반 행렬을 계산해요. 동반 행렬은:

     _                                                        _
    |  -c(2)/c(1)   -c(3)/c(1)  ...  -c(N)/c(1)  -c(N+1)/c(1)  |
    |       1            0      ...       0             0      |
    |       0            1      ...       0             0      |
A = |       .            .      .         .             .      |
    |       .            .       .        .             .      |
    |       .            .        .       .             .      |
    |_      0            0      ...       1             0     _|

동반 행렬의 고유값은 다항식의 근과 같아요.

See also: roots, poly, eig.

mpoles

[multp, idxp] = mpoles (p)
[multp, idxp] = mpoles (p, tol)
[multp, idxp] = mpoles (p, tol, reorder)

p에서 고유한 극(pole)과 그에 연관된 중복도(multiplicity)를 식별해요. 기본적으로 출력은 가장 큰 크기의 극에서 가장 작은 크기로 정렬됩니다. 두 극은 그 차이가 상대 허용오차 tol보다 작으면 배수(multiple)로 간주해요:

abs (p1 - p0) / abs (p0) < tol

극이 0이면 스케일링을 하지 않고 tol을 절대 허용오차로 해석해요. tol의 기본값은 0.001이에요. 선택적 매개변수 reorder가 false/0이면 극은 정렬되지 않습니다.

출력 multp는 극의 중복도를 지정하는 벡터예요. multp(n)N번째 극 p(idxp(n))의 중복도를 나타냅니다.

예를 들어:

p = [2 3 1 1 2];
[m, n] = mpoles (p)
   ⇒  m = [1; 1; 2; 1; 2]
   ⇒  n = [2; 5; 1; 4; 3]
   ⇒  p(n) = [3, 2, 2, 1, 1]

See also: residue, poly, roots, conv, deconv.

더 알아보기

  • octave-polynomial-manipulations — 다항식 다루기 (별도 문서)
  • octave-linear-algebra — 선형대수 전반 (별도 문서)
  • octave-functions-of-a-matrix — 행렬 지수·로그·제곱근 등