C 루트 계산 - C luteu gyesan

오리둥절

C 루트 계산 - C luteu gyesan

  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

오리둥절

검색하기 폼 검색하기

  • 분류 전체보기 (112)
    • 안드로이드(android) (16)
    • 리눅스linux(ubutu) (24)
    • 드론 (7)
    • arm cortex-m3 (8)
    • c 언어 (2)
    • 모터제어 (0)
    • atmega128 (1)
    • 컴퓨터 Tip (19)
    • 컴퓨터 활용능력 (5)
    • 윈도우7 Tip (8)
  • 방명록


티스토리 뷰

c 언어

C언어) C에서 제곱근, 루트 근사값 계산 방법, sqrt() 함수 사용법

세상모든방법 2015. 9. 5. 14:06

우선 루트계산 함수를 사용하기 위해서는 math.h 헤더파일을 인클루드 해줘야 합니다.

제곱근 계산 함수는

sqrt(입력)     입니다.

입력값에는 실수값이 입력으로 들어가야 합니다.

반환값도 실수값이 됩니다.

'c 언어' 카테고리의 다른 글

Visual Studio 2013 새 프로젝트 생성하기  (0)2015.09.27

공유하기 링크

댓글

    댓글쓰기 폼

    비밀글

    공지사항

    • 공지사항

    최근에 달린 댓글

    • 3.7에서 멈추는데 4.2까지 어떻게 충전하나요
    • 궁금증 해결했어요~ 감사합니다^^
    • 감사합니다
    • 친구신청 드렸습니다.

    Total220,275 Today42Yesterday74

    «   2022/11   »

    1 2 3 4 5
    6 7 8 9 10 11 12
    13 14 15 16 17 18 19
    20 21 22 23 24 25 26
    27 28 29 30

    링크

    • Keep Going
    • 캐플 블로그
    • 세상과 만나는 프로그램 이야기


    Blog is powered by Tistory / Designed by Tistory


    # IT, Computer Science/C , C++

    2009. 11. 1. 03:22

    336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

    C언에서 제곱근을 구하는 방법은 쉽게 math.h 의 sqrt함수를 사용하면된다.

    예를들어 sqrt(4)는 2를 리턴한다.

    하지만 이 함수를 사용하지 않고 제곱근을 구하려면 바빌로니아 법을 이용한다.

    나눗셈과 비슷한 방법으로 제곱근을 구하는 전통적인 방법인 개평법이 있다. 그러나 이 방법은 각 자리의 숫자를 정확히 구할 수 있는 대신 과정이 복잡하고 계산 효율이 낮아 현대에는 거의 사용되지 않는다. 대신에, 제곱근에 빠르게 수렴하는 수열을 만들어 근사값을 구하는 방법인 바빌로니아 법을 이용하는 것이 보통이다. 이것은 뉴턴랩슨 법을 이용하여 이차방정식 근사해를 구하는 것과 동일하다.

    양의 실수 a에 대하여 다음 과정을 따라 

    C 루트 계산 - C luteu gyesan
    의 근사값을 구할 수 있다.

    1. 임의의 양의 실수 x0를 택한다. 이 값이 
      C 루트 계산 - C luteu gyesan
      에 가까울수록 더 빨리 근사값을 구할 수 있다.
    2. C 루트 계산 - C luteu gyesan
      라 한다.
    3. 원하는 정밀도까지 위의 과정을 반복한다.

    위에서 구한 수열 

    C 루트 계산 - C luteu gyesan
     
    C 루트 계산 - C luteu gyesan
    를 만족한다.

    다음은 위의 방법에 따라 

    C 루트 계산 - C luteu gyesan
    의 근사값을 구한 것이다.

    C 루트 계산 - C luteu gyesan

    C 루트 계산 - C luteu gyesan
    의 참값과 소수점 아래 23자리까지 일치한다.

    (구분선 안의 내용의 출처는 위키백과)

    (조건에서, 처음에 비교해주는 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;

    }