As far as I understand it: Kip is doing Newton transformation, explicitely using binomial coefficients (!) and creating a n*n matrix, where n is #data. The inverse transformation is different from the forward transformation.
Don is computing polynomial coefficients by inverting an n*n matrix. The inverse transformation is different from the forward transformation. Bo is computing a variant of the Newton transformation where the difference operator ( }. - }: ) is replaced by ( }: - }. ). The inverse transformation T^:_1 equal to the forward transformation T. The transform is done in-line in the vector, and no matrix is involved. (By the way the odd cubes are not (1 27 125 etc~15) but rather 1 27 125 343 etc~15 NB. odd cubes 1 27 125 343 729 1331 2197 3375 4913 6859 9261 12167 15625 19683 24389 Sorry about that.) Bo --- Den lør 22/8/09 skrev Don Guinn <[email protected]>: > Fra: Don Guinn <[email protected]> > Emne: Re: [Jprogramming] A better conjunction > Til: "Programming forum" <[email protected]> > Dato: lørdag 22. august 2009 00.09 > Why. It's not advanced. Matrix > operations are covered in schools before > difference calculus. Besides, it is a basic tool of J. > > On Fri, Aug 21, 2009 at 2:51 PM, Bo Jacoby <[email protected]> > wrote: > > > That's nice Don, but isn't the matrix inversion tool > more advanced than > > necessary? > > > > 1 3 etc~15 NB. odd numbers > > 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 > > 0 1 3 etc~15 NB. triangular numbers > > 0 1 3 6 10 15 21 28 36 45 55 66 78 91 105 > > 0 1 5 14 etc~15 NB. pyramidal > numbers > > 0 1 5 14 30 55 91 140 204 285 385 506 650 819 1015 > > 0 1 4 etc~15 NB. square numbers > > 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 > > 0 1 8 27 etc~15 NB. cube numbers > > 0 1 8 27 64 125 216 343 512 729 1000 1331 1728 2197 > 2744 > > 1 27 125 etc~15 NB. odd cubes > > 1 27 125 295 537 851 1237 1695 2225 2827 3501 4247 > 5065 5955 6917 > > > > Of course I would like a tacit definition of T. > > > > --- Den fre 21/8/09 skrev Don Guinn <[email protected]>: > > > > > Fra: Don Guinn <[email protected]> > > > Emne: Re: [Jprogramming] A better conjunction > > > Til: "Programming forum" <[email protected]> > > > Dato: fredag 21. august 2009 18.19 > > > If one wants a polynomial solution to > > > a series there is always matrix > > > divide. > > > p=.3 : '(>:0 > > > i:~0=r){.r=.y%.(i.x:#y)^/i.x:#y' > > > p 0 1 8 27 64 125 216 343 512 729 > 1000 > > > 0 0 0 1 > > > > > > On Fri, Aug 21, 2009 at 7:37 AM, Bo Jacoby <[email protected]> > > > wrote: > > > > > > > How to use involutoric newtontransform to > extrapolate > > > a list of numbers. > > > > > > > > ]data =. 3 ^~ i. 4 NB. test > data > > > > 0 1 8 27 > > > > T data NB. transform once > > > > 0 _1 6 _6 > > > > T T data NB. transform > twice, > > > reproducing data > > > > 0 1 8 27 > > > > T NB. transform using only > '-', > > > neither '*' nor '%' nor even '+'. > > > > 3 : 0 > > > > a =. 0 $ 0 > > > > while. # y do. > > > > a =. a , {. y > > > > y =. ( }: - }. ) y > > > > end. > > > > a > > > > ) > > > > etc NB. extend transform > with zeroes > > > and transform back. > > > > [: T [ {. [: T ] > > > > 11 etc data > > > > 0 1 8 27 64 125 216 343 512 729 1000 > > > > > > > > - Bo > > > > > > > > --- Den fre 21/8/09 skrev Kip Murray <[email protected]>: > > > > > > > > > Fra: Kip Murray <[email protected]> > > > > > Emne: Re: [Jprogramming] A better > conjunction > > > > > Til: "Programming forum" <[email protected]> > > > > > Dato: fredag 21. august 2009 14.41 > > > > > And, of course, > > > > > > > > > > diff =: 2&(-~/\) NB. > differences of a > > > vector > > > > > > > > > > (For the notes at the end) > > > > > > > > > > Kip Murray wrote: > > > > > > In (long sentence here, > watch for the > > > period) > > > > > > > > > > > > > ]data =: 3 ^~ > > > i. 11 > > > > > > 0 1 8 27 64 125 216 343 512 729 > 1000 > > > > > > > > > > > > p =: 3 interp data > > > > > > > > > > > > > p NB. > > > conjunction interp > > > > > embedded > > > > > > (3) (2 : '(y !~ i. >: m) +/ . * > {. (>: > > > m) difftb > > > > > n') 0 1 8 27 64 125 216 > > > > > > 343 512 729 1000 > > > > > > > > > > > > the conjunction interp is supposed > to look > > > at the > > > > > difference table > > > > > > > > > > > > 4 difftb > > > data NB. > > > > > successive differences of first column, > see note > > > [1] > > > > > > 0 1 6 6 > > > > > > 1 7 12 0 > > > > > > 8 19 0 0 > > > > > > 27 0 0 0 > > > > > > > > > > > > and, reading the first line, > produce the > > > equivalent > > > > > of > > > > > > > > > > > > q =: 0 1 6 6 +/ . * > (i.4) ! > > > > > ] NB. A Newton series, > see note > > > [2] > > > > > > . > > > > > > > > > > > > Conjunction interp _does_ produce > an > > > equivalent: > > > > > > > > > > > > (p"0 ,: q"0) i. 11 > > > > > > 0 1 8 27 64 125 216 343 512 729 > 1000 > > > > > > 0 1 8 27 64 125 216 343 512 729 > 1000 > > > > > > > > > > > > But I don't want p to recreate > the > > > difference table > > > > > every time it is > > > > > > called. Is there a way to > rewrite > > > conjunction > > > > > interp so that > > > > > > > > > > > > q =: 3 interp1 data > > > > > > > > > > > > q > > > > > > 0 1 6 6 +/ .* 0 1 2 3 ! ] > > > > > > > > > > > > ? > > > > > > > > > > > > Kip > > > > > > > > > > > > ---------- > > > > > > > > > > > > > > > > > > [1] x difftb y is an x by x table > whose kth > > > column > > > > > has > > > > > > kth > differences for > > > vector x > > > > > {. y (y is a vector and x <: > #y) > > > > > > > > > > > > difftb =: 4 : '|: > diff^:(i.x) x > > > {. y' > > > > > > > > > > > > > > > > > > [2] In algebra notation q is the > third > > > degree Newton > > > > > series > > > > > > > > > > > > q(x) = 0 + > 1 > > > x/1 + 6 > > > > > (x*(x-1))/(1*2) + 6 > (x*(x-1)*(x-2))/(1*2*3) > > > > > > > > > > > > This one > simplifies > > > to q(x) = > > > > > x^3 . > > > > > > > > > > > > For Newton series, see pages > 190-191 of > > > Graham, Knuth, > > > > > and Patashnik, > > > > > > Concrete Mathematics Second > Edition. > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > For information about J forums see > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > > > > Find din nye > laptop på > > > kelkoo.dk. Se de gode tilbud her - > > > > http://dk.yahoo.com/r/pat/mm > > > > > > > > ---------------------------------------------------------------------- > > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > > Trænger du til at se > det store billede? Kelkoo giver dig gode tilbud > > på LCD TV! Se her http://dk.yahoo.com/r/pat/lcd > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm Find din nye laptop på kelkoo.dk. Se de gode tilbud her - http://dk.yahoo.com/r/pat/mm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
