提高数字计算的精度

默认情况下,Matlab®使用16位精度。对于更高的精度,使用VPA.在符号数学工具箱™中的功能。VPA.提供可变精度,可以在没有限制的情况下增加。

选择变量精度算术,默认情况下,VPA.使用32位大约小数度的精度。有关详细信息,请参阅选择数字或符号算术。您可以使用使用的精度更高数字功能。

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

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

您必须将所有内部输入包装在一起VPA., 如EXP(VPA(200))。否则,输入被自动转换由MATLAB翻一番。

提高精度50.数字使用数字并节省旧价值数字Digitsold.。重复总和。

digitsold =数字(50);sum50 = VPA(1/3)+ 1/2
SUM50 = 0.8333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333

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

数字(Digitsold)

笔记

VPA.输出是符号的。采用与不接受的符号值的MATLAB函数符号输出,通过使用符号值转换为双精度双倍的

检查当前数字通过致电设置数字

数字
位数= 32

改变单个的精度VPA.通过指定精度作为第二输入来调用VPA.。此电话不会影响数字。例如,近似PI.100.数字。

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

可变精度可以任意增加。找PI.500.数字。

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

数字VPA.控制数量重大十进制数字。例如,近似111分之1在十进制点之后,有四位准确度返回六位数,因为前两位数是零。

VPA(1/111,4)
ans = 0.009009.

笔记

如果您想提高性能减少精确度,参见通过减小精度提高速度