numdig=. 100  NB. for the last pair of examples...

On Fri, Mar 5, 2010 at 12:58 PM, Devon McCormick <devon...@gmail.com> wrote:

> 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<http://www.research.att.com/%7Enjas/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
>
>


-- 
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