CAFE

포트란 Q&A

분산을 구했는데 음수가 나오는 경우 무엇이 문제일까요?

작성자홍성철|작성시간04.12.21|조회수5,046 목록 댓글 7
분산(제곱의 평균-평균의제곱)을 구했는데 음수가 나옵니다.
어떤 상황이냐하면

1. N개의 같은 값을 가지는 data가 있습니다.
2. 이 값들을 가지고 평균을 구하고 분산을 구하면

모두 같은 값이므로 평균은 data가 가지는 값을 갖고, 분산은 0이 되는게 정상인데
음수가 나옵니다.
이러한 문제를 해결할수 있는 방법이 있을까요?
REAL, DBLE의 문제는 아닙니다.
필요하면 간단한 코드 올리겠습니다.
다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자꿈꾸는가인 | 작성시간 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는 수학적으로는 같지만 수치적으로는 다른 경우가 많이 있습니다.
  • 작성자홍성철 작성자 본인 여부 작성자 | 작성시간 04.12.21 감사합니다. 정말로 사소한것 같은데 어려움이 많네요. 앞으로가 걱정입니다. ㅡㅡ;;
  • 작성자정현성 | 작성시간 23.06.08
    댓글 이모티콘
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