제곱근

Square root

1 개요

수학에서 사용되는 연산으로, 거듭제곱의 역연산에 해당한다. 제곱해서 [math]a[/math]가 되는 것은 모두 [math]a[/math]의 제곱근이라고 한다.

음이 아닌 실수 [math]a[/math]에 대하여 [math]x[/math]에 대한 방정식 [math]x^2=a[/math]유일한 음이 아닌 실근을 [math]\sqrt{a}[/math]로 정의한다. 이때 [math]-\sqrt{a}[/math]의 제곱도 [math]a[/math]가 되므로 양수 [math]a[/math]의 제곱근은 [math]\pm \sqrt{a}[/math]로 두 개가 존재하게 된다. 참고로 제곱근 2(=루트 2)와 2의 제곱근은 다른 말이다. 전자는 [math] + \sqrt{2} [/math] 이고 후자는 [math]\pm \sqrt{2} [/math] 이다.

대한민국에서는 중3때 처음으로 배우게 되며, 무리수의 시작이라 볼 수 있다.[1] 이후 피타고라스의 정리나 2차 방정식, 고등학교 과정, 그리고 고등학교 이상 과정에서도 많이 써먹게 된다. 이 때 사용하는 √ 모양의 기호는 근호(根號)라고 한다.

중3때 2차 방정식을 배울 때 판별식 [math]D\lt0[/math]일때 해가 없다고 배운다. 실수 집합에서는 음수의 제곱근을 정의할 수 없기 때문이다. 그래서 고등학교에서 새로운 단위 [math]\sqrt{-1} = i [/math] 를 정의하게 된다. 이 허수를 이용해 판별식에서 [math]D\lt0[/math]인 이차방정식의 해를 구할 수 있게 되며 해가 실수일때 실근, 해가 허수일 때 허근이라고 부른다. 사원수이원수 등에서는 여러 개의 허수를 다룰 수 있으며 실수로 이뤄진 행렬로 나타낼 수 있다.

미적분을 할때 가장 보기 싫은 기호 중 하나. 이 녀석이 들어가면 미적분이 배는 어려워진다. 그나마 미분은 근호를 분수지수로 나타낸 후 다항함수 미분하듯 미분하면 돼서 쉬운데 적분은 진짜 이거 하나 때문에 삼각치환이니 별 짓을 다해야 하고 그나마도 이거 하나 때문에 초등함수 역도함수를 못 구할 때가 많다.

허수 자체도 제곱근을 정의할 수 있다. 허수 단위 [math]i[/math]의 제곱근은 [math]\displaystyle \pm \left(\cos {\pi \over 4} + i \sin {\pi \over 4}\right) = \pm\left(\frac{1}{\sqrt{2}} + \frac{1}{\sqrt{2}}i\right)[/math] 이다. 이는 오일러의 공식에서 유도할 수 있다.

그 외에도 세제곱근, 네제곱근 등이 있다. 모든 유리수의 제곱근은 실수 범위 수직선에 작도가 가능하지만, n제곱근에서 n > 2일때 유리수의 n제곱근은 작도할 수 없다.

함수에도 제곱근이 있는데, [math] g\left(x\right) =\left( f \circ f\right)\left(x\right) [/math] 에서 f가 g의 함수제곱근이다.

계산기가 별로 없던 옛날에는 고등학교때 제곱근을 소수로 바꾸는 법[2]을 배웠었다. 지금은 계산기가 흔하니 웬만한 이과생들도 배우지 않지만, 아직도 이걸 활용하는 곳은 있다. 바로 마이크로프로세서에 들어가는 제곱근기를 만드는 분야(=계산기 만드는 분야). 2진법에서도 적용할수 있는 방식이라 활용할 수 있다. 일본 고등학교 수학과정의 경우 제곱근 개평법을 배우며, 소숫점 아래 8자리까지 외운다.

인천광역시 시내버스 공동배차 시절, 근호를 형상화한 도색(정확히는 바다를 형상화했다고 한다)을 활용하여 버스 동호인 사이에서 루트도색이라고 불린다.

종종 근호 기호(√; U+221A)를 체크 표시(✓,✔; U+2713, U+2714) 대용으로 쓰기도 하는데, 그냥 가짜동족어일 뿐이다. 거기다 서체마다 윗줄 부분이 있기도 해서 이런 경우 보기가 영 좋지 않다.[3]

