It is correct and better! --Kip Murray
Sent from my iPad > On Sep 23, 2013, at 6:00 PM, Henry Rich <[email protected]> wrote: > > ratio =: [: %~/ [: (>./ - <./) [: +. , > > untested > > Henry Rich > >> On 9/23/2013 6:16 PM, km wrote: >> Verb ratio calculates (max - min of imaginary parts) % (max - min of real >> parts) , thus: >> >> ratio =: [: %~/ [: (>./ - <./)"1 [: |: [: +. , >> >> Sample use: >> >> data =: _1 0j_1 1 0j1 _1 ,: 0j_3 0j_1.5 0 0j1.5 0j3 >> NB. square and straight line >> ratio data >> 3 >> 'aspect 3' plot data NB. Shows the square as a square >> >> --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 > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
