I think I made a mistake here. You can't use taylor with a z[0] of 0, for negative z you should try expanding around some other number besides 0 because you get zero all the time if you use zero. I used -10.2 I think and that took 44 seconds to compute, then when I sent this e-mail I forgot that I used -10.2.
I don't get it, but that is what I did. Also I used 14 for the last taylor argument since it takes too long for higher numbers.
Rich
------------Original Message------------
From: "Richard Hennessy"<rvh2007 at comcast.net>
To: fateman at cs.berkeley.edu
Cc: maxima at math.utexas.edu
Date: Thu, Jun-12-2008 11:00 AM
Subject: Re: [Maxima] ansi gcl in rpm
Sorry there are a few extra steps I left out
(%i9) float(mybess(1/6,-10));
Evaluation took 0.2600 seconds (0.2600 elapsed)
(eq 9) -0.22332422870625*(-1)^(1/6)
then I have to use rectform(%) to get the answer in standard form for complex numbers.
(%i14) rectform(-0.22332422870625*(-1)^(1/6));
Evaluation took 0.1500 seconds (0.1500 elapsed)
(eq 14) -0.11166211435312*%i-0.11166211435312*sqrt(3)
(%i15) float(-0.11166211435312*%i-0.11166211435312*sqrt(3)), numer;
Evaluation took 0.0700 seconds (0.0700 elapsed)
(eq 15) -0.11166211435312*%i-0.19340445534017
That is in agreement with the bessel run at 100 and 1600 terms so you don't need all 160 of those terms except for large z values, but 16 terms using taylor gives:
(%i16) taylor(bessel_j(1/6,x),x,0,16);
horner(%,x);
optimize(%);
mybess(x):=''%;
compile(mybess);
Evaluation took 33.5100 seconds (33.5100 elapsed)
(%i22) rectform(float(mybess(-10)));
Evaluation took 0.0000 seconds (0.0000 elapsed)
(eq 22) 0
Now I am really confused. I don't know which is right now. Maybe the series is not the definition of bessel_j or maybe I made a typo somewhere. Also I don't know why I got 44 seconds for the run time before, now it is almost 0 seconds.
One thing though that has bothered me is the fact that there are six possible answers to (-1)^(1/6) and that might make the series inaccurate and a poor way to define the bessel function.
Rich
------------Original Message------------
From: "Richard Fateman" <fateman at cs.berkeley.edu>
To: "'Richard Hennessy'" <rvh2007 at comcast.net>
Cc: maxima at math.utexas.edu
Date: Thu, Jun-12-2008 9:07 AM
Subject: RE: [Maxima] ansi gcl in rpm
I get quite different results. I tried the expr to only 16, rather than
160.
Then mybess(1/6,-10) gives
-1082845135081018553168355738*(-1)^(1/6)*10^(1/6)/(11391066481247301946\
59276527*2^(1/6)*gamma(1/6))
which is not a number at all, unless you do something more.
the second, taylor() approach gives an expression with a large number of
constants such as bessel_j(7/6,0) which are, in my maxima, evaluated
numerically
to 0, so the 2nd mybess() evaluates to 0.
Now I don't know what you really expect, but if the taylor() expression has
lots of constant bessel_j
expressions,then evaluating the whole mess numerically before you compile,
should result in a polynomial of degree
16 in x, wit h floating-point coefficients, and no summation of 160 terms
should be faster.
As for evaluating accurately, the expression expr to 16th term, evaluated at
1/6, and then converted to floats, looks like this:
2.5254888134545135E-116 z
32 30
(1.174882790201127E+79 z - 1.2156120602614335E+82 z
28 26
+ 1.1062069748379136E+85 z - 8.7759086670474326E+87 z
24 22
+ 6.0085721340384927E+90 z - 3.5090061262784811E+93 z
20 18
+ 1.7240916767114858E+96 z - 7.0113061519600392E+98 z
16 14
+ 2.3137310301468166E+101 z - 6.0465504254503521E+103 z
12 10
+ 1.2133411187070328E+106 z - 1.7957448556864159E+108 z
8 6
+ 1.8556030175426283E+110 z - 1.2370686783617525E+112 z
4 2
+ 4.700860977774658E+113 z - 8.1481590281427346E+114 z
+ 3.80247421313328E+115)
So there are terms like 10^79*(-10)^320 and 10^114*(-10)^20 being added
together.
The second term is quite negligible as a float. I do not know why it should
be advantageous to compute it at all, unless you are interested in an exact
rational number of huge size.
What am I missing here??
RJF
> -----Original Message-----
> From: maxima-bounces at math.utexas.edu
> [mailto:maxima-bounces at math.utexas.edu] On Behalf Of Richard Hennessy
> Sent: Thursday, June 12, 2008 4:58 AM
> To: fateman at EECS.Berkeley.EDU
> Cc: maxima at math.utexas.edu
> Subject: Re: [Maxima] ansi gcl in rpm
>
> This is how I am running the function.
> expr:sum((-1)^k*2^(-v-2*k)*z^(v+2*k)/(k!*gamma(v+k+1)),k,0,160)$
> mybess(v,z):=''%$
>
> mybess(1/6,-10) // takes about .270 seconds
>
> Now if I do this
>
> taylor(bessel_j(1/6,x),x,0,16); //last parameter of 20 runs
> out of memory so I lowered it to 16
> horner(%,x);
> optimize(%);
> mybess(x):=''%;
> compile(mybess);
>
> now
> mybess(-10) takes about 44 seconds.
> It seems like a factor of about 200 difference and the first
> way is much more accurate.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> ------------Original Message------------
> From: "Richard Fateman" <fateman at cs.berkeley.edu>
> To: "'Richard Hennessy'" <rvh2007 at comcast.net>
> Cc: maxima at math.utexas.edu
> Date: Wed, Jun-11-2008 9:38 PM
> Subject: RE: [Maxima] ansi gcl in rpm
>
> there are other things you should do, like converting to
> floats, declaring x
> to be a float, perhaps other issues.
>
> what exactly are you doing to generate the series?
>
>
> > -----Original Message-----
> > From: Richard Hennessy [mailto:rvh2007 at comcast.net]
> > Sent: Wednesday, June 11, 2008 2:42 PM
> > To: fateman at EECS.Berkeley.EDU
> > Cc: 'Maxima List'
> > Subject: RE: [Maxima] ansi gcl in rpm
> >
> > This is worse than just using the series directly. It may be
> > fast for the sin function but not the bessels.
> >
> >
> >
> >
> > ------------Original Message------------
> > From: "Richard Fateman" <fateman at cs.berkeley.edu>
> > To: "'Richard Hennessy'" <rvh2007 at comcast.net>
> > Cc: "'Maxima List'" <maxima at math.utexas.edu>
> > Date: Tue, Jun-10-2008 6:40 PM
> > Subject: RE: [Maxima] ansi gcl in rpm
> >
> > try taylor(sin(x),x,0,20);
> > horner(%,x);
> > optimize(%);
> > f(x):=''%;
> > compile(f);
> >
> >
> > > -----Original Message-----
> > > From: maxima-bounces at math.utexas.edu
> > > [mailto:maxima-bounces at math.utexas.edu] On Behalf Of
> > Richard Hennessy
> > > Sent: Tuesday, June 10, 2008 3:30 PM
> > > To: fateman at EECS.Berkeley.EDU; 'Michel Talon'
> > > Cc: 'Maxima List'
> > > Subject: Re: [Maxima] ansi gcl in rpm
> > >
> > > I meant taylor takes too long not the power series.
> > >
> > >
> >
> >
> >
>
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>
_______________________________________________
Maxima mailing list
Maxima at math.utexas.edu
http://www.math.utexas.edu/mailman/listinfo/maxima