2014-10-20 10 views
3

내가 작업중인 프로젝트에 대해 고정밀도가 필요합니다. substracting 때 내가 가진 문제는 여기에 예시되어있다 :빼기시 MATLAB 정밀도

>> 1-0.9999999999999999 

ans = 1.1102e-16 

>> 1-0.99999999999999999 

ans = 0 

나는 그것이 이중 정밀도 관련이 알고있다. 어쨌든 더 높은 정밀도를 얻을 수 있습니까? "vpa"기능을 확인했지만 더 높은 정밀도를 얻을 수 없습니다. 누군가가 도와 줄 수 있습니까?

미리 감사드립니다.

+0

Matlab의 Symbolic Math Toolbox가 설치되어 있습니까? –

+5

'vpa ('1-0.9999999999999999')'(따옴표로 묶으십시오)를 시도하십시오. '0.9999999999999999'가 처음으로'double '으로 변환되기 때문에'vpa (1-0.9999999999999999)'는 작동하지 않을 것입니다. –

+0

사소한 메모 :'vpa'는 Symbolic Math Toolbox를 필요로하며 결국 High Performance Mark가 필연적으로 참조됩니다. 루이스도 잘 했어! – rayryeng

답변

0

Matlab은 내부적으로 모든 숫자에 대해 64 비트 시스템의 두 배를 사용하므로 정밀도 문제를 설명합니다. matlab에 임의의 정밀도 산술을 사용할 수있는 확장이 있습니다. 예를 들어 this question을 참조하십시오.