/**********************************/

/*      Numerical Analysis Homework #2     */

/*      Department of Computer Science     */

/*      2003721181, Lee Seong woo          */

/**********************************/

#include <stdio.h>

#include <math.h>


#define CAPACITY 10


double func(double p);


int main(void)

{

        double p[CAPACITY];

        int i = 1;

        double tolerance = 0.0005;   // Tolerance - 오차 한계 값

        p[0] = 1.0; p[1] = 2.0;


        printf("-------------------------------------n");

        printf("n            pn              f(pn)   n");

        printf("-------------------------------------n");


        // p[i] 값과값 차이의 절대값이 Tolerance보다 작을 때 프로그램 종료

        while(fabs(p[i] - p[i - 1]) >= tolerance)

        {

                i++;

                p[i] = p[i-1] - (func(p[i-1]) * (p[i-1] - p[i-2])) / (func(p[i-1]) - func(p[i-2]));

                printf("%dt%.10ft%.10fn", i, p[i], func(p[i]));

        }

        printf("-------------------------------------n");


        return 0;

}


// 해를 구하기 위한 함수

double func(double p)

{

        return pow(p, 3) + 4 * pow(p, 2) - 10;

}


----
2007/09/20 - [놀이] - [과제] Numerical Analysis - C로 구현한 Bisection Method

  1. Favicon of http://emulboy.ivyro.net BlogIcon EmulBoy 2007.09.20 22:39

    뭐지 이건.... 무슨놀이인가???

  2. Favicon of http://www.ohyung.net BlogIcon Ohyung 2007.09.21 01:23

    아... 막 하악하악 하군요 !!!

  3. Favicon of https://beausty23.tistory.com BlogIcon 체봄 2020.10.01 15:45 신고

    안녕하세요 선배님 저는 지나가던 광운대학교 17학번 학생입니다! 컴소 수치해석 과목을 듣는데 종료조건을 모르겠어서 검색해보던 중 무려 13년전에 쓰신 이 포스팅을 보고 해결할 수 있었습니다! 감사합니다:)

/**************************************/

/*      Numerical Analysis Homework #1       */

/*      Department of Computer Science       */

/*      2003721181, Lee Seong woo              */

/**************************************/

#include <stdio.h>

#include <math.h>


double logB(double x, double base);

double func(double p);

int getIterations(double tolerance, double startPoint, double endPoint);


int main(void)

{

        double a = 1.0, b = 2.0, tolerance = 0.0005;

        int i, repeat;

       

        // 주어진 Tolerance를 이용해서 필요한 반복횟수를 구함

        repeat = getIterations(tolerance, a, b);

       

        printf("---------------------------------------------------------------------n");

        printf("n            an              bn              pn             f(pn)n");

        printf("---------------------------------------------------------------------n");

        for(i = 0; i < repeat; i++)

        {

                if(func(a) * func(a + ((b - a) / 2)) < 0)

                {

                        printf("%dt%.10ft%.10ft%.10ft%.10fn",

                              i + 1, a, b, a + ((b - a) / 2), func(a + ((b - a) / 2)));

                        b = a + ((b - a) / 2);

                }

                else

                {

                        printf("%dt%.10ft%.10ft%.10ft%.10fn",

                              i + 1, a, b, a + ((b - a) / 2), func(a + ((b - a) / 2)));

                        a = a + ((b - a) / 2);

                }

        }

        printf("---------------------------------------------------------------------n");


        return 0;

}


// 밑을 임의로 정할 수있는 로그함수

double logB(double x, double base)

{

        return log(x) / log(base);

}


// 해를 구하기 위한 함수

double func(double p)

{

        return pow(p, 3) + 4 * pow(p, 2) - 10;

}


// Tolerance에 따른 반복횟수를 구함

int getIterations(double tolerance, double startPoint, double endPoint)

{

        return ceil(logB((endPoint - startPoint) / tolerance, 2));

}

사용자 삽입 이미지

결국 이렇게 시간표가 확정됐다.
데이터베이스응용을 제외한 18학점 수강.
생각같아서는 21학점 다 채워서 듣고싶지만 딱히 졸업학점이 부족한것도 아니고 지난학기에 심하게 고생했던것도 있어서 3학점은 무시했다.
18학점이지만 과목들 하나하나가 만만치가 않아서 이번에도 고생 좀 할듯;;
개강한지도 이제 일주일이 지나갔다.
이제 본격적으로 달려야지!!!
  1. Favicon of http://vega.byus.net/picnicgom BlogIcon 소은 2007.09.03 14:09

    시간이 꽉 찼네요..어휴, 정신없이 바쁘겠어요..

    • Favicon of https://ryuisaka.tistory.com BlogIcon RyuiSaka 2007.09.03 23:57 신고

      차라리 정신없이 사는게 나을것 같아서요.
      여유롭게 살다보면 이런저런 잡생각들때문에 하루하루가 힘들어서...
      이번학기는 본분에 충실하려구요 ^^

  2. Favicon of http://yourami.zetacode.com BlogIcon Slowhand 2007.09.05 03:43

    소실4 화이팅 합시다~ ;)

+ Recent posts