맨위로가기

근 찾기 알고리즘

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

근 찾기 알고리즘은 주어진 방정식의 근을 찾는 데 사용되는 수치 해석적 방법이다. 이분법, 뉴턴 방법, 할선법, 가위치법, 브렌트법 등이 있으며, 각 방법은 수렴 속도와 안정성 측면에서 차이를 보인다. 다항식의 근을 찾는 데 특화된 라게르 법, 젠킨스-트라웁 법, 듀란-카너 법과 같은 방법도 존재한다. 중근을 계산하기 위한 알고리즘도 개발되어 있다.

더 읽어볼만한 페이지

  • 근 찾기 알고리즘 - 뉴턴 방법
    뉴턴 방법은 미분 가능한 함수의 근을 찾기 위해 초기 추측값에서 시작하여 접선의 x절편을 다음 추측값으로 반복 설정하여 해를 근사하는 수치해석 알고리즘이다.
  • 근 찾기 알고리즘 - 유리근 정리
    유리근 정리는 유일 인수 분해 정역 위에서 정의된 다항식환의 다항식이 분수체 원소를 근으로 가질 때, 분자는 상수항을 나누고 분모는 최고차항을 나눈다는 정리로, 일계수 다항식이면 그 근은 환의 원소가 된다.
  • 대수학 - 다항식
    다항식은 변수, 계수, 상수항으로 구성되어 덧셈, 뺄셈, 곱셈, 거듭제곱 연산으로 결합된 항들의 유한한 합으로 표현되는 식이며, 대수 방정식 해를 구하는 데 중요하고 현대 수학에서 폭넓게 활용된다.
  • 대수학 - 상수
    상수는 변하지 않는 일정한 값을 가지는 수로, 함수에서 변수와 대비되며 수식 내에서 고정된 값을 갖고, 원주율, 자연로그의 밑, 허수 i 등이 대표적인 예시이다.
근 찾기 알고리즘
개요
분야수치 해석학
문제함수의 근 찾기
알고리즘 종류
괄호 방법이분법
가위치법
열린 방법뉴턴 방법
할선법
브렌트 방법
다항식 근 찾기 알고리즘베어스토우 방법
듀란드-커너 방법
젠킨스-트라웁 알고리즘
다변수 근 찾기 알고리즘브로이덴 방법
경사하강법
뉴턴 방법
준-뉴턴 방법

2. 주요 근사해 탐색 알고리즘

