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

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

by bigpicture 2023. 1. 17.
반응형


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

22는 x2=2x2=2의 한 근입니다.  x2=2x2=2 를 아래와 같이 변형하겠습니다. 

x22=0x22=0

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

y=x22y=x22
y=0y=0

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



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

y=8x18

그래프에 표시해봅시다. 



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

0=8x18

x를 구하면 94이 됩니다. 이번에는 94,9422에서의 접선의 방정식을 구하면 아래와 같습니다. 

y=9211316

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

 

 

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

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

(an,a2n)

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

y=2an(xan)+a2n2

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

0=2anan+1a2n2

아래와 같이 변형합시다. 

anan+1=12a2n+1

 

아래와 같이 양 변을 an으로 나눠줍니다. 

 

an+1=12an+1an

 

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

 

a2=12a1+1a1

 

a2를 구합니다. 

 

a2=12a1+1a1

 

a2=32+13=116=1.83

 

이번에는 아래 식을 이용해서 a3을 구합니다. 

 

a3=12a2+1a2=12×116+611=193132=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]
반응형