主要内容

通过降低精度来提高速度

增加MATLAB®的速度,通过降低你的计算精度。方法提供的变精度算法降低精度vpa而且数字函数在符号数学工具箱™。当您降低精度时,您将通过降低精度来获得性能。详细信息请参见选择数字或符号算术

例如,求大矩阵的黎曼ζ函数C要花很长时间。首先,初始化C

[X,Y] = meshgrid((0:0.0025:.75),(5:-0.05:0));C = X + Y*i;

然后,求出计算所需的时间泽塔(C)

抽搐泽塔(C);toc
运行时间为340.204407秒。

现在,以较低的精度重复此操作vpa.首先,改变所使用的精度vpa的较低精度10通过使用数字.然后,用vpa降低精度C并找到泽塔(C)一次。操作速度明显加快。

(10) vpaC = vpa(C);抽搐泽塔(vpaC);toc
运行时间为113.792543秒。

请注意

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

对于更大的矩阵,计算时间的差异可能更显著。例如,考虑1001——- - - - - -301矩阵C

[X,Y] = meshgrid((0:0.0025:.75),(5:-0.005:0));C = X + Y*i;

运行泽塔(vpa (C))10位数的精度需要15分钟,同时运行泽塔(C)需要三倍的时间。

(10) vpaC = vpa(C);抽搐泽塔(vpaC);toc
运行时间为886.035806秒。
抽搐泽塔(C);toc
运行时间为2441.991572秒。

请注意

如果你想的话增加精密,看提高数值计算的精度