For some reason, the following forgets about one summand: fricas (1) -> integrate(exp(-x^2)+exp(x)/x,
Type: Union(Expression(Integer),
... --kratt6, Sat, 20 Aug 2005 15:16:16 -0500 reply The problem is in expintegratepoly$INTTR . There you find the following definition:
-- returns either -- (q in GP, a in F) st p = q' + a, and a=0 or a has no integral in F -- or (q in GP, r in GP) st p = q' + r, and r has no integral elem/UP expintegratepoly(p, FRDE) == coef0:F := 0 notelm := answr := 0$GP while p ^= 0 repeat ans1 := FRDE(n := degree p, a := leadingCoefficient p) answr := answr + monomial(ans1.ans, n) if ~ans1.sol? then -- Risch d.e. has no complete solution missing := a - ans1.right if zero? n then coef0 := missing else notelm := notelm + monomial(missing, n) p := reductum p zero? notelm => [answr, coef0] [answr, notelm] In principle, this function takes a polynomial [answr, notelm+monomial(coef0, 0)] This seems to "work", i.e., the integrals are then returned unevaluated. However, I'd rather have axiom to use the linearity of the integral... Note that fricas integrate(exp(-x^2)+sin(x),
Type: Union(Expression(Integer),
is an example for an integral where if ~ans1.sol? then -- Risch d.e. has no complete solution missing := a - ans1.right if zero? n then coef0 := missing notelm := notelm + monomial(missing, n) p := reductum p zero? notelm => [answr, coef0] [answr, notelm] is not necessary - but does not produce wrong results either. By the way, here are some other - strange - manifestation of the same bug: fricas integrate(exp(-x^2)+1/x,
Type: Union(Expression(Integer),
fricas integrate(exp(x)/x+1/x,
Type: Union(Expression(Integer),
Although is certainly elementary, and so is its integral, the bug manifests itself. Martin Status: open => fix proposed Name:#199 integratee^(x^2) => #199 #199 integrate(exp(-x^2)+exp(x)/x,x)
Name: #199 #199 integrate(exp(-x^2)+exp(x)/x,x) => #199 integrate(exp(-x^2)+exp(x)/x,x)
Status: fix proposed => closed
|