www.gusucode.com > SAE RBM 程序MATLAB源码代码实现的一个关于sae的例子 > minFunc/taylorModel.m
function [f,g,H] = taylorModel(d,f,g,H,T) p = length(d); fd3 = 0; gd2 = zeros(p,1); Hd = zeros(p); for t1 = 1:p for t2 = 1:p for t3 = 1:p fd3 = fd3 + T(t1,t2,t3)*d(t1)*d(t2)*d(t3); if nargout > 1 gd2(t3) = gd2(t3) + T(t1,t2,t3)*d(t1)*d(t2); end if nargout > 2 Hd(t2,t3) = Hd(t2,t3) + T(t1,t2,t3)*d(t1); end end end end f = f + g'*d + (1/2)*d'*H*d + (1/6)*fd3; if nargout > 1 g = g + H*d + (1/2)*gd2; end if nargout > 2 H = H + Hd; end if any(abs(d) > 1e5) % We want the optimizer to stop if the solution is unbounded g = zeros(p,1); end