主要内容

将符号值转换为MATLAB双精度

语法

描述

例子

d=双(年代转换符号值。年代精确度翻倍。将符号值转换为双精度是非常有用的®函数不接受符号值。有关符号数和双精度数之间的区别,请参见选择数值或符号算术

例子

全部折叠

将符号数转换为双精度.符号数字是精确的,而双精度数字有舍入误差。

转换 π 而且 1 3. 从符号形式到双重精确。

symN = sym([pi 1/3])
symN =

π 1 3.

doubleN = double(symN)
doubleN =1×23.1416 - 0.3333

有关舍入错误的信息,请参见识别和避免舍入错误

创建的可变精度数字vpa都是象征性的价值。当MATLAB函数不接受符号值时,将变量精度转换为双精度

转换 π 而且 1 3. 从变精度形式到双精度形式。

vpaN = vpa([pi 1/3])
vpaN =
                       
                        
                         
                          
                          
                           
                            
                             
                              
                               3.1415926535897932384626433832795
                             
                            
                            
                             
                              
                               0.33333333333333333333333333333333
                             
                            
                           
                          
                          
                         
                        
                       
doubleN = double(vpaN)
doubleN =1×23.1416 - 0.3333

转换矩阵中的符号数symM使数字的精度加倍

A = sym(√(2));B = sym(2/3);symM = [a b;a * b b / a)
symM =

2 2 3. 2 2 3. 2 3.

doubleM = double(symM)
doubleM =2×21.4142 0.6667 0.9428 0.4714

在转换存在内部对消或舍入错误的符号表达式时,可通过使用提高工作精度数字在转换号码之前。

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

Y = ((exp(信谊(200)+ 1)/ (exp(信谊(200))- 1))- 1;low precision = double(Y)
lowPrecisionY = 0
digitsOld = digits(100);高精度=双(Y)
高精度= 2.7678e-87

恢复使用的旧精度数字为了进一步计算。

数字(digitsOld)

解三角方程 2 x + 因为 x 0 通过使用解决.设置ReturnConditions选项真正的返回完整的解决方案、解决方案中使用的参数以及这些参数上的条件。

信谊xEqn = sin(2*x) + cos(x) == 0[solx,params,conds] = solve(eqn,x,ReturnConditions=true)
solx =

π 2 + π k 2 π k - π 6 7 π 6 + 2 π k

params =
                       
                        
                         
                          k
                        
                       
气孔导度=

k Z k Z k Z

求解器不创建变量 k 为MATLAB®工作区中的参数。创建这个变量。为…找到解决方案万博 尤文图斯 k 2 通过使用潜艇

信谊kSols_k2 = subs(solx,k,2)
sols_k2 =

5 π 2 23 π 6 31 π 6

解是精确万博 尤文图斯的符号数。将这些数字转换为双精度数字。

= double(sols_k2)
doublesols_k2 =3×17.8540 12.0428 16.2316

创建一个符号表达式年代代表 一个 2 - 2 一个 + 2 ,在那里 一个 是一个2 × 2的符号矩阵变量。

信谊一个2矩阵S = A*A - 2*A +眼(2)
S =
                       
                        
                         
                          
                           
                            
                             
                            
                            
                             
                              
                               2
                             
                            
                           
                           
                            -
                           
                            
                             
                              2
                             
                             
                             
                              
                               
                                一个
                              
                             
                            
                           
                           
                            +
                           
                            
                             
                              
                               
                                一个
                              
                             
                            
                            
                             
                              2
                            
                           
                          
                         
                        
                       

替代 一个 用符号数字 因为 π 5 π 4 - 1 0

Aval = [cos(sym(pi)/5) sin(pi/4);1 0];symS = subs(S,A,Aval)
信谊=

- 2 Σ 1 + Σ 1 2 + 2 在哪里 Σ 1 5 4 + 1 4 2 2 - 1 0

将结果转换为双精度矩阵。

双(symS)
双打=2×2-0.6706 -0.8422 1.1910 0.2929

输入参数

全部折叠

符号输入,指定为符号数、符号数数组或数字的符号矩阵变量。如果输入只包含数值(不包含符号数字),则MATLAB函数被调用。

数据类型:信谊|symmatrix

版本历史

R2006a之前介绍过

全部展开