主要内容

通过减少精度提高速度

增加MATLAB®减少的年代速度的精度计算。使用提供的变精度运算精度降低vpa数字函数的符号数学工具箱™。当你降低精度,获得性能降低准确性。有关详细信息,请参见选择数字或符号算术

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

(X, Y) = meshgrid((0:0.0025:综合)(5:-0.05:0));C = X + Y *我;

然后,找到时间来计算泽塔(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 *我;

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

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

请注意

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