바이트 크기 관련하여 질문있습니다.

게시판 IDL Q&A 바이트 크기 관련하여 질문있습니다.

2 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #922 Reply
      inmyta27
      회원

      제가 아래와 같이 값을 넣어 A,B,C를 구하고 싶습니다. 그런데
      angle=0
      m_angle=7

      A=(3+4*cos(2*angle)*exp(-2*(m_angle^2))+cos(4*angle)*exp(-8*(m_angle^2)))/8.
      B=(3-4*cos(2*angle)*exp(-2*(m_angle^2))+cos(4*angle)*exp(-8*(m_angle^2)))/8.
      C=(1-cos(4*angle)*exp(-8*(m_angle^2)))/8.

      위 식에서 cos(2*angle)*exp(-2*(m_angle^2))=2.74654e-43 이처럼 e-43 의 매우 작은 값이 나와
      idl에서 이를 인식을 못해주는것 같아서여 결국엔 0값으로 처리를 하게 되는데
      이를 0이 아닌 값으로 인식하게 할 순 없나해서요

      저 부분을 0으로 인식하다보니 A 와 B값이 0.375로 둘이 같은 값으로 계산되는데
      해결할 방법이 있는지 해서 여쭤봅니다.
      이 부분때문인지 프로그램을 돌리면 다음과 같은 메세지도 뜹니다.
      % Program caused arithmetic error: Floating underflow

    • #925 Reply
      Jonghyuk
      회원

      m_angle이 의미하는 것은 모르겠으나, 위 식에서 exp(-98) 이 되면 사실상 0에 가까운 수가 나올 수밖에 없는 구조라고 생각됩니다. 실제로 이런 계산을 필요로 하시는 것인지요?
      일단
      angle=0D
      m_angle=7D

      와 같이 double precision으로 데이터를 선언하시면 경고 메시지는 나오지 않고 더 정밀한 계산을 수행합니다만 대세에 영향을 줄 것 같지는 않습니다.

    • #926 Reply
      inmyta27
      회원

      exp(-98)이 사실상 0에 가까운 수인것은 알지만
      그럼에 따라 A,B 값이 같게 나와.. 혹시나 저것을 차이를 보고 싶어서 질문드렸습니다

2 답변 글타래를 보이고 있습니다
'바이트 크기 관련하여 질문있습니다.'에 답변달기
글쓴이 정보: