NDSolve
- To: mathgroup at smc.vnet.net
- Subject: [mg9581] NDSolve
- From: "N. Kinoshita" <nk204 at hermes.cam.ac.uk>
- Date: Thu, 13 Nov 1997 01:40:42 -0500
- Sender: owner-wri-mathgroup at wolfram.com
I have a question about NDSolve.
I have three functions called 'kdot', lkdot' and 'lhdot'. They are
functions of 'k', 'lk' and 'lh'.
I define 'kdotfun', 'lkdotfun' and 'lhdotfun' which are functions only
of [k] by using:
kdotfun=kdot/.{lk->lk[k],lh->lh[k]};
lkdotfun=lkdot/.{lk->lk[k],lh->lh[k]};
lhdotfun=lhdot/.{lk->lk[k],lh->lh[k]};
Now I do NDSolve which looks like
kbgp=0.12;lkprime=-0.5;lhprime=-1;
solpolicy=NDSolve[{lk'[k]==If[k==kbgp,lkprime,Evaluate[lkdotfun/kdotfun]],
lh'[k]==If[k==kbgp,lhprime,Evaluate[lhdotfun/kdotfun]],lk[kbgp]==lkbgp,
lk[kbgp]==lkbgp,lh[kbgp]==lhbgp},{lk,lh},{k,kbgp/2,kbgp*2}];
lkpolicy=lk/.First[solpolicy];lhpolicy=lh/.First[solpolicy];
This works fine.
Then, I wanted to do the second integration.
kdotfun2=kdot/.{k->k[t],lk->lkpolicy[k[t]],lh->lhpolicy[k[t]]};
NDSolve[{k'[t]==kdotfun2,k[0]==kbgp/2},k,{t,0,10}]
This returns the message that 'Right hand side does not evaluate at
t=...' So, I tried wrapping 'kdotfun2' by Evaluate[kdotfun2]. Again,
'Right hand side does note evaluate at t=...'. I aborted it after a
few seconds. This time I get a terribly long error message in the
message box and terribly long output which took a few minutes to
finish.
Could anybody suggest what went wrong and how to correctly integrate
'kdotfun2'? I really appreciate your attention.
By the way, what I am trying to do is called 'time elimination method',
which would be of great interest to economists who study economic
growth model.
Noriaki Kinoshita
University of Cambridge
P.S. I just typed in all the commands by hand. I apologise if there
are any errors.