通过减小精度提高速度

增加matlab.®通过降低计算的精度来速度。通过使用由可变精度算术来减少精度VPA.数字在符号数学工具箱™中的功能。当您减少精度时,您可以通过降低准确性来获得性能。有关详细信息,请参阅选择数字或符号算术

例如,找到大矩阵的riemann zeta函数C花费很长时间。首先,初始化C

[x,y] = meshgrid((0:0.0025:.75),(5:0.05:0));c = x + y * i;

然后,找到计算所需的时间Zeta(c)

Tic Zeta(c);TOC.
经过时间为340.204407秒。

现在,使用较低的精度重复此操作VPA.。首先,改变所使用的精度VPA.较低的精度10.数字使用数字。然后,使用VPA.减少精度C并找到Zeta(c)再次。该操作明显更快。

数字(10)VPAC = VPA(C);Tic Zeta(VPAC);TOC.
经过时间为113.792543秒。

笔记

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

对于较大的矩阵,计算时间的差异可能更为显着。例如,考虑1001.-经过-301.矩阵C

[x,y] = meshgrid((0:0.0025:.75),(5:0.005:0));c = x + y * i;

跑步Zeta(VPA(C))运行时,10位数的精度需要15分钟Zeta(c)只需要三倍。

数字(10)VPAC = VPA(C);Tic Zeta(VPAC);TOC.
经过时间为886.035806秒。
Tic Zeta(c);TOC.
经过时间为2441.991572秒。

笔记

如果你想增加精确度,参见提高数字计算的精度