增加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秒。
如果你想增加精确度,参见提高数字计算的精度。