User guide
17-9
c1.bounds = 0~100; // constrains parameters to be
positive
c1.CovType = 1;
c1.output = 1;
c1.printIters = 0;
c1.gradProc = &grad;
struct PV par1;
par1 = pvCreate;
start = { 2, 4, 2 };
par1 = pvPacki(par1,start, "Parameters",1);
struct SQPsolveMTout out1;
out1 = SQPsolveMT(&Micherlitz,par1,Z,c1);
estimates = pvGetParVector(out1.par);
print " parameter estimates ";
print estimates;
print;
print " standard errors ";
print sqrt(diag(out1.moment));
proc Micherlitz(struct PV par1,struct DS Z);
local p0,e,s2;
p0 = pvUnpack(par1,1);
e = Z[1].dataMatrix - p0[1] - p0[2]*exp(-p0[3]
*Z[2].dataMatrix);
s2 = moment(e,0)/(rows(e)-1);
retp( (2/rows(e))*(e.*e/s2 + ln(2*pi*s2)));
endp;
proc grad(struct PV par1, struct DS Z);
local p0,e,e1,e2,e3,w,g,s2;
p0 = pvUnpack(par1,1);
w = exp(-p0[3]*Z[2].dataMatrix);
e = z[1].dataMatrix - p0[1] - p0[2] * w;
Run-Time Library
Structures










