为了估计一些非线性模型,我需要在数值上推导出一个非常庞大的函数。目标函数的一部分包括多项式(由一些和创建)。 在这个过程中有很多迭代,我的计算机需要花费很多时间来计算(尽管它产生了合理的估计)。剖析器声称,我的手写和函数是迄今为止最耗时的算法部分。这是我的第一个matlab项目,所以我很新。也许你可以帮助优化它:)
function [output] = mysum(a,b,inputfun)
output=0;
for i=a:b
output=ouput+inputfun(i);
end
如果你想知道,我是如何使用它的。这是多项式:
function [ weights ] = wexpo(theta)
global lag;
for i=1:lag
weights(i) = exp(mysum(1,length(theta),@(k) theta(k)*(i-1)^k))...
/mysum(0,lag-1,@(j)...
exp(mysum(1,length(theta),@(k) theta(k)*j^k)));
end
答案 0 :(得分:1)
如果可以使用Matlab函数:
{{1}}