1

为了这

% Optimization using fminsearch
if ~isfield(Model, 'MatlabDisp'), Model.MatlabDisp = 'off'; end;

options = optimset('LargeScale', 'off', 'MaxIter', 300, 'MaxFunEvals',300,'Display',Model.MatlabDisp, 'TolFun', 1e-4, 'TolX', 1e-4, 'TolCon', 1e-4); 
if ~isfield(Model, 'Method'), Model.Method = 'besseli'; end;
if strcmp(Model.Method, 'ncx2pdf')
    [Params, Fval, Exitflag] =  fminsearch(@(Params) CIRobjective2(Params, Model), InitialParams, options);   
else
    [Params, Fval, Exitflag] =  fminsearch(@(Params) CIRobjective1(Params, Model), InitialParams, options);   
end
%tol = 1e-6;
%lb = [ tol,  tol, tol];
%ub = [ inf,  inf, inf];    
%[Params, Fval, Exitflag] = fmincon(@(Params) CIRobjective1(Params, Model),                                                                  
InitialParams, [], [], [], [], lb, ub, [], options);

Results.Params = Params;
Results.Fval = -Fval/Nobs;
Results.Exitflag = Exitflag;

if strcmp(Model.Disp, 'y')
    fprintf('\n alpha = %+3.6f\n mu    = %+3.6f\n sigma = %+3.6f\n', Params(1), Params(2), Params(3));
    fprintf(' log-likelihood = %+3.6f\n', -Fval/Nobs);
end

我有

'struct' 类型的输入参数的未定义函数或方法'mtimes'。

Error in ==> CIRobjective2 at 26
u = c*exp(-alpha*TimeStep)*DataL;

Error in ==> @(Params)CIRobjective2(Params,Model)


Error in ==> fminsearch at 205
fv(:,1) = funfcn(x,varargin{:});

这是实际的源文件

http://www.mathworks.com/matlabcentral/fileexchange/37297-maximum-likelihood-estimation-of-the-cox-ingersoll-ross-process-the-matlab-implementation/content/CIRestimation.m

你能帮我解释一下为什么会出现这些错误吗?

问候, 马苏德

4

1 回答 1

0

你确定你把所有的功能都正确并定义好了吗?也许您的功能不在正确的道路上。

尝试先做初始参数,定义 InitialParams 以便它出现在您的变量中。然后做 CIRobjective1 然后 2 然后你可以使用 fminsearch 进行优化。希望有帮助。我是 matlab 的新用户,但必须将它用于我的论文。

问候,丽塔。

于 2014-04-15T10:24:11.513 回答