主要内容

提高数值计算的精度

默认情况下,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

请注意

如果你想提高性能减少精密,看通过减少精度提高速度