다음은 주요 근사해 탐색 알고리즘들이다.


  • '''가위치법'''(False position method): 할선법과 유사하지만, 이전 단계에서 계산한 두 점을 사용하는 대신, 근을 묶는 위치에 있는 점을 선택한다. 이분법보다 수렴 속도가 빠르고, 할선법보다 안정적이다.
  • '''스테펜슨법'''(Steffensen's method)
  • '''라게르 법''': 더 복잡하지만, 수렴 속도가 빠르다.[9][3] 단근의 경우 3차 수렴을 보이며, 뉴턴 방법보다 빠르다. '''젠킨스-트라웁 법'''도 뉴턴법보다 복잡하지만 빠르다.[10][11][12]
  • '''듀란-카너 법, 아버스 법''': 복소수 계산을 통해 모든 근을 동시에 구한다. 듀란과 카너에 의해 다항식에 어떤 변형을 가한 후 뉴턴 방법을 적용하는 방법이 제안되었고, 아버스에 의해 초기값 부여 방법이 제시되었다.[1]
  • '''분할 원법''': 고차 다항식의 근을 임의의 정밀도까지 구하는 데 유용하다. 계산량도 최적에 가깝다.
  • '''윌킨슨의 다항식''': 제임스 H. 윌킨슨에 의해 제안된 다항식이다. 이는 다항식의 근을 구할 때, 높은 정밀도가 필요할 수 있다는 것을 보여주는 예시이다.[13]
  • '''비르제-비에트 방법'''
  • '''루피니-호너 방법'''


함수가 다항식인 경우는 잘 연구되어 있으며, 다항식의 성질을 활용한 근 찾기 알고리즘이 존재한다. 단, 2차 방정식의 해조차 수치적 안정성에 주의가 필요하다.[8]

실근의 경우, 스투름의 정리가 근의 위치를 특정하거나 분리하는 데 도움이 된다.[2] 이와 구간 연산을 뉴턴법과 조합한 근 찾기 알고리즘도 생각할 수 있지만, 다른 방법을 사용하는 것이 일반적이다.

하나의 가능성으로, 다항식의 콤파니언 행렬을 만드는 방법을 생각할 수 있다. 콤파니언 행렬의 고유값은 다항식의 근과 일치하므로, 임의의 고유값 해법을 다항식의 근 찾기에 사용할 수 있다.[1] 예를 들어, 절댓값이 큰 근을 구하기 위한 고전적인 베르누이 법은, 근이 존재하는 경우 콤파니언 행렬에 대한 '''멱승법'''에 해당한다.

2. 1. 이분법

이분법은 가장 단순한 근 찾기 알고리즘으로, 연속 함수에서 중간값 정리를 이용하여 근을 찾는다. f|f영어가 연속 함수이고, f(a)|f(a)영어와 f(b)|f(b)영어가 다른 부호를 갖는 초기값 a|a영어, b|b영어가 알려져 있음을 전제로 한다. 안정적인 해법이지만 수렴 속도가 느리고, 1단계마다 1비트의 정밀도가 향상된다.

2. 2. 뉴턴 방법 (뉴턴-랩슨 방법)

뉴턴 방법(뉴턴-랩슨 방법)은 함수의 미분값을 이용하여 근을 찾는 알고리즘이다. 초기 추정치가 근에 충분히 가까우면 빠르게 수렴하지만, 그렇지 않으면 발산할 수 있다. 대한민국에서는 이공계 연구에서 널리 사용되는 방법 중 하나이다.[1][2][3][4]

초기값이 근에서 멀리 떨어져 있는 경우에는 반드시 수렴하지 않지만, 수렴하는 경우에는 이분법보다 빠르다. 뉴턴 방법은 수렴 속도가 일반적으로 2차이며, 정밀도는 1단계마다 2배가 된다. 함수가 연속적인 미분 값을 갖는다는 것을 전제로 한다. 뉴턴 방법은 다차원 문제로 곧바로 일반화할 수 있다는 점에서도 중요하다. 더 높은 차수의 수렴을 보이는 방법은 '''하우스홀더 방법'''으로 분류된다. 이 중 가장 단순한 '''할리법'''은 3차 수렴을 보인다.

2. 3. 할선법

뉴턴 방법의 미분을 차분으로 대체한 것이다.[4][5] 이 방법은 미분의 계산(및 존재)을 필요로 하지 않지만, 수렴 속도가 느리다(차수는 1.6 정도이다).[4] 미지의 함수를 선형 보간을 사용하여 근사한 것에 해당한다. 그에 반해 2차 보간을 사용하는 것을 '''뮬러법'''이라고 한다. 뮬러법은 할선법보다 수렴 속도가 빠르지만, 반복 과정에서 근사해가 허수 값을 가질 수 있다. 이는 역함수를 보간함으로써 회피할 수 있다. 이를 역 2차 보간이라고 한다. 뮬러법은 할선법보다 점근적으로 수렴 속도가 빠르지만, 출발점이 해에서 멀리 떨어져 있는 경우에는 수렴이 느려진다.

2. 4. 브렌트-데커 방법 (브렌트법)

이분법, 할선법, 역 2차 보간법을 결합한 방법이다. 각 단계에서 어떤 방법이 가장 적합한지 판단하여 해당 방법을 선택한다. 안정적이면서도 빠른 속도를 가지므로 널리 사용된다.[6][7]

2. 5. 베어스토우 방법

'''베어스토우 방법'''은 실수 계수 다항식의 2차 인수를 찾는 데 뉴턴 방법을 사용하는 알고리즘이다. 실수 계산만으로 실수 다항식의 실수 근과 복소수 근을 구할 수 있다.[8]

2. 6. 기타 알고리즘

3. 다항식의 근 찾기

함수 가 다항식인 경우는 잘 연구되어 있으며, 다항식의 성질을 활용한 근 찾기 알고리즘이 존재한다. 단, 2차 방정식의 해조차 수치적 안정성에 주의가 필요하다[8]

실근의 경우, 스투름의 정리가 근의 위치를 특정하거나 분리하는 데 도움이 된다[2]。이와 구간 연산을 뉴턴 방법과 조합한 근 찾기 알고리즘도 생각할 수 있지만, 다른 방법을 사용하는 것이 일반적이다.

다항식의 근을 찾는 방법 중 하나는 다항식의 콤파니언 행렬을 이용하는 것이다.

베어스토우 방법은 실수 계수 다항식의 2차 인수를 구하는 데 뉴턴 방법을 사용한다. 실수 계산만으로 실수 다항식의 실근과 복소수 근을 구할 수 있다.

3. 1. 콤파니언 행렬

함수가 다항식인 경우, 다항식의 콤파니언 행렬을 만들 수 있다. 콤파니언 행렬의 고윳값은 다항식의 근과 일치하므로, 임의의 고윳값 해법을 다항식의 근 찾기에 사용할 수 있다.[1] 예를 들어, 절댓값이 큰 근을 구하기 위한 고전적인 베르누이 법은 근이 존재하는 경우 콤파니언 행렬에 대한 멱승법에 해당한다.

3. 2. 라게르 방법

라게르 법은 복잡하지만, 수렴 속도가 빠르다.[9][3] 단일 근의 경우 뉴턴 방법보다 빠른 3차 수렴을 보인다. 젠킨스-트라웁 법도 뉴턴법보다 복잡하지만 빠르다.[10][11][12]

3. 3. 젠킨스-트라웁 방법

뉴턴 방법보다 복잡하지만, 수렴 속도가 빠르다.[10][11][12]

3. 4. 듀란-카너 방법 (아버스 방법)

듀란-카너 방법(아버스 방법)은 복소수 계산을 통해 모든 근을 동시에 구하는 방법이다. 듀란과 카너는 다항식에 어떤 변형을 가한 후 뉴턴 방법을 적용하는 방법을 제안했고, 아버스는 초기값 부여 방법을 제시하였다.[1]

3. 5. 분할 원법

분할 원법은 고차 다항식의 근을 임의의 정밀도까지 구하는 데 유용한 알고리즘이다.[1] 계산량도 최적에 가깝다.

3. 6. 윌킨슨 다항식

제임스 H. 윌킨슨이 제시한 다항식으로, 다항식의 근을 구할 때 높은 정밀도가 필요할 수 있음을 보여주는 예시이다.[13]

4. 중근 계산

다항식 p(x)가 중근을 가질 경우, 일반적인 근 찾기 알고리즘으로는 근을 계산하기 어렵다. 계수가 명시적으로 주어진 일변수 다항식에 대해서는 다음과 같은 알고리즘이 존재한다.

1. 먼저, p(x)가 중근을 갖는지 알아야 한다. p(x)r에서 중근을 갖는다면, 미분 p'(x)r에서 근을 가지므로, p(x)p'(x)의 최대공약수를 계산하고, 최고차항의 계수가 1이 되도록 상수배한 것을 g(x)로 한다. (g = \gcd(p, p')) 스투름의 정리를 참조하라. g(x) = 1이라면, p(x)는 중근을 갖지 않으므로, 다른 근 찾기 알고리즘으로 근을 구하고 종료한다.

2. p(x)가 중근을 갖는다고 가정한다. g(x)r에서 p'(x)와 같은 중복도의 근을 가지며, g(x)의 차수는 p(x)보다 작다는 것에 주의한다. 재귀적으로 이 루틴을 적용하여(1단계로 돌아가 p(x)g(x)로 둔다), g(x)의 근을 계산한다.

3. g가 얻어졌으므로, p(x)(x - r)로 분해하고, r에 있는 모든 중근이 제거될 때까지 이것을 반복한다. 몫으로부터 다른 근 찾기 알고리즘으로 근을 구하고 종료한다.

5. 관련 서적


  • Birge-Vieta method영어[1]
  • 비선형방정식의 근한국어[2]
  • 이리 마사오, 《수치 계산: 방정식의 해법》, 아사쿠라 서점, ISBN 978-4-25411362-4 (1981년 12월)
  • 빅터 Y. 팬, "다항식 방정식 풀기: 역사와 최근 진전", SIAM 리뷰, Vol.39, No.2, pp.187-220 (1997년 6월)
  • 존 마이클 맥네미, ''다항식의 근을 구하는 수치적 방법 - 파트 I'', 엘스비어, ISBN 978-0-444-52729-5 (2007년 6월 4일)
  • 존 마이클 맥네미, 빅터 Y. 팬, ''다항식의 근을 구하는 수치적 방법 - 파트 II'', 엘스비어, ISBN 978-0-444-52730-1 (2013년 6월 19일)

참조

[1] 서적 数値解析入門 サイエンス社 2003-06
[2] 서적 数値解析 共立出版 2002-02
[3] 서적 Applied and Computational Complex Analysis I Wiley 1974
[4] 서적 UNIX & Information Science-5 C 言語による数値計算入門 サイエンス社 2005
[5] 웹사이트 Secant Method http://mathworld.wol[...]
[6] 서적 Algorithms for Minimization Without Derivatives Prentice-Hall 1973
[7] 웹사이트 Brent's Method http://mathworld.wol[...]
[8] 웹사이트 安定性 http://www.nag-j.co.[...]
[9] 논문 Sur une m´ethode pour obtenir par approximation les racines d’une ´equation alg´ebraique qui a toutes ses racines r´eelles 1898
[10] 논문 A Three-Stage Variables-Shift Iteration for Polynomial Zeros and Its Relation to Generalized Rayleigh Iteration 1970
[11] 서적 Numerical Recipes in FORTRAN: The Art of Scientific Computing Cambridge University Press 1992
[12] 서적 A First Course in Numerical Analysis McGraw-Hill 1978
[13] 서적 Rounding Errors in Algebraic Processes Prentice Hall 1963



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com