John - this converges much more quickly.

While awaiting your reply, I used Cliff's suggestion (which seems to
disagree with Leo's but I better understand it) which can be applied to work
with the series you suggest:

   10^.-/%/"1(1 3,:1 1)&(+/ .*)^:(20+i.2)]1 0x   NB. Fewer than 11 digits
_10.79625847621708
   13j11":%/(10x^11)*(1 3,:1 1)&(+/ .*)^:20]1 0x  NB. Last digit incorrect,
as expected
1.73205080758
   9!:11]16

   %:3
1.732050807568877

NB. Generalizing this
   ]pcsn=. 10^.-/%/"1 sqrts3=. (1 3,:1 1)&(+/ .*)^:(100+i.2)]1 0x
_56.55206227888699
   ]numdig=. <.-pcsn   NB. Safe enough to round precision down?
56
   ((2+numdig)j. numdig)":%/1{sqrts3   NB. "1{" to be extra sure...
1.73205080756887729352744634150587236694280525381038062806
   #'1.732050807568877293527446341'  NB. From
http://www.research.att.com/~njas/sequences/A040001
29

So, it looks like "format" is smart enough to preserve precision according
to its left argument when given a rational fraction as its right argument?
That's helpful.

Using the method John sent:

   ]pcsn=. 10^.-/%/"1 sqrts3=. f^:(7 8) 1 1x
_72.66969546124619
   ]numdig=. <.-pcsn
72
   ((2+numdig)j. numdig)":%/1{sqrts3
1.732050807568877293527446341505872366942805253810380628055806979451933017
NB. "1{" is gilding the lily:
   ((2+numdig)j. numdig)":%/0{sqrts3
1.732050807568877293527446341505872366942805253810380628055806979451933017

   ((2+numdig)j. numdig)":%/0{sqrts3
1.7320508075688772935274463415058723669428052538103806280558069794519330171227462181522446767406659571
   ((2+numdig)j. numdig)":%/1{sqrts3
1.7320508075688772935274463415058723669428052538103806280558069794519330169088000370811461867572485757


On Fri, Mar 5, 2010 at 12:28 PM, John Randall <rand...@andromeda.rutgers.edu
> wrote:

> Devon McCormick wrote:
> > Members of the Forum -
> >
> > If I'm approximating, e.g. the square root of 3, with a matrix method
> > which
> > returns an extended precision numerator and denominator, when I work out
> > the
> > decimal equivalent of this, at what point do I run out of significant
> > digits?
> >
>
> Devon:
>
> You can do much better with these Pell-type estimates, since you can
> generate estimates 2,4,8,16,... directly:  If your last estimate was p/q,
> your next estimate is ((*:p)+3**:q)%2*p*q.
>
>
> f=:((1 3)&(+/ .*)@:*:),+:@(*/)
>
>   f^:(i.5) 1 1x
>      1       1
>      4       2
>     28      16
>   1552     896
> 4817152 2781184
>
>   (%:3)-%/f^:3 ] 1 1x
> _9.20496e_5
>   (%:3)-%/f^:4 ] 1 1x
> _2.44585e_9
>   (%:3)-%/f^:5 ] 1 1x
> 0
>
> Best wishes,
>
> John
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>



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

Reply via email to