将符号值转换为MATLAB双精度

语法

描述

双(年代)转换符号值年代双精度。将符号值转换为双精度值在MATLAB中非常有用®函数不接受符号值。有关符号和双精度数字之间的区别,请参阅选择数字或符号运算

例子

将符号数转换为双精度

通过使用将符号数转换为双精度。符号数字是精确的,而双精度数字有舍入错误。

转换PI1/3从符号形式到双倍精度。

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

有关舍入错误的信息,请参阅发现和避免舍入误差

将可变精度转换为双倍精度

由。创建的可变精度数字vpa是象征性的值。当MATLAB函数不接受符号值时,使用

转换PI1/3从变精度形式到双精度形式。

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

将符号矩阵转换为双精度矩阵

转换矩阵中的符号数symM使用双精度数字

a =符号(sqrt (2));b =符号(2/3);[b];a * b b / a)
symM = (2 ^ (1/2), 2/3] [(2 * 2 ^ (1/2)) / 3、2 ^ (1/2) / 3]
doubleM =双(symM)
doubleM = 1.4142 0.6667 0.9428 0.4714

高精度的转换

当转换遭受内部取消或舍入错误的符号表达式时,使用数字在转换数字之前。

转换数值上不稳定的表达式Y。然后,增加精度到100数字用数字和转换Y一次。这种高精度的转换是准确的,而低精度的转换不是。

Y = ((exp(信谊(200)+ 1)/ (exp(信谊(200))- 1))- 1;lowPrecisionY =双(Y)
lowPrecisionY = 0
digitsOld =数字(100);highPrecisionY =双(Y)
highPrecisionY = 2.7678 e - 87

恢复以前使用的精度数字进行进一步的计算。

数字(digitsOld)

输入参数

全部折叠

符号输入,指定为符号数、向量、矩阵或符号数的多维数组。

之前介绍过的R2006a