2014-11-05 4 views
0

나는 긴 시간 동안 한 가지 문제를 가지고 당신이 어떻게 든 나를 도울 수 있다면 정말 감사하게 될 거라고 (버전 R2012a) 여기서 저는 MATLAB의 fuction exp을 사용하여 몇 가지 지수 함수를 계산합니다. 이는이 같은 것을 가질 것을 의미 : 이것은 "x"는 특정 개수의 결과 ("Y")보다 큰 경우, 무한지수 함수가

y = exp(x); 

그러나이다; "x"는 특정 수보다 작은 경우, 결과가 0으로는 매스 웍스 '의 웹 사이트에 말했다 :

수치 예외가 발생할 수 있습니다 때 부동 소수점 인수의 실제 부분의 절대 값 x는 크다. ℜ (x) < -7.4 * 10^8이면 exp (x)는 잘린 결과 0.0을 반환 할 수 있습니다 ( 언더 플로 방지). ℜ (x)> 7.4 * 10^8이면 exp (x)는 무한의 부동 소수점 RD_INF 인 을 반환 할 수 있습니다.

내 "x"는 꽤 커서 내 필요로하는 무한과 0을 얻습니다. 내 질문은 - 어떻게 실제 결과를 얻을 수 있습니까? 도움에 미리 감사드립니다!

답변

0

모든 언어의 변수는 컴퓨터의 메모리에 일정량의 바이트로 저장됩니다. 변수 유형을 보유하는 데 사용되는 바이트가 많을수록 변수가 보유 할 수있는 결과의 정확도가 높아집니다. 정수를 사용하는 경우 가장 큰 유형은 64 바이트를 사용하며 uint64입니다. 0에서 18,446,744,073,709, 551,615 사이의 부호없는 정수 (양수 만 가능함)입니다. 소수가 필요한 경우 vpa를 사용해보십시오. 문자열 입력이

2

사용 vpa : vpa의 결과가 클래스 sym이다

>> exp(1000) 
ans = 
    Inf 

>> vpa('exp(1000)') 
ans = 
1.9700711140170469938888793522433*10^434 

참고.

+0

vpa가 내가 찾고 있었던 것 같습니다 ... 감사합니다! – hejnevim