When trying to integrate the function x^3*sqrt(1-x^2) [line %o2], wxmaxima send a wrong solution [line %o3]. The derivative of [%o3], at line [%o4] is different from [%o2]. The correct answer is [%o5], as its derivative is equal to [%o2].
Has someone a piece of advice to fix it ?
Thank you in advance
Best regards
assume(x>0);
y:x^3*sqrt(1-x^2);
iy:integrate(y,x);
dy:diff(iy,x);
iy_exact:-x^2/3*(1-x^2)^(3/2) - 2/15*(1-x^2)^(5/2);
dy_exact:diff(iy_exact,x);
(%o1) [x>0]
(%o2) x^3sqrt(1-x^2)
(%o3) -(x^2(1-x^2)^(3/2))/5-(2(1-x^2)^(3/2))/15
(%o4) -(2x(1-x^2)^(3/2))/5+(3x^3sqrt(1-x^2))/5+(2xsqrt(1-x^2))/5
(%o5) -(2(1-x^2)^(5/2))/15-(x^2(1-x^2)^(3/2))/3
(%o6) x^3sqrt(1-x^2)
build_info(version="5.45.1",timestamp="2021-12-06 23:50:08",host="x86_64-pc-linux-gnu",lisp_name="GNU Common Lisp (GCL)",lisp_version="GCL 2.6.12",maxima_userdir="/home/selim/.maxima",maxima_tempdir="/tmp",maxima_objdir="/home/selim/.maxima/binary/5_45_1/gcl/GCL_2_6_12",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.1_GTK3_OpenMP201511+Locks")build_info(version="5.45.1",timestamp="2021-12-06 23:50:08",host="x86_64-pc-linux-gnu",lisp_name="GNU Common Lisp (GCL)",lisp_version="GCL 2.6.12",maxima_userdir="/home/selim/.maxima",maxima_tempdir="/tmp",maxima_objdir="/home/selim/.maxima/binary/5_45_1/gcl/GCL_2_6_12",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.1_GTK3_OpenMP201511+Locks")(version="5.45.1",timestamp="2021-12-06 23:50:08",host="x86_64-pc-linux-gnu",lisp_name="GNU Common Lisp (GCL)",lisp_version="GCL 2.6.12",maxima_userdir="/home/selim/.maxima",maxima_tempdir="/tmp",maxima_objdir="/home/selim/.maxima/binary/5_45_1/gcl/GCL_2_6_12",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.1_GTK3_OpenMP201511+Locks")
Use ratsimp(dy) and you'll recover your original expression.
(%i6) ratsimp(dy);
(%o6) x^3*sqrt(1-x^2)
Not a bug since applying ratsimp gives the original expression.