X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Foptim-1.2.0%2Fdfxpdp.m;fp=octave_packages%2Foptim-1.2.0%2Fdfxpdp.m;h=c0dfe116b00f6e9506225c12bda1db3b1c0207ed;hp=0000000000000000000000000000000000000000;hb=c880e8788dfc484bf23ce13fa2787f2c6bca4863;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/optim-1.2.0/dfxpdp.m b/octave_packages/optim-1.2.0/dfxpdp.m new file mode 100644 index 0000000..c0dfe11 --- /dev/null +++ b/octave_packages/optim-1.2.0/dfxpdp.m @@ -0,0 +1,53 @@ +%% Copyright (C) 2010, 2011 Olaf Till +%% +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. +%% +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. +%% +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . + +%% function jac = dfxpdp (x, p, func[, hook]) +%% +%% Returns Jacobian of func (p, x) with respect to p with finite +%% differencing. The optional argument hook is a structure which can +%% contain the following fields at the moment: +%% +%% hook.f: value of func(p, x) for p and x as given in the arguments +%% +%% hook.diffp: positive vector of fractional steps from given p in +%% finite differencing (actual steps may be smaller if bounds are +%% given). The default is .001 * ones (size (p)); +%% +%% hook.diff_onesided: logical vector, indexing elements of p for +%% which only one-sided differences should be computed (faster); even +%% if not one-sided, differences might not be exactly central if +%% bounds are given. The default is false (size (p)). +%% +%% hook.fixed: logical vector, indexing elements of p for which zero +%% should be returned instead of the guessed partial derivatives +%% (useful in optimization if some parameters are not optimized, but +%% are 'fixed'). +%% +%% hook.lbound, hook.ubound: vectors of lower and upper parameter +%% bounds (or -Inf or +Inf, respectively) to be respected in finite +%% differencing. The consistency of bounds is not checked. + +function ret = dfxpdp (varargin) + + %% This is an interface to __dfdp__.m. + + if (ischar (varargin{3})) + varargin{3} = @ (p) str2func (varargin{3}) ... + (p, varargin{1}); + else + varargin{3} = @ (p) varargin{3} (p, varargin{1}); + end + + ret = __dfdp__ (varargin{2:end});