Hi,

I’m working on a model with money, in which I take the ‘money in utility’ form to construct my model. (U=…+gamma*log(M/P)+…)*

It naturally gives a F.O.C. in the form of:

gamma/(M/P)=C^(-signa)(i/(1+i))

Then during the process of log-linearization, the right side of the equation would be transformed into an expression with log(i/rho) (where rho is the steady-state interest rate).

(I define I=log((1+i)/(1+rho)) (in the traditional way), so approximately I=i-rho.)

Then using log-linearization, we can write down:

log(i/rho)=log((I+ rho)/rho)=log(1+I/rho)

We can fairly say that log(1+x)=x when x is small (|x|<0.1), but in this situation, I/rho would be in the interval [0,3] in the normal shock size, which absolutely does not suit for Taylor Approximation. (eg. log(1+3)=1.39<<3)

However, it seems that we have to use Taylor Approximation in Dynare, which would lead to bad accuracy. Even if you use higher order, it only makes the approximation worse, because using the Taylor Approximation

log(1+x)=x-x^2/2+x^3/3+…+(-x)^n/n+…

when |x|>1, this series just explodes…

I was wondering if you can help me solve this problem…

I guess that the 3 in your discussion above means an upper bound for rho of 3%. Then the upper bound of your interval is 1+0.03 and not 1+3

Sorry, but in my model rho=0.02, and the absolute value of i can be [0,0.06] if I set the initial shock value to be 0.1.

Temporarily I reset shock to 0.01 to avoid this problem, but I’m very curious about the experiment if the shock is bigger.

I’m not sure to understand why do you feel necessary to reset the value of the shock, but if you are dealing with big shocks in a small model, you should consider solving it via value function iterations or global methods. None of these approaches are provided by Dynare.

I am also puzzled by the statement on higher order approximations. Obviously the log is also going to infinity. So higher order approximations are usually more and not less accurate.

As I have said before, using Taylor expansion we can get

log(1+x)=x-x^2/2+x^3/3+…+(-1)^(n-1)*(x^n)/n+…

So if |x|<1, we can get as accurate as we want by just increasing the order of Taylor approximation, because the series above is convergent on interval (-1,1]. However, if the shock size is so big that |x|>1, the series above will diverge, then Taylor approximation will fail.

Now I get it. If you move outside of the convergence radius, you will of course get problems. That is a case where the local solution techniques available in Dynare do not work accurately. As @MichelJuillard pointed out, you would go for global methods in this case. Take projection methods. Here you could use Chebyshev polynomials that do not suffer from the same problem as normal polynomials.