Вы можете найти 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
. Например, это не работает
>> vpa(10^500/20)
ans =
Inf
, потому что 10^500
оценивается как double
, давая inf
и затем используется в качестве входных данных для vpa
.
Я не думаю, что вы можете увеличить это. Вы можете использовать ['vpa'] (http://es.mathworks.com/help/symbolic/vpa.html) (или, если возможно, изменить свой код, чтобы избежать переполнения) –
Согласитесь с Луисом Мендо. BTW, очень приятная картинка! – rayryeng