realmax我的機器上是:有沒有什麼辦法可以在MATLAB中增加'realmax'?
1.7977e + 308
我知道我必須寫我的代碼的方式,以避免長時間整數計算,但有什麼辦法,以增加限制?
我的意思是這樣的GMP庫用C
realmax我的機器上是:有沒有什麼辦法可以在MATLAB中增加'realmax'?
1.7977e + 308
我知道我必須寫我的代碼的方式,以避免長時間整數計算,但有什麼辦法,以增加限制?
我的意思是這樣的GMP庫用C
您可能會發現vpa
(可變精度運算)有所幫助:
R = vpa(A)
使用可變精度運算(VPA)至A
每個元素來計算至少d
準確性的十進制數字,其中d
是當前的設置digits
。
R = vpa(A,d)
至少使用d
重要(非零)數字,而不是當前設置digits
。
下面是一個例子如何使用它:
>> x = vpa('10^500/20')
ans =
5.0e498
需要注意的是:
的輸出x
是象徵(sym
)型。當然,你不應該將其轉換爲double
,因爲它會超過realmax
:
>> double(x)
ans =
Inf
使用字符串輸入爲了避免評估大的輸入值double
。例如,因爲10^500
作爲double
評價,給予inf
,和然後被用作輸入到vpa
這不起作用
>> vpa(10^500/20)
ans =
Inf
。
如果'vpa'不可用,[Multiple Precision Toolbox](http://www.mathworks.com/matlabcentral/fileexchange/6446-multiple-precision-toolbox-for-matlab)提供了一個替代方案。 – Daniel
我不認爲你可以增加。你可以做的是使用['vpa'](http://es.mathworks.com/help/symbolic/vpa.html)(或者,如果可能的話,修改你的代碼以避免溢出) –
同意Luis Mendo。順便說一句,非常漂亮的顯示圖片! – rayryeng