표제어의 제약에도 불구하고 나무위키에는 √2, √3, √5 등의 문서가 생성되어 있다.

2 제곱근의 계산

[math]a, b[/math]가 모두 양수일 때 다음과 같이 계산하는 것이 가능하다.[4]

2.1 제곱근의 곱셈

  • 제곱근 끼리 곱할 때는 간단히 근호 안의 수끼리 곱한다.
[math]\sqrt{a}\sqrt{b}=\sqrt{ab}[/math]
  • 근호 밖에 수가 곱해져있을 때는 근호 밖의 수끼리, 근호 안의 수끼리 곱한다
[math]m\sqrt{a}[/math] × [math] n\sqrt{b}=mn\sqrt{ab}[/math]

2.2 제곱근의 나눗셈

  • 역수의 곱셈으로 고쳐서 계산한다.
  • [math]\displaystyle \frac{\sqrt{a}}{\sqrt{b}}=\sqrt{\frac{a}{b}}[/math]
  • [math]\displaystyle m\sqrt{a} \div n\sqrt{b}=m\sqrt{a}\times \frac{1}{n\sqrt{b}}=\frac{m}{n}\sqrt{\frac{a}{b}}[/math]

2.3 제곱근의 미분

  • 지수 꼴로 바꾼 다음 지수에서 1을 빼는 동시에 원래 지수의 값을 곱한다. 세제곱근, 네제곱근 등도 마찬가지.
[math]\displaystyle {d \over dx} \sqrt{x} = {d \over dx} x^{1 \over 2} = {1 \over 2} x^{-{1 \over 2}} = {1 \over 2 \sqrt{x}} [/math]

2.4 제곱근의 적분

치환적분 문서 참고. 이 문서에서 다루기엔 여백이 부족하다.

3 제곱근을 구하는 방법

여기에 제시된 방법 말고도 펠 방정식, 테일러 전개, 골드슈미츠 알고리즘, 연분수 전개등 여러 방법들이 있다.

3.1 하나씩 넣어보자

[math] \sqrt{16} [/math][math] \sqrt{144} [/math]같이 간단한 식은 어떤 수의 제곱을 하여 점점 가까워지는 수를 찾으면 된다. 예를 들어서 [math] \sqrt{16} [/math]의 값을 구하려면 제곱이 되어서 16이 되는 수를 찾아야 한다. [math] 2^2=4 [/math], [math] 3^2=9 [/math], [math] 4^2=16 [/math]으로서, 따라서 [math] \sqrt{16} [/math]의 값은 4이다. 이렇게 계속 수를 크게 하여 제곱해가면서 제곱근을 구하는 방법이 있다. 만약 두 제곱수의 사이라면(ex 3 < [math] \sqrt{15.2512} [/math] < 4) 이번에는 자릿수를 늘려서 3.0, 3.1, 3.2...를 대입해가며 점차 유효숫자를 늘려가면 된다. 제곱근을 구하려는 수가 좀 크다거나 너무 작다거나 할 경우 100적절히 곱하거나 나누어 1100 사이의 수로 만들면 첫자리 수를 찾기 쉽다. 원래 값을 구하려면 다시 10으로 같은 회수로 나누거나 곱하면 된다.

3.2 개평법(Digit-by-digit calculation)

위의 방법으로 구하다보면 k개의 유효숫자 구하는데 k자리수끼리의 곱셈을 여러번 해야 한다. 당연히 인간은 귀찮은 것을 싫어하므로 이를 피하기 위한 방법을 개발했으니 개요에도 소개된 개평법이 그것이다.

