From: SourceForge.net <no...@so...> - 2006-08-31 23:46:21
|
Bugs item #1374700, was opened at 2005-12-06 13:41 Message generated for change (Comment added) made by rtoy You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1374700&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: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: integrate((1+tan(x)^2)/tan(x),x); Initial Comment: Non-real result ---------------------------------------------------------------------- >Comment By: Raymond Toy (rtoy) Date: 2006-08-31 19:46 Message: Logged In: YES user_id=28849 Yes, replacing all occurrences of b in schatc.lisp with bb makes clisp behave like cmucl. But we can see now how to get log(tan(x)) as the answer. We can move case 5 before case 4. Not exactly sure what impact that will have on the algorithm. ---------------------------------------------------------------------- Comment By: Raymond Toy (rtoy) Date: 2006-08-31 19:41 Message: Logged In: YES user_id=28849 FWIW, maxima uses trigint to do this integral, and when it gets to case 4, it tries to match the integrand. With cmucl, it matches, but with clisp it doesn't. In rat1, b is NIL in clisp, but is 'cos* in cmucl. b is declared special, and is set to 'cos* in case 4, just before the call to m2, which calls rat1. But note that coeffpt in schatc.lisp also uses the variable b. There is probably some confusion with b here. I am guessing the b in coeffpt is not the global special variablle b in sin.lisp. ---------------------------------------------------------------------- Comment By: Raymond Toy (rtoy) Date: 2006-08-31 16:40 Message: Logged In: YES user_id=28849 Maxima 5.9.3.99rc2 and cmucl 2006-09 says log(sin(x)) - log(sin(x)^2-1)/2 But the same maxima with clisp 2.35 says log(tan(x)). I don't know why. ---------------------------------------------------------------------- Comment By: Robert Dodier (robert_dodier) Date: 2006-08-14 22:46 Message: Logged In: YES user_id=501686 Maxima 5.9.3.99rc1 / Clisp 2.38: integrate((1+tan(x)^2)/tan(x),x); => log(tan(x)) which seems right. Maybe if someone else wants to weigh in here. If someone else agrees this result is OK, we can close this report. ---------------------------------------------------------------------- Comment By: Raymond Toy (rtoy) Date: 2006-02-13 13:07 Message: Logged In: YES user_id=28849 This integral is transformed to cos(x)/sin(x)*(sin(x)^2/cos(x)^2+1). Then maxima uses the substitution y=sin(x) to get 1/y*(y^2/(1-y^2)+1. However: integrate(1/y*(y^2/(1-y^2)+1),y) -> log(y)-log(y^2-1)/2. But integrate(expand(1/y*(y^2/(1-y^2)+1)),y) -> log(y)-log(1-y^2)/2. The former is wrong for our integration problem; the latter would produce the desired answer. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1374700&group_id=4933 |