# integral not simplifying

hello, can anyone please explain why the first integral works but the second doesnt? even thought that they are both the same (only minus in different places):

sage: x = var('x')
sage: f = -(x - 1)*((x - 1)^2/((x - 1)^2 + 1)^2 + 1/((x - 1)^2 + 1)^2)/sqrt((x - 1)^2 + 1)
sage: integrate(f, x)
-integrate((x - 1)*((x - 1)^2/((x - 1)^2 + 1)^2 + 1/((x - 1)^2 + 1)^2)/sqrt((x - 1)^2 + 1), x)
sage: f = (x - 1)*((x - 1)^2/((x - 1)^2 + 1)^2 + 1/((x - 1)^2 + 1)^2)/sqrt((x - 1)^2 + 1)
sage: -integrate(f, x)
1/sqrt((x - 1)^2 + 1)


only full simplify somehow helps:

sage: f = -(x - 1)*((x - 1)^2/((x - 1)^2 + 1)^2 + 1/((x - 1)^2 + 1)^2)/sqrt((x - 1)^2 + 1)
sage: f.simplify()
-(x - 1)*((x - 1)^2/((x - 1)^2 + 1)^2 + 1/((x - 1)^2 + 1)^2)/sqrt((x - 1)^2 + 1)
sage: f.full_simplify()
-(x - 1)/(x^2 - 2*x + 2)^(3/2)
sage: integrate(f.full_simplify(), x)
1/sqrt(x^2 - 2*x + 2)


so basically the answer is to do full simplify, but i cant do full simplify on a vector (my original problem is to do this integral on vector):

sage: v = vector([x , 1 , 2])
sage: v.full_simplify()
... 'FreeModule_ambient_field_with_category.element_class' object has no attribute 'full_simplify'


so how can i avoid sagemath from returning me the "integrate(...)" thing and just do the integral?

edit retag close merge delete

Both works fine for me in sage 9.5.beta4. Which version of sage do you use ?

( 2021-10-24 21:16:23 +0200 )edit

SageMath version 9.2, Release Date: 2020-10-24 Using Python 3.7.7

( 2021-10-25 07:35:15 +0200 )edit
1

You should use a more recent version of sage. For the second point :

sage: v = vector(SR,[x,cos(x)**2+sin(x)**2,(x**3-1)/(x-1)]); v
(x, cos(x)^2 + sin(x)^2, (x^3 - 1)/(x - 1))
sage: v.apply_map(lambda c:c.simplify_full())
(x, 1, x^2 + x + 1)

( 2021-10-25 13:06:12 +0200 )edit

thank you for the simplifying method! i upgraded to sage 9.4 (latest that i found for linux), and now i dont have that problem anymore! my first issue is solved and everything works, but now i have a new problem which is very familiar:

sage: a,b = var('a,b')
sage: integrate((((a - b)^2/(abs(-a + b)^2 + 1) - 1)^2 + (a - b)^2/(abs(-a + b)^2 + 1)^2)/(abs(-a + b)^2 + 1)^(3/2), b)
integrate((a^4 - 4*a^3*b + 6*a^2*b^2 - 4*a*b^3 + b^4 - 2*a^2*abs(a - b)^2 + 4*a*b*abs(a - b)^2 - 2*b^2*abs(a - b)^2 + abs(a - b)^4 - a^2 + 2*a*b - b^2 + 2*abs(a - b)^2 + 1)/(abs(a - b)^2 + 1)^(7/2), b)
sage: (previous output)
(some long good ...
(more)
( 2021-10-25 20:40:16 +0200 )edit

In sage 9.5.beta4, this works fine. But you would need to compile from source. Or wait for the release of sage 9.5.

sage: sage: a,b = var('a,b')
sage: integrate((((a - b)^2/(abs(-a + b)^2 + 1) - 1)^2 + (a - b)^2/(abs(-a + b)^2 + 1)^2)/(abs(-a + b)^2 + 1)^(3/2), b)
-1/3*(2*a^3 - (6*a^2 - 2*(3*a - b)*b + 3)*b + 3*a)/((a - b)^2 + 1)^(3/2)

( 2021-10-25 20:52:50 +0200 )edit

Sort by » oldest newest most voted

upgrading to SageMath version 9.5.beta5 really solved the problems. thank very much to FrédéricC for the help !

more

Thanks for flagging your answer to your own question for future users !

( 2021-11-03 10:27:56 +0200 )edit