主要内容

通过降低精度来提高速度

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

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

(X, Y) = meshgrid((0:0.0025:综合)(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:综合)(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秒。

请注意

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