Yes that's right, the argument for V is the iteration count.
So V 2496 translates to about 1.4 years.
The step size dt *is* very small to satisfy convergence criteria (actually it 
maybe should be even smaller).
I could have a larger dt if I were to implement the finite difference scheme 
implicitly rather than explicitly.
But that's quite a bit more work which I'd like to avoid if possible!
So if there's some way to get around this limitation in J, I'd be very pleased 
to hear it...
Alistair


----- Original Message ----
From: Devon McCormick <[EMAIL PROTECTED]>
To: Programming forum <[email protected]>
Sent: Tuesday, 11 September, 2007 12:36:49 PM
Subject: Re: [Jprogramming] stack overflow

I see that it looks like an iteration count.  It fails for me thusly:

   6!:2 'rr=. V 2496'
0.50126902
   6!:2 'rr=. V 2497'
|stack error: Gamma
| rr=. V 2497


On 9/11/07, Devon McCormick <[EMAIL PROTECTED]> wrote:
>
> What does an argument to "V" look like?
>
> On 9/11/07, Alistair Tucker <[EMAIL PROTECTED] > wrote:
> >
> > Hi
> > I'm a little disconcerted to find that I'm getting stack overflows for
> > more than two thousand iterations of my recursive function.
> > This is a problem.  As it stands, my program (below) is unable to price
> > a convertible bond with more than about a year to maturity.
> > Is there some way round this?  Perhaps I should be implementing the
> > iteration in some other way?
> > Alistair
> >
> > NAS=: 100
> > dS=: 2
> > S=: dS*i.NAS
> > k=: 135
> > r=: 0.05
> > b=: 113.22
> > dL=: %365
> > sigma=: 0.4
> > dt=: 0.9%*:sigma*NAS
> >
> > Sgtk=: S#~S>k
> > Sltk=: S#~S<:k
> >
> > Delta=: (2*dS)%~2&}.-_2&}.
> > Gamma=: (*:dS)%~2&}.+_2&}.-2*}.@:}:
> > dV_dL=: dL%~}."_1-}:"_1
> >
> > negTheta_ltk=: ([:-r*{.@:[),(((r*}.Sltk)*Delta)+( 0.5**:sigma*
> > }.Sltk)*Gamma)@:([,{.@:{.@:])-r*}.@:[
> >
> > step_gtk=: ((}:@:]+dt*(((r*}:Sgtk)*Delta)+(0.5**:sigma*
> > }:Sgtk)*Gamma)@:({:@:[,])-r*}:@:])(}:"_1@:]))+(dt*dV_dL@:}:@:])
> >
> > V_ltk=: Sltk>.[+dt*negTheta_ltk
> > V_gtk=: (Sgtk>.b,.~],({.-~2*{:)@:(_2&{.))@:step_gtk
> >
> > Vrec=: (>@:{.(V_ltk;V_gtk)>@:{:)@:V@:<:
> > V=: Vrec`((b$~+/S<:k);(b$~16,~+/S>k)"0)@.(0=])
> >
> >
> >
> >
> >
> >
> >       ___________________________________________________________
> > Want ideas for reducing your carbon footprint? Visit Yahoo! For Good
> > http://uk.promotions.yahoo.com/forgood/environment.html
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> >
>
>
>
> --
> Devon McCormick, CFA
> ^me^ at acm.
> org is my
> preferred e-mail




-- 
Devon McCormick, CFA
^me^ at acm.
org is my
preferred e-mail
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm







      ___________________________________________________________
Yahoo! Answers - Got a question? Someone out there knows the answer. Try it
now.
http://uk.answers.yahoo.com/
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to