Raymond Toy wrote:
> Michel Talon wrote:
>
>> Richard Fateman wrote:
>>
>>
>>
>>> Unfortunately it doesn't. The "steps" indicated are not explained
>>> algorithmically, and in fact there may be
>>> extraordinary difficulty in making them algorithmic. That is why the
>>> programs to do them have probably not
>>> been written in the last several decades.
>>>
>>>
>> I don't know if a "general" program has been written or not to do elliptic
>> integrals, (i thought that Trager had something like that in Axiom, but i
>> have just checked Axiom doesn't do elliptic integrals) but i have a
>> tendency to think that special cases are much more useful. Anyways Maple
>> has no problem to do:
>>
>> rose% maple
>> |\^/| Maple 10 (X86 64 LINUX)
>>
>>
>>
>>> lprint(int(1/sqrt(x^4+1),x));
>>>
>>>
>> 1/(1/2*2^(1/2)+1/2*I*2^(1/2))*(1-I*x^2)^(1/2)*(1+I*x^2)^(1/2)/(x^4+1)^(1/2)*
>> EllipticF(x*(1/2*2^(1/2)+1/2*I*2^(1/2)),I)
>>
>>
> Here is what my current elliptic integral code does
> (http://common-lisp.net/~rtoy/ellint3.mac). It's really incomplete
> because you have to do a lot of stuff by hand, but it produces something
> reasonable. Unfortunately, it gets the sign wrong sometimes.
>
> (%i2) load(ellint3);
> Evaluation took 0.0200 seconds (0.0100 elapsed) using 283.867 KB.
> (%o2) "/Users/toy/.maxima/ellint3.mac"
> (%i3) quartic_factor(x^4+1,x);
> Evaluation took 0.0500 seconds (0.0500 elapsed) using 186.031 KB.
> (%o3) [x^2+sqrt(2)*x+1,x^2-sqrt(2)*x+1]
>
> /* ellint1 expects two quadratic factors or a linear and quadratic factor
> and computes integrate(1/sqrt(s1*s2),x)
> */
> (%i4) ellint1(%o3[1],%o3[2],x);
> Evaluation took 0.0100 seconds (0.0000 elapsed) using 187.586 KB.
> (%o4) [-sqrt(2)*?%inverse_jacobi_sc((x+1)/(sqrt(3-2*sqrt(2))*(x-1)),
> 4*sqrt(2)/(2*sqrt(2)+3))
> /sqrt(2*sqrt(2)+3),
> sqrt(2)*?%inverse_jacobi_cs((x+1)/(sqrt(2*sqrt(2)+3)*(x-1)),
> 4*sqrt(2)/(2*sqrt(2)+3))
> /sqrt(2*sqrt(2)+3)]
>
> The current code is not smart enough to know which inverse function to
> return so it returns both. Don't know if %o4 is really right, but
>
> (%i5) integrate(1/sqrt(1+t^4),t,0,inf);
> Evaluation took 0.0100 seconds (0.0300 elapsed) using 331.008 KB.
> (%o5) beta(1/4,1/4)/4
>
>
Just a quick update. limit(%o4,t,inf)-limit(%o4,t,0) gives
(2-sqrt(2))*elliptic_kc(12*sqrt(2)-16), after some simplifications.
This, combined with %o5 shows that
elliptic_kc(12*sqrt(2)-16) = (sqrt(2)+2)*gamma(1/4)^2/8/sqrt(%pi)
This isn't listed in functions.wolfram.com and not in any books that I
have (but I didn't check too hard).
Ray