From: SourceForge.net <no...@so...> - 2010-08-04 14:51:10
|
Bugs item #3039464, was opened at 2010-08-04 16:47 Message generated for change (Comment added) made by crategus You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=3039464&group_id=4933 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Lisp Core - Integration Group: None >Status: Deleted >Resolution: Duplicate Priority: 5 Private: No Submitted By: Dieter Kaiser (crategus) Assigned to: Nobody/Anonymous (nobody) Summary: integrate(sqrt(t^c)/(t*(b*t^c+a)),t) hangs Initial Comment: The following integral hangs (1) integrate(sqrt(t^c)/(t*(b*t^c+a)),t) An expected solution is (2) (2*sqrt(t^c)*atan((sqrt(b)*t^(c/2))/sqrt(a)))/(sqrt(a)*sqrt(b)*c*t^(c/2)) The above integral has to be solved when we integrate (3) integrate(sqrt(exp(c*z))/(b*exp(c*z)+a),z) Maxima does the substitution t = %e^z and dz = dt/t in the routine SUPEREXPT. With this substitutions we get the integral from above. But Maxima can solve the integral (3): (%i2) integrate(sqrt(exp(c*z))/(b*exp(c*z)+a),z); Is a*b positive or negative? p; (%o2) 2*atan(b*%e^(c*z/2)/sqrt(a*b))/(sqrt(a*b)*c) This seems to be by accident, because the routine SUPEREXPT passes the integral (1) in an unsimplified form to the integrator. This is the expression, which is passed by SUPEREXPT to the integrator: ((MTIMES SIMP) ((MEXPT SIMP) $Z -1) ((MEXPT) ((MEXPT SIMP) $Z $C) ((RAT SIMP) 1 2)) ((MEXPT) ((MPLUS SIMP) $A ((MTIMES SIMP) $B ((MEXPT SIMP) $Z $C))) -1)) Maxima can integrate this expression, but not the fully simplified expression in integral (1). Remark: I have observed this problem when working on the problem (z^a)^b -> z^(a*b). When I try to implement this type of simplification more correct the integral (3) hangs too. Source of the problem: The problem is not present in Maxima 5.21. The reason seems to be the change of the code of the Log function in revision 1.113 of simp.lisp. When we set LOGEXPAND to TRUE we again get a solution for the integral (1): (%i7) integrate(sqrt(t^c)/(t*(b*t^c+a)),t),logexpand:true; Is a*b positive or negative? p; (%o7) 2*atan(b*%e^(c*log(t)/2)/sqrt(a*b))/(sqrt(a*b)*c) A quick workaround is to bind $LOGEXPAND to TRUE in the routine SININT. With this workaround we get the old behavior. But I think it is better to try to find the underlying problem. The integrator should not depend on wrongly simplified Log expressions like log(1/x) -> -log(x). Dieter Kaiser ---------------------------------------------------------------------- >Comment By: Dieter Kaiser (crategus) Date: 2010-08-04 16:51 Message: Deleting this bug report as a duplicate. Dieter Kaiser ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=3039464&group_id=4933 |