提高数值计算的精度
默认情况下,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 596446229489549303819644288109756659334461284756482337867831 652712019091456485669234603486104543266482133936072602491412 596446229489549303819644288109756659334461284756482337867831 470938446095505822317253594081284811174502841027019385211055 445923078164062862089986280348253421170679821480865132823066 248912279381830119491
数字
和vpa
控制的数量重要的小数位数。例如,近似1/111
与四位精度返回小数点后六位,因为前两个数字是0。
vpa (1/111, 4)
ans = 0.009009
请注意
如果你想提高性能减少精密,看通过减少精度提高速度。