主要内容

数字符号转换

这一主题显示符号数学工具箱™将数字转换成符号形式。符号和数字运算的概述,请参阅选择数字或符号算术

将数字输入符号形式,使用信谊命令。默认情况下,信谊返回数值表达式的一个合理的近似。

t = 0.1;信谊(t)
ans =

1 10

信谊确定双精度值0.1接近准确的象征价值 1 10 。一般来说,信谊试图纠正浮点舍入错误输入返回准确的符号形式。具体地说,信谊纠正了舍入误差数值输入匹配的形式 p , p π , ( p ) 1 2 , 2 , 10 ,在那里 p 是普通整数。

这些形式,证明信谊将浮点数转换输入准确的符号形式。首先,数值近似 1 7 , π , 1 2

N =(1/7π1 /√(2))
N =1×30.1429 3.1416 0.7071

将数值近似转换成精确的符号形式。信谊纠正了舍入误差。

S =符号(N)
S =

( 1 7 π 2 2 )

你可以强迫信谊接受的输入是通过将输入引号。证明这种行为在前面的输入0.142857142857143。的信谊不输入转换为函数1/7

信谊(“0.142857142857143”)
ans =
                 
                  
                   
                    0.142857142857143
                  
                 

当你转换大量,准确使用引号来代表他们。证明这种行为进行比较信谊(133333333333333333333)信谊(“133333333333333333333”)

信谊(1333333333333333333)
ans =
                 
                  
                   
                    1333333333333333248
                  
                 
信谊(“1333333333333333333”)
ans =
                 
                  
                   
                    1333333333333333333
                  
                 

您可以指定所使用的技术信谊将浮点数转换使用可选的第二个参数,可以“f”,“r”,“e”,或' d '。默认的国旗是“r”理性的形式。

转换为理性的符号形式

通过调用将输入转换成精确的理性形式信谊“r”国旗。当你叫这是默认行为信谊没有旗帜。

t = 0.1;信谊(t)“r”)
ans =

1 10

通过使用浮点转换扩张

如果你叫信谊的国旗“f”,信谊转换为双精度浮点数,他们使用的数值 N 2 e ,在那里 N e 分别是指数和尾数。

转换t通过使用浮点扩张。

信谊(t)“f”)
ans =

3602879701896397 36028797018963968

转换与误差项理性象征性的形式

如果你叫信谊的国旗“e”,信谊返回的理性形式t加之间的误差估计,准确的值t浮点表示法。这个错误的表达每股收益(浮点相对精度)。

转换t象征性的形式。返回的错误估计符号形式及其之间的浮点值。

信谊(t)“e”)
ans =

每股收益 40 + 1 10

错误的词eps / 40之间的区别是信谊(“0.1”)信谊(0.1)

转换为十进制形式

如果你叫信谊的国旗' d ',信谊返回输入的小数部分。的数字函数指定使用的有效数字数量。的默认值数字是32。

信谊(t)' d ')
ans =
                  
                   
                    
                     0.10000000000000000555111512312578
                   
                  

改变使用的有效位数数字

digitsOld =数字(7);信谊(t)' d ')
ans =
                  
                   
                    
                     0.1
                   
                  

为进一步计算,恢复旧的价值数字

数字(digitsOld)

转换为可变精度

您可以创建符号数字与变精度浮点算术通过使用vpa。默认情况下,vpa计算值32位有效数字。

piVpa = vpa(π)
piVpa =
                  
                   
                    
                     3.1415926535897932384626433832795
                   
                  

当你使用vpa数字输入,如日志(2)首先评估数值表达式,MATLAB®默认的双精度数小于32位有效数字。然后,vpa是应用于双精度数,可以不准确。为更准确的结果,数值表达式转换为符号表达式信谊然后使用vpa评价结果与变量的精度。例如,找到日志(2)17岁和20位精度。

vpaOnDouble = vpa(日志(2))
vpaOnDouble =
                  
                   
                    
                     0.69314718055994528622676398299518
                   
                  
vpaOnSym_17 = vpa(日志(信谊(2)),17)
vpaOnSym_17 =
                  
                   
                    
                     0.69314718055994531
                   
                  
vpaOnSym_20 = vpa(日志(信谊(2)),20)
vpaOnSym_20 =
                  
                   
                    
                     0.69314718055994530942
                   
                  

当你转换大量,准确使用引号来代表他们。

inaccurateNum = vpa (123456789012345678)
inaccurateNum =
                  
                   
                    
                     123456789012345680.0
                   
                  
accurateNum = vpa (“123456789012345678”)
accurateNum =
                  
                   
                    
                     123456789012345678.0
                   
                  

相关的话题