Forums before death by AOL, social media and spammers... "We can't have nice things"
|    sci.math.symbolic    |    Symbolic algebra discussion    |    10,432 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 10,039 of 10,432    |
|    samuel.thomas.blake@gmail.com to Nasser M. Abbasi    |
|    Re: An algebraic integral in FriCAS    |
|    05 May 20 23:04:42    |
      On Wednesday, May 6, 2020 at 3:40:42 PM UTC+10, Nasser M. Abbasi wrote:       > On 5/5/2020 11:14 PM, samuel.thomas.blake@gmail.com wrote:       >       > >> int(convert(((-3+x^2)*(1-6*x^2+x^4)^(-1/4))/(-1+x^2),RootOf),x);       > > memory used=294.4MB, alloc=112.3MB, time=3.47       > > memory used=370.5MB, alloc=112.3MB, time=4.30       > > memory used=446.8MB, alloc=112.3MB, time=5.04       > > memory used=501.3MB, alloc=112.3MB, time=5.54       > > memory used=570.5MB, alloc=112.3MB, time=6.13       > > 1/2*RootOf(_Z^2+1)*ln(-(-RootOf(_Z^4-x^4+6*x^2-1,index = 1)^       *RootOf(_Z^2+1)*x^2+RootOf(_Z^2+1)*x^4+RootOf(_Z^4-x^4+6*x^2       > > -1,index = 1)^3*x-RootOf(_Z^4-x^4+6*x^2-1,index = 1)*x^3+Roo       Of(_Z^4-x^4+6*x^2-1,index = 1)^2*RootOf(_Z^2+1)-5*RootOf(_Z^       > > 2+1)*x^2+3*RootOf(_Z^4-x^4+6*x^2-1,index = 1)*x)/(x+1)/(x-1)       +1/2*ln(-(RootOf(_Z^4-x^4+6*x^2-1,index = 1)^3*x+RootOf(_Z^4       > > -x^4+6*x^2-1,index = 1)^2*x^2+RootOf(_Z^4-x^4+6*x^2-1,index =       1)*x^3+x^4-RootOf(_Z^4-x^4+6*x^2-1,index = 1)^2-3*RootOf(_Z       > > ^4-x^4+6*x^2-1,index = 1)*x-5*x^2)/(x+1)/(x-1))       > >       >       > That is a nice trick. I did not know that converting integrand       > to RootOf makes maple do these integrals.       >       > The antiderivative contains complex numbers, but the result is correct,       because       > when it is differentiated it gives back the integrand.       >       > part1 := 1/(1+6*x^2+x^4)^(3/4);       > part2 := (1-x^2)^2;       > part3 := 1/(1+x^2);       > integrand := part1*part2*part3;       > integrand0 := convert( part1*part2*part3, RootOf);       > anti := int(integrand0,x):       >       > anti := [allvalues(res)][1]; #pick first solution, same for second solution       >       > anti := ln(((x^4 + 6*x^2 + 1)^(3/4)*x + sqrt(x^4 + 6*x^2 + 1)*x^2 +       > (x^4 + 6*x^2 + 1)^(1/4)*x^3 + x^4 + sqrt(x^4 + 6*x^2 + 1) +       > 3*(x^4 + 6*x^2 + 1)^(1/4)*x + 5*x^2)/(x^2 + 1))/2 +       > ln(-(-sqrt(x^4 + 6*x^2 + 1)*x^4*I + x^6*I + (x^4 + 6*x^2 + 1)^(1/4)*x^5       > - 2*I*sqrt(x^4 + 6*x^2 + 1)*x^2 + 6*I*x^4 + 4*(x^4 + 6*x^2 + 1)^(1/4)*x^3       > - (x^4 + 6*x^2 + 1)^(3/4)*x^3 - (x^4 + 6*x^2 + 1)^(3/4)*x       > - sqrt(x^4 + 6*x^2 + 1)*I + 5*I*x^2       > + 3*(x^4 + 6*x^2 + 1)^(1/4)*x)/((x*I + 1)^2*(x*I - 1)^2))*I/2       >       > back := simplify(diff(anti,x));       > simplify(back-integrand)       >       > 0       >       > I have to remember this trick ;)       >       > --Nasser              Hi Nasser,              Its the only way I know of to get Maple to use the Trager-Bronstein algorithm       for algebraic functions. Maple gives some nice details of the execution of the       algorithm using              infolevel[int] := 5:                     Sam              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca