我在Octave中的lsqnonlin
函数有问题。
我的代码:
% Heston calibration, local optimization (Matlab’s lsqnonlin)
% Input on data.txt
% Data = [So, t, k, r, mid price, bid, ask]
clear all
global data; global cost; global finalcost;
load data.txt
% Initial parameters and parameter bounds
% Bounds [v0, Vbar, vvol, rho, 2*a*vbar - vvol^2]
% Last bound include non-negativity constraint and bounds for mean-reversion
x0 = [.5,.5,1,-0.5,1];
lb = [0, 0, 0, -1, 0];
ub = [1, 1, 5, 1, 20];
% Optimization: calls function costf.m:
tic;
x = lsqnonlin(@costf,x0,lb,ub);
toc;
% Solution:
Heston_sol = [x(1), x(2), x(3), x(4), (x(5)+x(3)^2)/(2*x(2))]
x
min = finalcost
调用后出现问题:
x = lsqnonlin(@costf,x0,lb,ub);
它返回:
错误:错误:在第75行第14列附近未定义“ fields2cell”错误:已调用 从 第75行第12栏的 jacobian_constants nonlin_residmin 在第413行第5列 nonlin_residmin在第98行第25列 lsqnonlin在第264行第21列
有人遇到过这样的问题吗?如果是,您如何解决?
答案 0 :(得分:0)
我有同样的错误。只需重新安装struct软件包:
pkg install -forge struct
我想这是有问题的。