작성자꿈꾸는가인작성시간04.12.21
주신 코드는 잘 보았습니다만... compile 이 제대로 되나요? PROGRAM varia 로 되어 있고 END PROGRAM var 로 되어 있는데... 일치하지 않습니다. 변수 선언은 real로 하시고 casting 은 dble 로 하셨네요. 이렇게 되면 제대로 된 결과를 얻을 수 없습니다. 제가 코드를 고쳐서 돌려보았습니다.
작성자꿈꾸는가인작성시간04.12.21
싱글로 선언을 하고 따따블로 계산을 했습니다. double의 double 입니다. real*8 이 아니고 real*16 이죠. 이는 compile option 으로 가능합니다. 계산 결과 order 를 보니까 1.Q-26 ~ 1.Q-28 사이가 되더군요. 고로 이는 계산 절차상의 수치에러로 보아야 할 거 같습니다.
작성자꿈꾸는가인작성시간04.12.21
숫자의 차이가 많이 나지 않는 경우의 계산은 특히 중요합니다. 이는 수치해석 처음의 "오차의 해석"을 참고 하시면 되겠습니다. 위의 경우처럼 차이가 많지 않는 경우는 계산을 조심해야 합니다. 순서까지도 신경을 써야 하기 때문이죠. x**2 과 x*x는 수학적으로는 같지만 수치적으로는 다른 경우가 많이 있습니다.