336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
C언에서 제곱근을 구하는 방법은 쉽게 math.h 의 sqrt함수를 사용하면된다.
예를들어 sqrt(4)는 2를 리턴한다.
하지만 이 함수를 사용하지 않고 제곱근을 구하려면 바빌로니아 법을 이용한다.
나눗셈과 비슷한 방법으로 제곱근을 구하는 전통적인 방법인 개평법이 있다. 그러나 이 방법은 각 자리의 숫자를 정확히 구할 수 있는 대신 과정이 복잡하고 계산 효율이 낮아 현대에는 거의 사용되지 않는다. 대신에, 제곱근에 빠르게 수렴하는 수열을 만들어 근사값을 구하는 방법인 바빌로니아 법을 이용하는 것이 보통이다. 이것은 뉴턴랩슨 법을 이용하여 이차방정식의 근사해를 구하는 것과 동일하다.
양의 실수 a에 대하여 다음 과정을 따라 의 근사값을 구할 수 있다.
- 임의의 양의 실수 x0를 택한다. 이 값이 에 가까울수록 더 빨리 근사값을 구할 수 있다.
- 라 한다.
- 원하는 정밀도까지 위의 과정을 반복한다.
위에서 구한 수열 은 를 만족한다.
(구분선 안의 내용의 출처는 위키백과)
(조건에서, 처음에 비교해주는 Xn의 값은 1로 해준다. 그리고 정확도는 차이가 |0.005 | 이하 일때 까지로 한다. 함수인자로 넘어오는 num 값은 구하고 싶은 숫자이다. 즉 a다.)
double square_root(double num)
{
double next;
double temp;
next=0.5*(1+(num/1));
while(1)
{
temp=next;
next=0.5*(next+(num/next));
if(temp-next<0.005
|| temp-next<-0.005)
break;
}
return next;
}
'# IT, Computer Science > C , C++' 카테고리의 다른 글
CString <-> Char* 변환 (0) | 2010.08.14 |
---|---|
scanf로 공백(white space)까지 포함하여 읽기 (0) | 2009.11.25 |
Call by Reference (0) | 2009.10.20 |
c언어에서의 올림(ceil), 내림(floor), 반올림 (2) | 2009.10.15 |
typedef의 사용 (1) | 2009.09.09 |