'C언어를 이용한 전산물리학' 책을 보고 수치해석적 미분 중
2점 공식(2-point formula) 예제소스를 따라 작성하고 cygwin(윈도우에서 작동하는 리눅스 에뮬레이터)의
gcc로 컴파일, 실행해 보다.
gcc diff2point.c -o diff2pE && ./diff2pE
diff2point.c를 컴파일하고 바로 실행하는 cygwin상의 gcc 명령
제대로 작동되어 diff_2point.txt란 파일이 생성되고 999줄의 실행 결과가 담겼다...만 뭔 내용인지
잘 모르겠다. 테일러 전개를 이용해 미분의 근사치 값을 얻어내는 방식인듯 하나 공식을 제대로 이해하진 못했다.
거의 타이핑 연습만 한 격. --;
5점 공식 역시 같은 방식으로 작성, 실행 성공.
5점 공식의 함수를 2*(x)*(x)+(x)+35로 바꾸고(즉, 2X^2 + X+ 35) MAX_STEP을 200에서
100으로, 30, 10으로 변경시켜 보니 과연 빠르게 수렴한다는걸 어느정도 알듯하다. 원래 미분값은 1일 때
5가되는데(4X+1) 10단계에서도 4.399986의 값이 나온다. 600단계에선 4.989624 값이 나온다.
2점 공식의 경우 1000단계에서 4.993439, 100단계에서 4.940033, 10단계에서 4.399986이
나온다. 5점 공식과 똑같다. 함수가 단순해서 그런걸까?
14/10/22 수 |