The current challenge is to write the verb ratio illustrated in the Sep 21 note. --Kip Murray
Sent from my iPad > On Sep 21, 2013, at 10:14 AM, km <[email protected]> wrote: > > I hope the following simpler example will clarify. Notes explain what the > ratio is. > > data1 =: _1 0j_1 1 0j1 _1 ,: _2 _1 0 1 2 > NB. a square and a straight line > > data2 =: 0 { data1 NB. a square > > plot data1 NB. plot shows square as parallelogram > > ratio data1 NB. this ratio is (1 - _1) % 2 - _2, see plot > 0.5 > > 'aspect 0.5' plot data1 NB. plot shows square as square > > plot data2 NB. plot shows square as a parallelogram > > ratio data2 NB. this ratio is (1 - _1) % 1 - _1, see plot > 1 > > 'aspect 1' plot data2 NB. plot show square as square > > IFIPAD > 1 > VERSION > 1.3 5 > > --Kip Murray > > Sent from my iPad > >> On Sep 21, 2013, at 8:26 AM, Raul Miller <[email protected]> wrote: >> >> Do you mean something like an average of the sum along the last dimension? >> >> If so, how important is it that any excess precision gets discarded? >> >> Thanks, >> >> -- >> Raul >> >>> On Sat, Sep 21, 2013 at 8:38 AM, km <[email protected]> wrote: >>> Challenge: devise a verb ratio so that if >>> >>> data1 =: ((,-)2j1) ,: _1^(%~i:)60 >>> data2 =: _1^(%~i:)60 >>> >>> then >>> >>> ratio data1 >>> 0.5 >>> ratio data2 >>> 1 >>> >>> i.e., if data is complex plot data and r is the result of ratio data >>> then circles in >>> >>> 'aspect r' plot data >>> >>> appear circular. >>> >>> --Kip Murray >>> >>> Sent from my iPad >>> >>>> On Sep 21, 2013, at 4:08 AM, km <[email protected]> wrote: >>>> >>>> Try >>>> >>>> 'aspect 0.5' plot ((,-)2j1) ,: _1^(%~i:)60 >>>> >>>> and >>>> >>>> 'aspect 1' plot _1^(%~i:)60 >>>> >>>> --Kip Murray >>>> >>>> Sent from my iPad >>>> >>>>> On Sep 21, 2013, at 3:15 AM, Bo Jacoby <[email protected]> wrote: >>>>> >>>>> 'aspect 1' plot ((,-)2j1) ,: _1^(%~i:)60 NB. This makes the frame of >>>>> the plot square, but it has different units on the two axes, so the >>>>> circle is deformed. How do I make the circle circular? >>>>> plot ((,-)2j1),:_1^(%~i:)60 NB. This is different, but not correct >>>>> either. >>>>> >>>>> >>>>>> ________________________________ >>>>>> Fra: Linda Alvord <[email protected]> >>>>>> Til: [email protected] >>>>>> Sendt: 3:39 lørdag den 21. september 2013 >>>>>> Emne: Re: [Jprogramming] Plotting complex lists >>>>>> >>>>>> >>>>>> Square isn't so square either. Linda (Yet again, life is a series of >>>>>> approximations.) >>>>>> >>>>>> -----Original Message----- >>>>>> From: [email protected] >>>>>> [mailto:[email protected]] On Behalf Of Bo Jacoby >>>>>> Sent: Wednesday, September 18, 2013 9:52 PM >>>>>> To: [email protected] >>>>>> Subject: Re: [Jprogramming] Plotting complex lists >>>>>> >>>>>> Thanks Linda! The 'aspect 1' makes the plot square. Do you know how to >>>>>> make >>>>>> circles circular? >>>>>> >>>>>> >>>>>>> ________________________________ >>>>>>> Fra: Linda Alvord <[email protected]> >>>>>>> Til: [email protected] >>>>>>> Sendt: 2:48 torsdag den 19. september 2013 >>>>>>> Emne: Re: [Jprogramming] Plotting complex lists >>>>>>> >>>>>>> >>>>>>> Try replacing the last line with: >>>>>>> >>>>>>> 'aspect 1' plot circle,ellipse,:hyperbola >>>>>>> >>>>>>> Linda >>>>>>> >>>>>>> -----Original Message----- >>>>>>> From: [email protected] >>>>>>> [mailto:[email protected]] On Behalf Of Bo >>>>>>> Jacoby >>>>>>> Sent: Tuesday, September 17, 2013 12:00 PM >>>>>>> To: [email protected] >>>>>>> Subject: Re: [Jprogramming] Plotting complex lists >>>>>>> >>>>>>> One benefit of using complex numbers is that you may forget about >>>>>>> trigonometry. >>>>>>> >>>>>>> load'plot' >>>>>>> circle=._1^n=.(%~i:)60 >>>>>>> ellipse=.(circle*-.a)+(+circle)*a=.0.8 >>>>>>> hyperbola=.-:((+%)j.(-%))^n >>>>>>> plot circle,ellipse,:hyperbola >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>>> ________________________________ >>>>>>>> Fra: km <[email protected]> >>>>>>>> Til: "[email protected]" <[email protected]> >>>>>>>> Sendt: 0:40 tirsdag den 17. september 2013 >>>>>>>> Emne: Re: [Jprogramming] Plotting complex lists >>>>>>>> >>>>>>>> >>>>>>>> Summary of results. The strategy of hyperbola below (plotting a >>>>>>>> complex >>>>>>> table) is not well known. Henry Rich found it and reported it. >>>>>>>> >>>>>>>> Bo Jacoby gave the best way to change the sign of the real part of a >>>>>>> complex number. >>>>>>>> Simply do [: + - . >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> NB. Complex Analytic Geometry >>>>>>>> >>>>>>>> >>>>>>>> NB. How to calculate complex number lists and tables for NB. plotting >>>>>>>> lines, circles, ellipses, and hyperbolas. How to NB. modify these >>>>>>>> tables to achieve translations, rotations, NB. and reflections. Begin >>>>>>>> with preliminaries: >>>>>>>> >>>>>>>> >>>>>>>> steps =: {.@] + -~/@] * [ %~ [: i. >:@[ >>>>>>>> >>>>>>>> NB. n steps a,b produces n+1 equally spaced values from a to b >>>>>>>> >>>>>>>> to =: 512 steps , NB. Usage a to b for 512 steps from a to b >>>>>>>> >>>>>>>> sin =: 1&o. >>>>>>>> >>>>>>>> cos =: 2&o. >>>>>>>> >>>>>>>> sinh =: 5&o. >>>>>>>> >>>>>>>> cosh =: 6&o. >>>>>>>> >>>>>>>> arcsinh =: _5&o. >>>>>>>> >>>>>>>> >>>>>>>> NB. Now, results >>>>>>>> >>>>>>>> >>>>>>>> line =: 2 : 'm + (n-m)*]' >>>>>>>> >>>>>>>> NB. A line B [ t is point "t of the way from A to B". Command NB. >>>>>>>> NB. plot 0 line 1j1 [ _1 to 2 >>>>>>>> NB. >>>>>>>> NB. shows the line segment from _1j_1 to 2j2 >>>>>>>> >>>>>>>> NB. You are plotting a list of 513 complex numbers. >>>>>>>> >>>>>>>> >>>>>>>> parabola =: 1 : '] j. (1 % 4 * m) * *:' >>>>>>>> >>>>>>>> NB. p parabola x produces point x j. y on parabola NB. (*: x) = 4*p*y >>>>>>>> . Command NB. >>>>>>>> NB. plot 1r4 parabola _2 to 2 >>>>>>>> NB. >>>>>>>> NB. plots parabola y = *: x for x from _2 to 2 >>>>>>>> >>>>>>>> NB. You are plotting a list of 513 complex numbers. >>>>>>>> >>>>>>>> >>>>>>>> ellipse =: 2 : '((m * cos) j. n * sin) 0 to 2p1' >>>>>>>> >>>>>>>> NB. Suggested by Henry Rich >>>>>>>> >>>>>>>> NB. Command >>>>>>>> NB. >>>>>>>> NB. plot a ellipse b >>>>>>>> NB. >>>>>>>> NB. plots the ellipse 1 = (*: x % a) + *: y % b . >>>>>>>> >>>>>>>> NB. If a = b you get the circle (*: x) + (*: y) = *: a >>>>>>>> >>>>>>>> >>>>>>>> hyperbola =: 2 : '[: (,: +) (n * sinh) j. m * cosh' >>>>>>>> >>>>>>>> NB. Suggested by Henry Rich >>>>>>>> >>>>>>>> toh =: [: to/ [: arcsinh %~ >>>>>>>> >>>>>>>> NB. b toh c,d is (arcsinh c%b) to (arcsinh d%b) >>>>>>>> >>>>>>>> NB. Command >>>>>>>> NB. >>>>>>>> NB. plot a hyperbola b [ b toh c,d >>>>>>>> NB. >>>>>>>> NB. plots y^2/a^2 - x^2/b^2 = 1 for x from c to d. >>>>>>>> >>>>>>>> NB. Remember the pattern b [ b toh c,d >>>>>>>> >>>>>>>> NB. You are plotting rows of a 2 by 513 table to get the two NB. >>>>>>>> branches of the hyperbola. >>>>>>>> >>>>>>>> >>>>>>>> NB. Rotations, translations, and reflections >>>>>>>> >>>>>>>> NB. Multiply a complex number list or table by (^&j. theta) NB. to >>>>>>>> rotate all of its points by theta radians. The center NB. of rotation >>>>>>>> is the origin 0 = 0j0 . >>>>>>>> >>>>>>>> NB. Add 5j3 to a complex list or table to move all of its points NB. >>>>>>>> the distance and direction of 5j3 from 0j0. >>>>>>>> >>>>>>>> NB. Use (+ list) or (+ table) (monadic + is conjugate) to NB. reflect >>>>>>>> all the points of the list or table across the NB. line through 0j0 >>>>>>>> and >>>>>>>> 1j0 -- the x-axis. Afterwards NB. multiply by (^&j. theta) to achieve >>>>>>>> a reflection across NB. the line through 0j0 and (^&j. theta). >>>>>>>> >>>>>>>> NB. Multiply a positive number p times a list or table to NB. achieve >>>>>>>> an expansion from 0 or compression toward 0 NB. according as p > 1 >>>>>>>> or p < 1 . >>>>>>>> >>>>>>>> NB. If you want to combine several operations do the NB. reflection >>>>>>>> first and the translation last. >>>>>>>> >>>>>>>> NB. Example >>>>>>>> NB. >>>>>>>> NB. plot (^&j. theta) * p parabola _2 to 3 NB. >>>>>>>> NB. plots a parabola rotated by theta radians, with 0j0 NB. the center >>>>>>>> of rotation. If theta is _1r2p1 (that is NB. - pi%2 radians) you have >>>>>>>> converted a (*: x) = 4 * p * y NB. parabola into a (*: y) = 4 * p * >>>>>>>> x parabola. >>>>>>>> >>>>>>>> >>>>>>>> --Kip Murray >>>>>>>> >>>>>>>> Sent from my iPad >>>>>>>> >>>>>>>> ---------------------------------------------------------------------- >>>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>>> ---------------------------------------------------------------------- >>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>>> >>>>>>> ---------------------------------------------------------------------- >>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>> ---------------------------------------------------------------------- >>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>> >>>>>> ---------------------------------------------------------------------- >>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>> ---------------------------------------------------------------------- >>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
