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 9,875 of 10,432    |
|    clicliclic@freenet.de to Nasser M. Abbasi    |
|    Re: hitting the FriCAS jackpot    |
|    02 Apr 18 15:34:28    |
      "Nasser M. Abbasi" schrieb:       >       > On 4/1/2018 2:37 PM, clicliclic@freenet.de wrote:       > >       > > Here is another "moderately-sized square-root pseudo-elliptic integral       > > on which FriCAS is still known to fail".       > >       > > Being confronted with:       > >       > > setSimplifyDenomsFlag(true)       > >       > > integrate((x^2 + 2*x - 3)/((x^4 - 8*x^3 + 94*x^2 + 552*x + 657)       > > *sqrt(x^3 - 15*x - 22)), x)       > >       > > the current web-interface version 1.3.2 responds with:       > >       > >>> Error detected within library code:       > > Not integrable (provided residues have no relations)       > >       > > Why can't FriCAS establish non-integrability here?       > >       >       > FYI, same error shows up in Fricas 1.3.3 on Linux.       >              This error message appears in AlgebraicIntegrate(R0, F, UP, UPUP, R)       in the source file intalg.spad. The initial definition:              NOTI ==> error "Not integrable (provided residues have no relations)"              is referred to three times later on (here marked by # in 1st column):              -- case when the irreducible factor p has roots which sum to 0       -- p is assumed doubly transitive for now        trace0(rec, q, r, dv0) ==        lg:List(LOG) :=        zero? dv0 => empty()       # (rc0 := torsionIfCan dv0) case "failed" => NOTI        mkLog(1, r / (rc0.order::Q), rc0.function, 1)        trace00(rec, q, lg)               trace00(rec, pp, lg) ==        p0 := divisor(rec.num, rec.den, rec.derivden, rec.gd,        alpha0 := zeroOf UP2SUP pp)        q := (pp exquo (monomial(1, 1)$UP - alpha0::UP))::UP        alpha := rootOf UP2SUP q        dvr := divisor(rec.num, rec.den, rec.derivden, rec.gd, alpha) - p0        (rc := torsionIfCan dvr) case "failed" =>        degree(pp) <= 2 => "failed"       # NOTI        concat(lg, mkLog(q, inv(rc.order::Q), rc.function, alpha))              -- case when the irreducible factor p has roots which sum <> 0       -- the residues of f are of the form [a1,...,ak] rational numbers       -- plus all the roots of q(z), which is squarefree       -- la is the list of residues la := [a1,...,ak]       -- ld is the list of divisors [D1,...Dk] where Di is the sum of all the       -- places where f has residue ai       -- q(z) is assumed doubly transitive for now.       -- let [alpha_1,...,alpha_m] be the roots of q(z)       -- in this function, b = - alpha_1 - ... - alpha_m is <> 0       -- which implies only one generic log term        trace1(rec, q, la, ld, b) ==       -- cd = [[b1,...,bk], d] such that ai / b = bi / d        cd := splitDenominator [a / b for a in la]       -- then, a basis for all the residues of f over the integers is       -- [beta_1 = - alpha_1 / d,..., beta_m = - alpha_m / d], since:       -- alpha_i = - d beta_i       -- ai = (ai / b) * b = (bi / d) * b = b1 * beta_1 + ... + bm *       beta_m       -- linear independence is a consequence of the doubly transitive       assumption       -- v0 is the divisor +/[bi Di] corresponding to the residues [a1,...,ak]        v0 := +/[a * dv for a in cd.num for dv in ld]       -- alpha is a generic root of q(z)        alpha := rootOf UP2SUP q       -- v is the divisor corresponding to all the residues        v := v0 - cd.den * divisor(rec.num, rec.den, rec.derivden, rec.gd,       alpha)        (rc := torsionIfCan v) case "failed" => -- non-torsion case        degree(q) <= 2 => "failed" -- guaranteed doubly-transitive       # NOTI -- maybe doubly-transitive        mkLog(q, inv((- rc.order * cd.den)::Q), rc.function, alpha)              So this failure should be related to limitations of results from       torsionIfCan() when q(z) (whatever this square-free thingy represents:       can a polynomial be doubly-transitive?) has degree > two. The       implementation of torsionIfCan() resides in another source file       (presumably pfo.spad).              I think NOTI should be improved to inform the user why FriCAS cannot       handle his integral.              The deadly failure reported recently in "elementarily integrable or       not?" is most likely related to torsion too.              The author of AlgebraicIntegrate() is Manuel Bronstein.              Martin.              --- 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