이는 근본적으로 곱셉공식 [math] \left(a+b\right)^2 = a^2 + 2ab + b^2[/math] 내지는 [math] \left(a+b\right)^2 - a^2 = (2a + b) \times b [/math]을 이용하는 것으로, [math] \sqrt{15.2512} [/math]의 예를 다시 들면 하나씩 넣어보기가 [math] (3 + 0.1 \times @) ^2 \lt 15.2512 [/math]인 최대의 @을 찾는 방법이라면 개평법은 3.0, 3.1, 3.2 ...등은 모두 [math] 3 + 0.1 \times @ [/math]꼴이니 위의 곱셈공식에서 a에 3을 넣고 양변에 100을 곱해 [math] (3\times 20 + @) \times @ \lt 625.12 \left(=(15.2512 - 3^2) \times 100 \right) [/math]인 최대의 @(=9)을 찾는 것이다. 여기서 좌변인 [math] (3\times 20 + @) \times @ [/math]이 정수란 걸 이용하면 우변의 소수점아래를 버림해서 그냥 [math] (3\times 20 + @) \times @ \lt 625 [/math] 로 깔끔하게 쓸수도 있다. 그 다음엔 [math]3\times 10 + 9 [/math]을 a로 놓고 다음자리수 @을 구하고...의 반복으로 k자리수와 한자리수를 더해서 거기에 한자리 수만 곱하면 된다. 이는 앞의 방법에 비하면 계산량이 차원이 다르다. (실제로 대략 [math]O(k^2)[/math]에서 [math]O(k)[/math]가 된 것이다.)

방법은 설명했으니 예시를 보자. 313.29라는 수의 제곱근을 구해보자.

  • 일단 313.29위에 루트([math] \sqrt{} [/math])를 씌운다.
  • 313.29를 소수점을 기준으로 2개씩 끊어준다.[5] 그러니까 예를 들자면 3|13|.29이런식으로 말이다.
  • 2개씩 끊은 수들 중 맨 앞 숫자를 본다. 그러니까 313.29를 2개씩 나눴을때 맨 앞 숫자는 3이 된다.[6](이는 원래의 수를 100을 적절히 나누고 곱해 두자리 정수만 남기고 소수점 아래를 버린것과 같다)
  • (a를 찾는다.) 제곱을 했을 때 맨 앞 숫자를 넘지 않는 최대의 자연수의 제곱수를 구한다. 그러니까 맨 앞 숫자가 3인데 [math] 1^1=1 [/math], [math] 2^2=4 [/math]이므로 2의 제곱은 3을 넘어버리므로 3을 넘지 않는 최대의 자연수의 제곱수는 1이다.
  • ([math] a^2 [/math]을 빼서 100을 곱하고 소수점아래를 버린다) 루트 위에다 1이라고 적은 후 맨 앞 숫자에 1을 뺀 수에다 분리한 두번째 수를 적는다. 그러니까 3에서 1을 빼면 2이고 2개씩 분리한 숫자들 중 두번째 숫자는 13이므로 213이라고 밑에 적는다.
  • (@을 구한다) 그 다음 1을 두 배한 다음 @라는 임의의 수를 붙여 두 자리 수를 만든 다음 ([math] 1 \times 20 + @ [/math]) 다시 @으로 곱한 수가 213을 넘지않는 최대의 수가 되어야 한다. 그러니까 1의 두 배는 2이고 2뒤에 임의의수 @를 붙인 2@ [math] \times [/math] @가 213을 넘지않는 최대의 수가 되려면 @는 7이 되어야한다. ([math] 27\times7 = 189 \lt 213 \lt 224 = 28\times8[/math])
  • 313.29에 소수점이 13뒤에 있었으므로 13까지 계산하고 나서(a=17) 루트위에 소수점을 붙인다.
  • ([math] a^2 [/math]을 빼서 100을 곱하고 소수점아래를 버린다)루트 위에다 7이라고 적은 후 213에다 189를 뺀 숫자를 밑에 적는다. 그 다음 그 뒤에 분리한 세번째 수를 적는다. 그러니까 213에서 189를 빼면 24이고 2개씩 분리한 숫자중 세번째숫자는 29이므로 2429라고 적으면 된다.
  • ([math]a\times 10 + @ [/math]가 새로운 a가 된다.) 17의 두배를 한 수 뒤에 임의의 수 @를 붙이고[math] (17\times 20 + @) [/math] 다시 @로 곱한 수가 2429를 넘지않는 최대의 수를 갖게 하면 된다. 34@ [math] \times [/math] @이므로 @는 7이된다. [math] 347\times7=2429 [/math]이므로 2429를 넘지않는 최대의 수이다.
  • 루트 위에다 7을 적는다. 2429와 2429를 뺀 숫자를 적는다. 그러니까 0을 적으면 된다.
  • 최종적으로 0이 나오면 운좋게도 제곱근 구하기를 완료한 것이다. 루트안의 수가 무한소수거나 자리수를 나눌때 m개로 나누었는데(313.29의 경우 3 13 29의 3개) 루트를 m자리까지 구해도 안끝나는 경우는 루트자체가 무한소수이므로 적절한 유효숫자에서 관둬야 한다.

