double

Преобразуйте символьные значения в двойную точность MATLAB

Синтаксис

Описание

double(s) преобразует символьное значение s к двойной точности. Преобразование символьных значений к двойной точности полезно, когда функция MATLAB® не принимает символьные значения. Для различий между символьными и числами с двойной точностью смотрите, Выбирают Numeric or Symbolic Arithmetic.

Примеры

Преобразуйте символьное число в двойную точность

Преобразуйте символьные числа в двойную точность при помощи double. Символьные числа точны, в то время как числа с двойной точностью имеют ошибки округления.

Преобразуйте pi и 1/3 от символьной формы до двойной точности.

symN = sym([pi 1/3])
symN =
[ pi, 1/3]
doubleN = double(symN)
doubleN =
    3.1416    0.3333

Для получения информации об ошибках округления смотрите, Распознают и Избегают Ошибок Округления.

Преобразуйте переменную точность в двойную точность

Числа переменной точности создаются vpa символьные значения. Когда функция MATLAB не примет символьные значения, преобразуйте переменную точность в двойную точность при помощи double.

Преобразуйте pi и 1/3 от переменной точности формируются к двойной точности.

vpaN = vpa([pi 1/3])
vpaN =
[ 3.1415926535897932384626433832795, 0.33333333333333333333333333333333]
doubleN = double(vpaN)
doubleN =
    3.1416    0.3333

Преобразуйте символьную матрицу в матрицу с двойной точностью

Преобразуйте символьные числа в матричном symM к числам с двойной точностью при помощи double.

a = sym(sqrt(2));
b = sym(2/3);
symM = [a b; a*b b/a]
symM =
[       2^(1/2),       2/3]
[ (2*2^(1/2))/3, 2^(1/2)/3]
doubleM = double(symM)
doubleM =
    1.4142    0.6667
    0.9428    0.4714

Преобразование высокой точности

При преобразовании символьных выражений, которые страдают от внутренних ошибок отмены или округления, увеличьте рабочую точность при помощи digits прежде, чем преобразовать номер.

Преобразуйте численно неустойчивое выражение Y с double. Затем точность увеличения к 100 цифры при помощи digits и преобразуйте Y снова. Это преобразование высокой точности точно, в то время как преобразование низкой точности не.

Y = ((exp(sym(200)) + 1)/(exp(sym(200)) - 1)) - 1;
lowPrecisionY = double(Y)
lowPrecisionY =
     0
digitsOld = digits(100);
highPrecisionY = double(Y) 
highPrecisionY =
   2.7678e-87

Восстановите старую точность, используемую digits для дальнейших вычислений.

digits(digitsOld)

Входные параметры

свернуть все

Символьный вход в виде символьного числа, или вектор, матрица или многомерный массив символьных чисел.

Представлено до R2006a