더북(TheBook)

5.4.1 근 구하기

근을 구하는 것은 일반적으로 만나는 문제다. 다음 방정식의 해를 찾고 싶다 하자.

x2 + x - 2 = 0

수동으로 해를 찾으려면 앞의 방정식을 다음과 같이 인수분해하면 된다.

(x + 2)(x - 1) = 0

따라서 이 방정식의 근은 x1 = -2와 x2 = 1이다.

R에서 polyroot() 함수는 다음 다항식의 근을 찾을 수 있다.

p(x) = Z1 + Z2x + ... + Znxn-1

앞 문제에서 방정식에 있는 0차항 계수부터 최고차항의 계수까지 다항식 계수 벡터를 지정한다. 이때 차수가 증가하는 방향으로 계수를 지정하기 위해 계수 벡터는 c(-2, 1, 1)이 된다.

> polyroot(c(-2, 1, 1))
[1] 1-0i -2+0i

이 함수는 항상 각 요소 값이 a+ bi의 복소수 형태인 복소수 벡터를 반환한다. 한편 함수 결과가 반드시 실수 형태인 실근이라면 Re() 함수를 사용하여 복소근의 실수 부분만 추출할 수 있다.

> Re(polyroot(c(-2, 1, 1)))
[1] 1 -2
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.