为了执行使用正常的变量可以做如下函数评估:更高效的符号函数评估
f = @(x)x.^2+3*x-5;
x0 = -10:0.01:10;
p = f(x0);
但是用符号变量时,效率急剧下降。例如:
f = @(x)x.^2+3*x-5;
x0 = -10:0.001:10;
% using real values
tic;p = f(x0);toc
% using symbolic math
syms x;tic;P = double(subs(f,x,x0));toc
Elapsed time is 0.000686 seconds.
Elapsed time is 10.867689 seconds.
是否有同时使用符号来提高速度的方法吗?
符号变量的大小顺序比实值变量慢(即匿名函数),这就是事实。所以恐怕没有什么办法可以显着提高速度:/ – Alessiox
如果数值计算是最终目标,那么我会在其附近保留一个额外的变量,该变量包含用于数字运算的'f'的'matlabFunction'版本。 – TroyHaskin