2012-08-27 6 views
0

Numpy '모듈러스'함수는 코드에서 특정 시간이 time-step의 정수 배인지 확인하는 데 사용됩니다.Numpy/Scipy 모듈러스 함수

하지만 이상한 행동이 있습니다.

  • numpy.mod(121e-12,1e-12) 반환 1E - 12 (1E-12과 비교)
  • numpy.mod(60e-12,1e-12) 복귀 '매우 작은 값'.

numpy.mode('122-126'e-12,1e-12)을 재생하면 임의로 0과 1e-12를 제공합니다.

누군가 이유를 설명해 주시겠습니까?

덕분에 많은

답변

0

다큐먼트, np.mod(x1,x2)=x1-floor(x1/x2)*x2에 따르면. 여기서 문제는 매우 작은 값, 부동 소수점 오류 (잘림 ...)가 자주 발생하고 결과가 예측할 수없는 어두운 영역으로 작업하고 있다는 것입니다. 많은 시간을 소비해야한다고 생각하지 않습니다. 그것에 대해 걱정하고 있습니다.

+0

Matlab 또는 Octave에 표시되지 않는 흥미로운 단점이 있습니다. Matlab/Octave 모듈러스 함수는 동일하게 정의되지만 훨씬 작은 값에 대해서는 훨씬 더 잘 동작합니다. Matlab은 두 수치를 계산 정확도가 더 이상 문제가되지 않는 범위로 확장합니다. 감사합니다. – greywanderer

관련 문제