본문 바로가기
etc/쉬운 수학이야기

루트2 원하는 만큼 구하는 법

by bigpicture 2023. 1. 17.
반응형


$\sqrt{2}$는 1.414 라는 것은 다들 알고 계실 것입니다. 그런데 $\sqrt{2}$를 10째 자리까지 구하라고 하면 막상 구하는 것이 쉽지 않습니다. 오늘은 $\sqrt{2}$ 를 원하는 만큼 구하는 방법을 알아봅시다. 

$\sqrt{2}$는 $x^2=2$의 한 근입니다.  $x^2=2$ 를 아래와 같이 변형하겠습니다. 

$x^2-2=0$

위 방정식의 근을 함수의 관점으로 생각해봅시다. 위 방정식의 근은 아래 두 함수의 교점이라고 생각할 수도 있습니다. 

$y=x^2-2$
$y=0$

그래프로 그리면 아래와 같습니다. 



그래프 위의 한 점 (4,14)에서 접선을 한번 구해봅시다. $y=x^2-2$를 미분하면 $y'=2x$ 이므로 접선의 기울기는 8입니다. 따라서 접선의 방정식은 아래와 같습니다. 

$y=8x-18$

그래프에 표시해봅시다. 



이때 x축 과의 교점의 좌표를 구해봅시다. $y=8x-18$의 y자리에 0을 넣으면 됩니다. 

$0=8x-18$

x를 구하면 $\frac{9}{4}$이 됩니다. 이번에는 $\frac{9}{4},\frac{9}{4}^2-2$에서의 접선의 방정식을 구하면 아래와 같습니다. 

$y=\frac{9}{2}-\frac{113}{16}$

그래프는 아래 그림의 파란 선입니다. 

 

 

x축과의 교점이 왼쪽으로 이동한 것을 알 수 있습니다. 이러한 작업을 반복하면 $y=x^2-2$ 와 $y=0$ 의 교점인 $\sqrt{2}$에 가까워져 가고, 점점 더 정확한 근사값을 구할 수 있습니다. 

반복해서 접선을 구하는 것이 귀찮으니, 위 상황을 점화식으로 만들어봅시다. 아래 점에서 출발합시다. 

$\left ( a_{n},a_{n}^2 \right )$

위 점에서의 접선의 방정식은 아래와 같습니다. 

$y=2a_{n}(x-a_{n})+a_{n}^2-2$

이 접선이 x축과 만나는 점이 $a_{n+1}$ 입니다. $a_{n+1}$을 구해봅시다. 위 함수의 y 자리에 0을 넣으면 됩니다. 

$0=2a_{n}a_{n+1}-a_{n}^2-2$

아래와 같이 변형합시다. 

$a_{n}a_{n+1}=\frac{1}{2}a_{n}^2+1$

 

아래와 같이 양 변을 $a_{n}$으로 나눠줍니다. 

 

$a_{n+1}=\frac{1}{2}a_{n}+\frac{1}{a_{n}}$

 

자 이제 점화식을 이용해서 $\sqrt{2}$를 구해봅시다. $a_{1}$부터 시작할건데요. 우리가 시작하려는 점의 x좌표입니다. 3으로 잡아봅시다. 

 

$a_{2}=\frac{1}{2}a_{1}+\frac{1}{a_{1}}$

 

$a_{2}$를 구합니다. 

 

$a_{2}=\frac{1}{2}a_{1}+\frac{1}{a_{1}}$

 

$a_{2}=\frac{3}{2}+\frac{1}{3}=\frac{11}{6}=1.83$

 

이번에는 아래 식을 이용해서 $a_{3}$을 구합니다. 

 

$a_{3}=\frac{1}{2}a_{2}+\frac{1}{a_{2}}=\frac{1}{2}\times \frac{11}{6}+\frac{6}{11}=\frac{193}{132}=1.46$

 

이런 과정을 반복하면 됩니다. 시간만 있으면 얼마든지 구할 수 있겠죠? 

 

우리가 방금 풀었던 과정을 파이썬으로 코딩 해봅시다. 

 

num=10 #구하고 싶은 개수
digit=5 #소수점 정확도

a=[3] #시작하는 숫자 입력
for i in range(num) : 
    a.append(round(a[i]/2+1/a[i],digit)) 
    
print(a)

 

아래는 코드 실행 결과입니다. 

>>> print(a)
[3, 1.83333, 1.46212, 1.415, 1.41421, 1.41421, 1.41421, 1.41421, 1.41421, 1.41421, 1.41421]
반응형

댓글