Use new numgrad routines.
options_.gradient method = {12,22} two points formula. options_.gradient method = {13,23} three points formula. options_.gradient method = {15,25} four points formula. Still need to decide what to do with (local) option zgrad.time-shift
parent
4ce4242d0d
commit
d0d0b6ed52
|
@ -78,6 +78,14 @@ if NumGrad
|
|||
[g,badg] = numgrad3(fcn, f0, x0, epsilon, varargin{:});
|
||||
case 5
|
||||
[g,badg] = numgrad5(fcn, f0, x0, epsilon, varargin{:});
|
||||
case {12, 22}
|
||||
[g,badg] = numgrad2_(fcn, f0, x0, epsilon, [], varargin{:});
|
||||
case {13, 23}
|
||||
[g,badg] = numgrad3_(fcn, f0, x0, epsilon, [], varargin{:});
|
||||
case {15, 25}
|
||||
[g,badg] = numgrad5_(fcn, f0, x0, epsilon, [], varargin{:});
|
||||
otherwise
|
||||
error('csminwel1: Unknown method for gradient evaluation!')
|
||||
end
|
||||
elseif ischar(grad)
|
||||
[g,badg] = feval(grad,x0,varargin{:});
|
||||
|
@ -130,6 +138,20 @@ while ~done
|
|||
[g1 badg1] = numgrad3(fcn, f1, x1, epsilon, varargin{:});
|
||||
case 5
|
||||
[g1,badg1] = numgrad5(fcn, f1, x1, epsilon, varargin{:});
|
||||
case 12
|
||||
[g1,badg1] = numgrad2_(fcn, f1, x1, epsilon, [], varargin{:});
|
||||
case 13
|
||||
[g1,badg1] = numgrad3_(fcn, f1, x1, epsilon, [], varargin{:});
|
||||
case 15
|
||||
[g1,badg1] = numgrad5_(fcn, f1, x1, epsilon, [], varargin{:});
|
||||
case 22
|
||||
[g1,badg1] = numgrad2_(fcn, f1, x1, epsilon, abs(diag(H)), varargin{:});
|
||||
case 23
|
||||
[g1,badg1] = numgrad3_(fcn, f1, x1, epsilon, abs(diag(H)), varargin{:});
|
||||
case 25
|
||||
[g1,badg1] = numgrad5_(fcn, f1, x1, epsilon, abs(diag(H)), varargin{:});
|
||||
otherwise
|
||||
error('csminwel1: Unknown method for gradient evaluation!')
|
||||
end
|
||||
elseif ischar(grad),
|
||||
[g1 badg1] = feval(grad,x1,varargin{:});
|
||||
|
@ -167,6 +189,20 @@ while ~done
|
|||
[g2 badg2] = numgrad3(fcn, f2, x2, epsilon, varargin{:});
|
||||
case 5
|
||||
[g2,badg2] = numgrad5(fcn, f2, x2, epsilon, varargin{:});
|
||||
case 12
|
||||
[g2,badg2] = numgrad2_(fcn, f2, x2, epsilon, [], varargin{:});
|
||||
case 13
|
||||
[g2,badg2] = numgrad3_(fcn, f2, x2, epsilon, [], varargin{:});
|
||||
case 15
|
||||
[g2,badg2] = numgrad5_(fcn, f2, x2, epsilon, [], varargin{:});
|
||||
case 22
|
||||
[g2,badg2] = numgrad2_(fcn, f2, x2, epsilon, abs(diag(H)), varargin{:});
|
||||
case 23
|
||||
[g2,badg2] = numgrad3_(fcn, f2, x2, epsilon, abs(diag(H)), varargin{:});
|
||||
case 25
|
||||
[g2,badg2] = numgrad5_(fcn, f2, x2, epsilon, abs(diag(H)), varargin{:});
|
||||
otherwise
|
||||
error('csminwel1: Unknown method for gradient evaluation!')
|
||||
end
|
||||
elseif ischar(grad),
|
||||
[g2 badg2] = feval(grad,x2,varargin{:});
|
||||
|
@ -205,6 +241,20 @@ while ~done
|
|||
[g3 badg3] = numgrad3(fcn, f3, x3, epsilon, varargin{:});
|
||||
case 5
|
||||
[g3,badg3] = numgrad5(fcn, f3, x3, epsilon, varargin{:});
|
||||
case 12
|
||||
[g3,badg3] = numgrad2_(fcn, f3, x3, epsilon, [], varargin{:});
|
||||
case 13
|
||||
[g3,badg3] = numgrad3_(fcn, f3, x3, epsilon, [], varargin{:});
|
||||
case 15
|
||||
[g3,badg3] = numgrad5_(fcn, f3, x3, epsilon, [], varargin{:});
|
||||
case 22
|
||||
[g3,badg3] = numgrad2_(fcn, f3, x3, epsilon, abs(diag(H)), varargin{:});
|
||||
case 23
|
||||
[g3,badg3] = numgrad3_(fcn, f3, x3, epsilon, abs(diag(H)), varargin{:});
|
||||
case 25
|
||||
[g3,badg3] = numgrad5_(fcn, f3, x3, epsilon, abs(diag(H)), varargin{:});
|
||||
otherwise
|
||||
error('csminwel1: Unknown method for gradient evaluation!')
|
||||
end
|
||||
elseif ischar(grad),
|
||||
[g3 badg3] = feval(grad,x3,varargin{:});
|
||||
|
@ -272,6 +322,20 @@ while ~done
|
|||
[gh,badgh] = numgrad3(fcn, fh, xh, epsilon, varargin{:});
|
||||
case 5
|
||||
[gh,badgh] = numgrad5(fcn, fh, xh, epsilon, varargin{:});
|
||||
case 12
|
||||
[gh,badgh] = numgrad2_(fcn, fh, xh, epsilon, [], varargin{:});
|
||||
case 13
|
||||
[gh,badgh] = numgrad3_(fcn, fh, xh, epsilon, [], varargin{:});
|
||||
case 15
|
||||
[gh,badgh] = numgrad5_(fcn, fh, xh, epsilon, [], varargin{:});
|
||||
case 22
|
||||
[gh,badgh] = numgrad2_(fcn, fh, xh, epsilon, abs(diag(H)), varargin{:});
|
||||
case 23
|
||||
[gh,badgh] = numgrad3_(fcn, fh, xh, epsilon, abs(diag(H)), varargin{:});
|
||||
case 25
|
||||
[gh,badgh] = numgrad5_(fcn, fh, xh, epsilon, abs(diag(H)), varargin{:});
|
||||
otherwise
|
||||
error('csminwel1: Unknown method for gradient evaluation!')
|
||||
end
|
||||
elseif ischar(grad),
|
||||
[gh badgh] = feval(grad, xh,varargin{:});
|
||||
|
|
Loading…
Reference in New Issue