主要内容

提高数字计算的精度

默认情况下,matlab®使用16位精度。要获得更高的精度,请使用VPA符号数学工具箱中的功能。VPA提供可变精度,可以提高无限制。

当您选择可变精确算术时,默认情况下VPA使用32个精确的小数位数。有关详细信息,请参阅选择数字或符号算术。您可以使用数字功能。

使用32位数字的默认精度近似值。如果至少包含一个输入VPA,所有其他输入都会自动转换为可变精度。

VPA(1/3) + 1/2
ANS = 0.8333333333333333333333333333333333

您必须用VPA, 如EXP(VPA(200))。否则,将输入自动通过MATLAB转换为双重。

将精度提高到50使用数字数字并保存旧价值数字数字。重复总和。

DigitSold =数字(50);sum50 = VPA(1/3) + 1/2
sum50 = 0.8333333333333333333333333333333333333333333333333333333333333

恢复数字的旧值以进行进一步计算。

数字(数字)

笔记

VPA输出是象征性的。要使用不接受符号值的MATLAB函数使用符号输出,请通过使用符号值将符号值转换为双重精度双倍的

检查电流数字通过打电话设置数字

数字
数字= 32

更改单个的精度VPA通过将精度指定为第二个输入来调用VPA。这个电话不影响数字。例如,大约pi100数字。

VPA(PI,100)
ANS = 3.1415926535897932384626464338383838383841971697169393937515820582097497494
数字%数字仍然存在32
数字= 32

可以任意提高可变精度。寻找pi500数字。

Digitsold =数字(500);VPA(PI)数字(Digitsold)
ans = 3.1415926535897932384626433832795028841971693993751058209749 445923078164062862089986280348253421170679821480865132823066 470938446095505822317253594081284811174502841027019385211055 596446229489549303819644288109756659334461284756482337867831 652712019091456485669234603486104543266482133936072602491412 737245870066063155881748815209209628292540917153643678925903 600113305305488204665213841469519415116094330572703657595919 530921861173819326117931051185480744623799627495673518857527 248912279381830119491

数字VPA控制重大十进制数字。例如,近似1/111具有四位数的精度在小数点之后返回六位数,因为前两个数字是零。

VPA(1/111,4)
ANS = 0.009009

笔记

如果您想提高性能减少精度,请参阅通过降低精度来提高速度