I’ll start with a little background on my model. Among my parameters are p, muln, and sigmaln, and one of my endogenous variables is z. The nonstochastic steady-state value of z is logninv(p,muln,sigmaln), where logninv is the lognormal inverse cumulative distribution function in MATLAB.

It turns out I need the nonstochastic steady-state value of z in my model block. However, as we know logninv is not one of the allowed functions in the model block. To get around this, I created an additional parameter z_ss and assigned z_ss = logninv(p,muln,sigmaln) in the parameter block. (Apparently arbitrary functions are allowed in the parameter block.)

My question is: how would Dynare pick new parameters during parameter estimation step? Does it change the parameter vector as a whole by epsilon without regard for the structure of the parameters? That is, as Dynare runs some sort of minimization routine, it picks new parameters independently so it picks a new z_ss that is not logninv(p,muln,sigmaln). Or is it the case that Dynare runs through the parameter step first so any z_ss goes into the minimization routine would satisfy the condition z_ss = logninv(p,muln,sigmaln)?

Thank you very much for your time!

Tim