[Jprogramming] Explicit fib

'Mike Day' via Programming programming at jsoftware.com
Wed Mar 1 09:37:58 UTC 2017


namely?

I do see there were  some problems in the display of verb "spiral"
(despite pasting the stuff to a text notepad file and then copying/
pasting into Thunderbird! - sorry again)

I've attempted some inline edits below.  Maybe they'll work...
Also, I see I'd swapped the comments on the 2-d and 3-d plot examples!
I've just now thought of Googling "Fibonacci Helix" which revealed the
idea of drawing cylindrical quarter-spirals in successive nested cubes of
size 1 1 2 3 5...    Needs a bit of work!

You mentioned just now trying:

'pensize 2;aspect 1'plot ((t^3)*sin t);(t^3)*cos t=:do 0,(o.4.5),100

but that suggests you should give Raul's proposal a shot,
something like

'pensize 2;aspect 1'plot [t;] ((phi^t)*sin t);(phi^t)*cos t
(ie with or without t;   ^^^^ NOT J notation! )

It seems a lot simpler to draw the exact helix in some such fashion,
than to develop the fractal squares or cubes that I'd started on.

Mike


On 01/03/2017 08:18, Linda A Alvord wrote:
> Mike,
>
> Here's an error that I am getting.
>
> Linda
>
> -----Original Message-----
> From: Programming [mailto:programming-bounces at forums.jsoftware.com] On Behalf Of 'Mike Day' via Programming
> Sent: Tuesday, February 28, 2017 11:03 AM
> To: programming at jsoftware.com
> Subject: Re: [Jprogramming] Explicit fib
>
> That's the exact approach,  as you know.
>
> Meanwhile,  I'd got the impression that Linda wished to present the
>
> quarter-circle approximations, as shown in, eg,
>
> https://en.wikipedia.org/wiki/Golden_spiral#/media/File:Fibonacci_spiral_34.svg
>
> So I've amused myself for a while developing the following. As each quarter
>
> circle has an offset centre,  I've reverted to Cartesian coords.
>
> It's ended up less transparent than I hoped.  Also,  given the fairly rapid
>
> growth of the Fibonacci sequence,  the later cycles dominate the plot.
>
> (Cliff's reference to his article has just popped up while I was drafting this; it might render all the following redundant!)
>
> NB. Fibonacci spirals:
> NB. radii     1     1    2     3       5     8      13 21       34
> NB. centres (00)  (00) (01) (_1 1) (_1 _1) (2 _1) (2  4) (_6  4)  (_6 _9) NB. differences between centres:
> NB.  diffs     (00) (01) (_1 0) (0 _2)  (3 0)  (0 5)  (_8 0)  (0 _13)
> NB. multipliers needed to derive these differences:
> NB.  mults     (10) (01) (_1 0) (0 _1)  (1 0)  (0 1)  (_1 0)  (0  _1)
>
> mults   =: 1 0 0 1 _1 0 0 _1$~ ,&2
> radii   =: 0 1, fib2"0 @: i. @: -&2    NB. as defined elsewhere in thread
>     NB. Think I'd prefer a vector fib on a scalar input, but no matter, here!
> centres =: +/\@ }:@: (0, radii * mults)
>
> NB. set parameter running over y circles (sets of 2pi) in x steps per quadrant,  from pi/2
> param   =: (] (0.5p1+(2p1 * (#~>:&0))) @: i:@j. (*(8&*)))
>
> xyvals  =: cos,: sin    NB. radius 1, centre 0 0
>
> NB. set up approx Fibonacci Spiral for y[0] circles,  y[1] steps per quadrant

> spiral  =: 3 : 0
> 'n s'   =. 2{. y, 10
> nt      =. #t       =. s param n
> offsets =. nt{.s#centres 1+4*n     NB. centres in each successive quadrant
> rads    =. nt{.s#}.radii 2+4*n     NB. radii   """"""
> NB. slight inefficiency here, ^^^,  in calling fib2 (or whatever) twice
> xy      =. (|:offsets) + rads *"1 xyvals t   NB. cart coords of quarter
> NB.     circles
> ((4*s)%~ i.nt) , xy                NB. return scale (fairly arbitrary)
> NB.     with x y coords
> )
>
> 'pensize 2;aspect 1'plot <"1 spiral 2 10 NB. 3-d plot of spiral v
> NB. circle counter
>
> 'pensize 2;aspect 1'plot <"1 }. spiral 2 10 NB. 2-d plot of spiral
>
> I expect it would need simplifying for 10/11 year-olds,  if they're who Linda has in mind.
>
> But a start,  maybe
>
> Mike
>
>
> On 28/02/2017 15:07, Raul Miller wrote:
>> It is begining to sound like you might want this approach:
>>
>> phi=: (1 + %: 5) % 2
>>
>> spiralfib=: verb define
>>      (phi^y) % %:5
>> )
>>
>> fib=: verb define
>>     <. 0.5 + spiralfib y
>> )
>>
>> Is that where you were heading?
>>
>> Thanks,
>>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm



---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus


More information about the Programming mailing list