主要内容

数字到符号的转换

本主题展示符号数学工具箱™如何将数字转换为符号形式。有关符号和数字算术的概述,请参见选择数值或符号算术

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

t = 0.1;信谊(t)
ans =

1 10

信谊确定双精度值0.1近似于精确的符号值 1 10 .一般来说,信谊尝试纠正浮点输入中的舍入错误,以返回精确的符号形式。具体地说,信谊纠正与表单匹配的数字输入中的舍入错误 p p π p 1 2 2 , 10 ,在那里 p 而且 是普通整数。

对于这些表单,请演示这一点信谊将浮点输入转换为精确的符号形式。首先,数值近似 1 7 π , 1 2

N1 = 1/7
N1 = 0.1429
N2 =π
N2 = 3.1416
N3 = 1 /√(2)
N3 = 0.7071

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

S1 =符号(N1)
S1 =

1 7

S2 =符号(N2)
S2 =
                 
                  
                   
                    π
                  
                 
S3 =符号(N3)
S3 =

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
                   
                  

相关的话题

Baidu
map