默认情况下,MATLAB®使用16位精度。如果需要更高的精度,请使用vpa
函数在符号数学工具箱™中。vpa
提供可变的精度,可以无限制地增加。
当你选择可变精度算法时,默认情况下,vpa
使用32位有效的十进制精度。有关详细信息,请参见选择数字或符号算术.参数可以设置更高的精度数字
函数。
使用默认的32位精度近似求和。如果至少有一个输入用vpa
,所有其他输入自动转换为可变精度。
vpa (1/3) + 1/2
ans = 0.83333333333333333333333333333333
必须用vpa
,如exp (vpa (200))
.否则,通过MATLAB自动将输入转换为双精度。
增加精度到50
数字用数字
保存旧的价值数字
在digitsOld
.重复之和。
digitsOld =数字(50);Sum50 = vpa(1/3) + 1/2
sum50 = 0.83333333333333333333333333333333333333333333333333
为进一步计算恢复旧的数字值。
数字(digitsOld)
请注意
vpa
输出是象征性的。要使用不接受符号值的MATLAB函数的符号输出,可以通过使用将符号值转换为双精度双
.
检查当前的数字
设置通过调用数字
.
数字
数字= 32
更改单个的精度vpa
通过指定精度作为第二个输入来调用vpa
.此呼叫不受影响数字
.例如,近似π
与One hundred.
位数。
vpa(π,100)
Ans = 3.14159265358979323846264338327950288419716939937510582097494 4592307816406286208998628034825342117068
数字%数字仍然是32
数字= 32
可变精度可任意增加。找到π
来500
位数。
digitsOld =数字(500);vpa (pi)数字(digitsOld)
ans = 3.1415926535897932384626433832795028841971693993751058209749 445923078164062862089986280348253421170679821480865132823066 470938446095505822317253594081284811174502841027019385211055 445923078164062862089986280348253421170679821480865132823066 652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903 600113305305488204665213841469919415116094330572703657595919 530921861173819326117931051185480744623799627495673518857527 248912279381830119491
数字
和vpa
控制数量重要的小数位数。例如,近似1/111
4位精度返回小数点后的6位,因为前两位是零。
vpa (1/111, 4)
ans = 0.009009
请注意
如果你想提高性能减少精密,看通过降低精度来提高速度.