爲了執行使用正常的變量可以做如下函數評估:更高效的符號函數評估
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