Cornu spiral



On Dec. 8, 2008, Robert Dodier wrote:
------------------------------------
It turns out Maxima can compute the integrals symbolically.
Although %i appears in the result, the result evaluates to a
real number for real t. Maxima needs a little encouragement to
get a number instead of an expression containing %i.

One way:

assume (t > 0);
x (t) := ''(integrate (cos (s^2 * %pi/2), s, 0, t));
y (t) := ''(integrate (sin (s^2 * %pi/2), s, 0, t));
plot2d ([parametric, x, y, [t, 0, 4]], [nticks, 100], [plot_realpart, 
true]);

Another way:

assume (t > 0);
x (t) := expand (''(integrate (cos (s^2 * %pi/2), s, 0, t)));
y (t) := expand (''(integrate (sin (s^2 * %pi/2), s, 0, t)));
plot2d ([parametric, x, y, [t, 0, 4]], [nticks, 100]);
----------------------------------
If I focus just on the sin^2 integral, I seem to get
inconsistent numerical results if I use
1. (bad results)  expand ( float ( ''integrate ( ... ) )  )

2. (good results)    realpart ( expand ( float ( ''integrate (...) ) ) )
---------------------------
 assume(t>0)$
 display2d:false$
 fS(t) := ''(integrate(sin(s^2 * %pi/2), s, 0, t))$

here is correct value for t = 1
 realpart(expand(float(fS(1))));  --->  0.43825914739035

here is bad method 1:

 f2S(t):=expand(float(''( integrate (sin(s^2),s,0,t))))$
 realpart(f2S(1));  --->  0.31026830172338
 f2S(1);  --->  0.31026830172338-9.8390953768041405E-17*%i

here is  good method 2

frS (t) := realpart(expand(float(''(integrate(sin (s^2 * %pi/2), s, 0, 
t)))))$
 frS(1);   --->  0.43825914739035

This looks strange.

Ted Woollett