IMO one can understand tacit form if that was what flowing out naturally from his/her brain, not by cheating by using 13 :.
Habitual use of 13 : can hinder a user to acquire the ability to think in tacit form. Срд, 22 Авг 2012, Linda Alvord писал(а): > If you are able to use 5!:4 and get a tree, is that a way to tell if the > definition is tacit? > > Thanks for letting me know that I was not clear about tacit. > > Linda > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Ric Sherlock > Sent: Wednesday, August 22, 2012 9:36 PM > To: [email protected] > Subject: Re: [Jprogramming] Creating random symmetric matrices > > Just a pedantic nitpick with regard to terminology here. > Ewart's verbs were already tacit. I think the key thing that your versions > show is how that tacit translates to explicit and then how 13 > : retranslates them to another tacit version without hooks. > > On Thu, Aug 23, 2012 at 12:45 PM, Linda Alvord <[email protected]> > wrote: > > Ewart's function in tacit version: > > > > trian=: 13 :'-:y*>:y' > > indsy=: 13 :'(>.|:i.y)+/tri i.y' > > > > indsy 4 > > 0 1 3 6 > > 1 2 4 7 > > 2 3 5 8 > > 3 4 6 9 > > trian > > [: -: ] * >: > > indsy > > ([: >. [: |: i.) +/ [: tri i. > > > > Linda > > > > > > -----Original Message----- > > From: [email protected] > > [mailto:[email protected]] On Behalf Of Henry > > Rich > > Sent: Wednesday, August 22, 2012 6:46 PM > > To: [email protected] > > Subject: Re: [Jprogramming] Creating random symmetric matrices > > > > Why yes, that's much better. Very clever way of filling the triangle. > > > > Henry Rich > > > > On 8/22/2012 4:28 PM, Ric Sherlock wrote: > >> Note that Ewart Shaw has responded to this on the Wiki with a > >> solution that only generates the required number of random numbers: > >> http://www.jsoftware.com/jwiki/EwartShaw/RandomSymmetricMatrix > >> > >> On Wed, Aug 22, 2012 at 5:30 PM, Ric Sherlock <[email protected]> wrote: > >>> The other option is not to add them in the first place? > >>> > >>> load 'stats/distribs' > >>> (|: + ~: zeroTri ) >: zeroTri rnorm 5 5 > >>> 0.346799 _1.22161 0.57274 0.556122 _0.329658 > >>> _1.22161 0.149955 _1.77435 _1.76668 0.831557 > >>> 0.57274 _1.77435 0.77674 _0.0690683 _0.967551 > >>> 0.556122 _1.76668 _0.0690683 0.720588 _0.195658 > >>> _0.329658 0.831557 _0.967551 _0.195658 _0.12314 > >>> > >>> In other words zero the items above the diagonal then transpose and > >>> add to the non-diagonal items. > >>> > >>> Where zeroTri is an adverb defined as below: > >>> > >>> NB.*zeroTri a Zeros triangular items of matrix determined by verb to > left > >>> NB. EG: < zeroTri mat NB. zeros lower-tri items of mat > >>> NB. EG: <: zeroTri mat NB. zeros lower-tri, off-diag items of mat > >>> NB. EG: > zeroTri mat NB. zeros upper tri items of mat > >>> NB. EG: = zeroTri mat NB. zeros all off-diag items of mat > >>> NB. EG: ~: zeroTri mat NB. zeros diag items of mat > >>> zeroTri=: 1 :'([: u/~ i.@#) * ]' > >>> > >>> This is somewhat wasteful in that you generate a bunch of random > >>> numbers that you then discard, but if that was an issue you could > >>> work around it. > >>> > >>> > >>> On Wed, Aug 22, 2012 at 5:07 PM, Owen Marschall > >>> <[email protected]> wrote: > >>>> You read my mind. I was thinking about this same problem tonight > >>>> while > > at the opera, and I couldn't think of any way to only divide the > > diagonals by sqrt(2) a second time--without loops, of course. I don't > > quite yet understand why your solution works, but I'm sure with enough > > staring and dictionary help I'll get it. > >>>> > >>>> Thanks, > >>>> Owen > >>>> > >>>> On Aug 21, 2012, at 8:25 PM, Henry Rich wrote: > >>>> > >>>>> If you have a matrix a of standard normal deviates, you can make > >>>>> it symmetric with > >>>>> > >>>>> asymm =: (+ |:) a > >>>>> > >>>>> but what is the variance of the items of a? > >>>>> > >>>>> The variance of values off the principal diagonal will be the sum > >>>>> of > > the variance of two independent standard normal deviates. i.e. 2. > >>>>> > >>>>> To return these values to variance 1 you need to divide by sqrt(2). > >>>>> > >>>>> But the variance of values ON the principal diagonal will be the > >>>>> sum of > > two perfectly correlated random variables, i. e. 4. > >>>>> > >>>>> So you need to treat the principal diagonal differently. You can > > reduce its variance by scaling it differently after the conversion to > > symmetric, dividing the diagonal by sqrt(4) and the rest by sqrt(2): > >>>>> > >>>>> asymmgood =: asymm % %: +: >: e. i. # asymm > >>>>> > >>>>> (The e. i. bit is a standard idiom for making an identity matrix. > > Another one you see around is = i. but I avoid that because I think > monad > > = was wrongly defined and should be assigned for other purposes) > >>>>> > >>>>> If I've made a statistical blunder I'm sure someone will tell me. > >>>>> > >>>>> Henry Rich > >>>>> > >>>>> On 8/21/2012 3:10 PM, Owen Marschall wrote: > >>>>>> Ah, just what I needed. Thanks! > >>>>>> > >>>>>> On Aug 21, 2012, at 1:06 PM, Ric Sherlock wrote: > >>>>>> > >>>>>>> The primitive ( |: ) is transpose. E.g. : > >>>>>>> > >>>>>>> |: i. 3 4 > >>>>>>> 0 4 8 > >>>>>>> 1 5 9 > >>>>>>> 2 6 10 > >>>>>>> 3 7 11 > >>>>>>> On Aug 22, 2012 6:55 AM, "Owen Marschall" > >>>>>>> <[email protected]> > > wrote: > >>>>>>> > >>>>>>>> Anyone know of an easy way to create a random symmetric matrix > >>>>>>>> (more specifically, a matrix whose entires are each picked from > >>>>>>>> a standard Gaussian distribution)? I can start by doing > >>>>>>>> > >>>>>>>> load 'stats' > >>>>>>>> R=:normalrand N N > >>>>>>>> > >>>>>>>> but this is not symmetric, and I don't know of any way to > >>>>>>>> symmetrize it without thinking in loops, which I'm training > >>>>>>>> myself not to. If I could somehow take a transpose, that would > >>>>>>>> solve the problem, but I don't know how to do that either. > >>>>>>>> > >>>>>>>> Thanks, > >>>>>>>> Owen > >>>>>>>> --------------------------------------------------------------- > >>>>>>>> - > >>>>>>>> ------ 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 -- regards, ==================================================== GPG key 1024D/4434BAB3 2008-08-24 gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