잘 모르겠다면 아래의 과정까지 좀 더 상세하게 풀이한 그림을 보자.

파일:제곱근.jpg

이 그림은 a에 2를 곱하는 과정을 드러내고 있지 않은데, 사실 대부분 개평법을 쓸 때는 이렇게[7]이런식[8]으로 2a를 함께쓰는게 알아보기 쉽다.

예시는 재미없게 딱 유한소수로 끝나는 수를 가져왔지만 이 방법은 제곱근이 무리수가 나와도 원하는 유효숫자까지 계속 구해나갈 수 있다. 곱셈공식에서 유도된 것이라 임의의 n제곱근 버전을 만들 수도 있다. 이런 n제곱근 구하기를 통틀어서 영어에선 Shifting nth root algorithm라고 부른다. 위키피디아에는 3의 세제곱근이나 7의 네제곱근등을 구하는 예시가 있다.

3.3 바빌로니아 법(Babylonian method)

헤론법(Hero's method)이라고도 불리며 뉴턴-랩슨법의 제곱근버전이라고 할 수 있다.

뉴턴-랩슨법은 기본적으로 함수를 접선으로 근사해서 근을 찾아나가는 방식인데 [math] \sqrt{c} [/math]를 찾는다고 하면 이는 방정식 [math]f\left(x\right) = x^2-c=0 [/math]의 0보다 큰 근을 찾는 것과 같다. 이 함수 그래프의 [math] x = a [/math]에서의 접선의 방정식은 [math]f'\left(a\right) \times (x-a) + f\left(a\right) [/math]이고 이 방정식은 [math] x = a - {f\left(a\right) \over f'\left(a\right)} [/math]일 때 0이 된다 이를 정리하면 [math] x = {a + {c \over a} \over 2} [/math]가 되며 이 x를 새 a로 삼아 반복한다.

a를 엄청 생뚱맞게 잡아도(1이라던가) c>0이고 a>0이기만 하면 바빌로니아 법을 쓰면 a가 [math] \sqrt{c} [/math]로 수렴한다.

문제는 산술기하 부등식을 잘 조작해보면 알겠지만, 운좋게 [math] a = \sqrt{c} [/math]로 시작하지 않는 이상, 두 번째 a부터는 항상 [math] \sqrt{c} \lta [/math]라는 것이다. 즉 [math] \sqrt{313.29} [/math]같이 잘 나누어 떨어지는 수라도 처음에 a= 17.7로 시작하지 않는다면 무한번 하지 않는 이상 a는 17.7보다 큰 값이 나온다. 이런 문제도 있고 무한소수가 툭하면 나오기 때문에 유효숫자를 정해두고 거기까지만 계산하여 다음 a를 정하고 더 이상 변화가 없을 때 끊는 방식으로 주로 사용한다. 그래도 계산이 쉽고 수렴속도가 빨라서 꽤나 유용하긴 하다. 얼마나 빠르냐면 a=600으로 [math] \sqrt{125348} [/math]를 유효숫자 소수점 아래 3자리까지 구하는데 5번 반복하면 된다.

  1. 사실 원주율이 제곱근보다 더 먼저 등장하긴 하는데 이 쪽은 초월수이다보니 계산할 때는 일종의 기호 취급밖에 못 받는다.
  2. 이를 제곱근 개평법이라 한다.
  3. 사실 완성형에 근호는 있지만 체크 표시가 없어서인 것이 크게 작용한다.
  4. 레온하르트 오일러가 이 부분을 헷갈려서 음이든 양이든 상관없이 쓰다가 그럼 [math] 2i \times 3i = 6 [/math]이냐?라고 까였다는건 꽤나 유명한 일화...
  5. 이걸 잘못이해해서 뒤에서부터나 앞에서부터 끊다간 [math] \sqrt{123.456} [/math]이나 [math] \sqrt{1/9} = \sqrt{0.111...}[/math] 따위를 구하기 곤란하다 물론 빈자리는 0으로 채우면 된다.
  6. 예를 들어 숫자가 123456이였다면 2개씩 끊었을 때 맨 앞 숫자는 12가 된다.
  7. 출처
  8. 출처