## [Maxima-commits] CVS: maxima/share/contrib/diffequations contrib_ode.usg,1.1,1.2

 [Maxima-commits] CVS: maxima/share/contrib/diffequations contrib_ode.usg,1.1,1.2 From: David Billinghurst - 2004-01-27 05:13:13 ```Update of /cvsroot/maxima/maxima/share/contrib/diffequations In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv400 Modified Files: contrib_ode.usg Log Message: Remove \r line termination Index: contrib_ode.usg =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/diffequations/contrib_ode.usg,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- contrib_ode.usg 27 Jan 2004 04:21:10 -0000 1.1 +++ contrib_ode.usg 27 Jan 2004 05:12:14 -0000 1.2 @@ -1,143 +1,143 @@ --*- mode: Text; -*- - -MAXIMA's ordinary differential equation (ODE) solver ODE2 solves -elementary linear ODEs of first and second order. The function -contrib_ode extends ODE2 with additional methods. The code may be -integrated into MAXIMA at some stage. - -The calling convention for contrib_ode is identical to ODE2. It takes -three arguments: an ODE (only the left hand side need be given if the -right hand side is 0), the dependent variable, and the independent -variable. When successful, it returns a list of solutions. Each -solution can be: an explicit solution for the dependent variable; an -implicit solution for the dependent variable; or a parametric solution -in terms of variable %t. %C is used to represent the constant in the -case of first order equations, and %K1 and %K2 the constants for -second order equations. If contrib_ode cannot obtain a solution for -whatever reason, it returns FALSE, after perhaps printing out an error -message. - -(C1) eqn:x*'diff(y,x)^2-(1+x*y)*'diff(y,x)+y=0; - - dy 2 dy -(D1) x (--) - (x y + 1) -- + y = 0 - dx dx - -(C2) contrib_ode(eqn,y,x); - - x -(D2) [y = LOG(x) + %C, y = %C %E ] - - -(C3) method; - -(D3) FACTOR - -Nonlinear odes can have singular solutions without constants of -integration. - -(C4) eqn:'diff(y,x)^2+x*'diff(y,x)-y=0; - - dy 2 dy -(D4) (--) + x -- - y = 0 - dx dx - -(C5) contrib_ode(eqn,y,x); - - 2 - 2 x -(D5) [y = %C x + %C , y = - --] - 4 -(C6) method; - -(D6) clairault - - -The following ode has two parametric solutions in terms of the dummy -variable %t. In this case the parametric solutions can be manipulated -to give explicit solutions. - -(C7) eqn:'diff(y,x)=(x+y)^2; - - dy 2 -(D7) -- = (y + x) - dx - -(C8) contrib_ode(eqn,y,x); - -(D8) [[x = %C - ATAN(SQRT(%T)), y = - x - SQRT(%T)], - [x = ATAN(SQRT(%T)) + %C, y = SQRT(%T) - x]] - -(C9) method; - -(D9) lagrange - - -For first order ODEs contrib_ode calls ode2. It then tries the -following methods: factorization, Clairault, Lagrange, Riccati and Lie -symmetry methods. - -For second order ODEs contrib_ode calls ode2. No other methods are -implemented yet. - -Extensive debugging traces and messages are displayed if the command -put('contrib_ode,true,'verbose) is executed. - - -TO DO -===== - -These routines are work in progress. I still need to: - -* Extend the FACTOR method ode1_factor to work for multiple roots. - -* Extend the FACTOR method ode1_factor to attempt to solve higher - order factors. At present it only attemps to solve linear factors. - -* Fix the LAGRANGE routine ode1_lagrange to prefer real roots over - complex roots. - -* Add additional methods for Riccati equations. - -* Work out how to return partial solutions, such as those obtained for - Riccati equations. - -* Add routines for Abel equations. - -* Work on the Lie symmetry group routine ode1_lie. There are quite a - few problems with it: some parts are unimplemented; some test cases - seem to run forever; other test cases crash; yet others return very - complex "solutions". I wonder if it really ready for release yet. - -* Add more test cases. - -TEST CASES -========== - -The routines have been tested on a few hundred test cases from Murphy, -Kamke and Zwillinger. These are included in the tests subdirectory. - -* The Clairault routine ode1_clairault finds all known solutions, - including singular soultions. (This statement is asking for - trouble). - -* The other routines often return a single solution when multiple - solutions exist. - -* Some of the "solutions" from ode1_lie are overly complex and - impossible to check. - -* There are some crashes. - - -References -========== - -[1] E Kamke, Differentialgleichungen Losungsmethoden und Losungen, Vol 1, - Geest & Portig, Leipzig, 1961 - -[2] G M Murphy, Ordinary Differential Equations and Their Solutions, - Van Nostrand, New York, 1960 - -[3] D Zwillinger, Handbook of Differential Equations, 3rd edition, - Academic Press, 1998 +-*- mode: Text; -*- + +MAXIMA's ordinary differential equation (ODE) solver ODE2 solves +elementary linear ODEs of first and second order. The function +contrib_ode extends ODE2 with additional methods. The code may be +integrated into MAXIMA at some stage. + +The calling convention for contrib_ode is identical to ODE2. It takes +three arguments: an ODE (only the left hand side need be given if the +right hand side is 0), the dependent variable, and the independent +variable. When successful, it returns a list of solutions. Each +solution can be: an explicit solution for the dependent variable; an +implicit solution for the dependent variable; or a parametric solution +in terms of variable %t. %C is used to represent the constant in the +case of first order equations, and %K1 and %K2 the constants for +second order equations. If contrib_ode cannot obtain a solution for +whatever reason, it returns FALSE, after perhaps printing out an error +message. + +(C1) eqn:x*'diff(y,x)^2-(1+x*y)*'diff(y,x)+y=0; + + dy 2 dy +(D1) x (--) - (x y + 1) -- + y = 0 + dx dx + +(C2) contrib_ode(eqn,y,x); + + x +(D2) [y = LOG(x) + %C, y = %C %E ] + + +(C3) method; + +(D3) FACTOR + +Nonlinear odes can have singular solutions without constants of +integration. + +(C4) eqn:'diff(y,x)^2+x*'diff(y,x)-y=0; + + dy 2 dy +(D4) (--) + x -- - y = 0 + dx dx + +(C5) contrib_ode(eqn,y,x); + + 2 + 2 x +(D5) [y = %C x + %C , y = - --] + 4 +(C6) method; + +(D6) clairault + + +The following ode has two parametric solutions in terms of the dummy +variable %t. In this case the parametric solutions can be manipulated +to give explicit solutions. + +(C7) eqn:'diff(y,x)=(x+y)^2; + + dy 2 +(D7) -- = (y + x) + dx + +(C8) contrib_ode(eqn,y,x); + +(D8) [[x = %C - ATAN(SQRT(%T)), y = - x - SQRT(%T)], + [x = ATAN(SQRT(%T)) + %C, y = SQRT(%T) - x]] + +(C9) method; + +(D9) lagrange + + +For first order ODEs contrib_ode calls ode2. It then tries the +following methods: factorization, Clairault, Lagrange, Riccati and Lie +symmetry methods. + +For second order ODEs contrib_ode calls ode2. No other methods are +implemented yet. + +Extensive debugging traces and messages are displayed if the command +put('contrib_ode,true,'verbose) is executed. + + +TO DO +===== + +These routines are work in progress. I still need to: + +* Extend the FACTOR method ode1_factor to work for multiple roots. + +* Extend the FACTOR method ode1_factor to attempt to solve higher + order factors. At present it only attemps to solve linear factors. + +* Fix the LAGRANGE routine ode1_lagrange to prefer real roots over + complex roots. + +* Add additional methods for Riccati equations. + +* Work out how to return partial solutions, such as those obtained for + Riccati equations. + +* Add routines for Abel equations. + +* Work on the Lie symmetry group routine ode1_lie. There are quite a + few problems with it: some parts are unimplemented; some test cases + seem to run forever; other test cases crash; yet others return very + complex "solutions". I wonder if it really ready for release yet. + +* Add more test cases. + +TEST CASES +========== + +The routines have been tested on a few hundred test cases from Murphy, +Kamke and Zwillinger. These are included in the tests subdirectory. + +* The Clairault routine ode1_clairault finds all known solutions, + including singular soultions. (This statement is asking for + trouble). + +* The other routines often return a single solution when multiple + solutions exist. + +* Some of the "solutions" from ode1_lie are overly complex and + impossible to check. + +* There are some crashes. + + +References +========== + +[1] E Kamke, Differentialgleichungen Losungsmethoden und Losungen, Vol 1, + Geest & Portig, Leipzig, 1961 + +[2] G M Murphy, Ordinary Differential Equations and Their Solutions, + Van Nostrand, New York, 1960 + +[3] D Zwillinger, Handbook of Differential Equations, 3rd edition, + Academic Press, 1998 ```

 [Maxima-commits] CVS: maxima/share/contrib/diffequations contrib_ode.usg,1.1,1.2 From: David Billinghurst - 2004-01-27 05:13:13 ```Update of /cvsroot/maxima/maxima/share/contrib/diffequations In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv400 Modified Files: contrib_ode.usg Log Message: Remove \r line termination Index: contrib_ode.usg =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/diffequations/contrib_ode.usg,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- contrib_ode.usg 27 Jan 2004 04:21:10 -0000 1.1 +++ contrib_ode.usg 27 Jan 2004 05:12:14 -0000 1.2 @@ -1,143 +1,143 @@ --*- mode: Text; -*- - -MAXIMA's ordinary differential equation (ODE) solver ODE2 solves -elementary linear ODEs of first and second order. The function -contrib_ode extends ODE2 with additional methods. The code may be -integrated into MAXIMA at some stage. - -The calling convention for contrib_ode is identical to ODE2. It takes -three arguments: an ODE (only the left hand side need be given if the -right hand side is 0), the dependent variable, and the independent -variable. When successful, it returns a list of solutions. Each -solution can be: an explicit solution for the dependent variable; an -implicit solution for the dependent variable; or a parametric solution -in terms of variable %t. %C is used to represent the constant in the -case of first order equations, and %K1 and %K2 the constants for -second order equations. If contrib_ode cannot obtain a solution for -whatever reason, it returns FALSE, after perhaps printing out an error -message. - -(C1) eqn:x*'diff(y,x)^2-(1+x*y)*'diff(y,x)+y=0; - - dy 2 dy -(D1) x (--) - (x y + 1) -- + y = 0 - dx dx - -(C2) contrib_ode(eqn,y,x); - - x -(D2) [y = LOG(x) + %C, y = %C %E ] - - -(C3) method; - -(D3) FACTOR - -Nonlinear odes can have singular solutions without constants of -integration. - -(C4) eqn:'diff(y,x)^2+x*'diff(y,x)-y=0; - - dy 2 dy -(D4) (--) + x -- - y = 0 - dx dx - -(C5) contrib_ode(eqn,y,x); - - 2 - 2 x -(D5) [y = %C x + %C , y = - --] - 4 -(C6) method; - -(D6) clairault - - -The following ode has two parametric solutions in terms of the dummy -variable %t. In this case the parametric solutions can be manipulated -to give explicit solutions. - -(C7) eqn:'diff(y,x)=(x+y)^2; - - dy 2 -(D7) -- = (y + x) - dx - -(C8) contrib_ode(eqn,y,x); - -(D8) [[x = %C - ATAN(SQRT(%T)), y = - x - SQRT(%T)], - [x = ATAN(SQRT(%T)) + %C, y = SQRT(%T) - x]] - -(C9) method; - -(D9) lagrange - - -For first order ODEs contrib_ode calls ode2. It then tries the -following methods: factorization, Clairault, Lagrange, Riccati and Lie -symmetry methods. - -For second order ODEs contrib_ode calls ode2. No other methods are -implemented yet. - -Extensive debugging traces and messages are displayed if the command -put('contrib_ode,true,'verbose) is executed. - - -TO DO -===== - -These routines are work in progress. I still need to: - -* Extend the FACTOR method ode1_factor to work for multiple roots. - -* Extend the FACTOR method ode1_factor to attempt to solve higher - order factors. At present it only attemps to solve linear factors. - -* Fix the LAGRANGE routine ode1_lagrange to prefer real roots over - complex roots. - -* Add additional methods for Riccati equations. - -* Work out how to return partial solutions, such as those obtained for - Riccati equations. - -* Add routines for Abel equations. - -* Work on the Lie symmetry group routine ode1_lie. There are quite a - few problems with it: some parts are unimplemented; some test cases - seem to run forever; other test cases crash; yet others return very - complex "solutions". I wonder if it really ready for release yet. - -* Add more test cases. - -TEST CASES -========== - -The routines have been tested on a few hundred test cases from Murphy, -Kamke and Zwillinger. These are included in the tests subdirectory. - -* The Clairault routine ode1_clairault finds all known solutions, - including singular soultions. (This statement is asking for - trouble). - -* The other routines often return a single solution when multiple - solutions exist. - -* Some of the "solutions" from ode1_lie are overly complex and - impossible to check. - -* There are some crashes. - - -References -========== - -[1] E Kamke, Differentialgleichungen Losungsmethoden und Losungen, Vol 1, - Geest & Portig, Leipzig, 1961 - -[2] G M Murphy, Ordinary Differential Equations and Their Solutions, - Van Nostrand, New York, 1960 - -[3] D Zwillinger, Handbook of Differential Equations, 3rd edition, - Academic Press, 1998 +-*- mode: Text; -*- + +MAXIMA's ordinary differential equation (ODE) solver ODE2 solves +elementary linear ODEs of first and second order. The function +contrib_ode extends ODE2 with additional methods. The code may be +integrated into MAXIMA at some stage. + +The calling convention for contrib_ode is identical to ODE2. It takes +three arguments: an ODE (only the left hand side need be given if the +right hand side is 0), the dependent variable, and the independent +variable. When successful, it returns a list of solutions. Each +solution can be: an explicit solution for the dependent variable; an +implicit solution for the dependent variable; or a parametric solution +in terms of variable %t. %C is used to represent the constant in the +case of first order equations, and %K1 and %K2 the constants for +second order equations. If contrib_ode cannot obtain a solution for +whatever reason, it returns FALSE, after perhaps printing out an error +message. + +(C1) eqn:x*'diff(y,x)^2-(1+x*y)*'diff(y,x)+y=0; + + dy 2 dy +(D1) x (--) - (x y + 1) -- + y = 0 + dx dx + +(C2) contrib_ode(eqn,y,x); + + x +(D2) [y = LOG(x) + %C, y = %C %E ] + + +(C3) method; + +(D3) FACTOR + +Nonlinear odes can have singular solutions without constants of +integration. + +(C4) eqn:'diff(y,x)^2+x*'diff(y,x)-y=0; + + dy 2 dy +(D4) (--) + x -- - y = 0 + dx dx + +(C5) contrib_ode(eqn,y,x); + + 2 + 2 x +(D5) [y = %C x + %C , y = - --] + 4 +(C6) method; + +(D6) clairault + + +The following ode has two parametric solutions in terms of the dummy +variable %t. In this case the parametric solutions can be manipulated +to give explicit solutions. + +(C7) eqn:'diff(y,x)=(x+y)^2; + + dy 2 +(D7) -- = (y + x) + dx + +(C8) contrib_ode(eqn,y,x); + +(D8) [[x = %C - ATAN(SQRT(%T)), y = - x - SQRT(%T)], + [x = ATAN(SQRT(%T)) + %C, y = SQRT(%T) - x]] + +(C9) method; + +(D9) lagrange + + +For first order ODEs contrib_ode calls ode2. It then tries the +following methods: factorization, Clairault, Lagrange, Riccati and Lie +symmetry methods. + +For second order ODEs contrib_ode calls ode2. No other methods are +implemented yet. + +Extensive debugging traces and messages are displayed if the command +put('contrib_ode,true,'verbose) is executed. + + +TO DO +===== + +These routines are work in progress. I still need to: + +* Extend the FACTOR method ode1_factor to work for multiple roots. + +* Extend the FACTOR method ode1_factor to attempt to solve higher + order factors. At present it only attemps to solve linear factors. + +* Fix the LAGRANGE routine ode1_lagrange to prefer real roots over + complex roots. + +* Add additional methods for Riccati equations. + +* Work out how to return partial solutions, such as those obtained for + Riccati equations. + +* Add routines for Abel equations. + +* Work on the Lie symmetry group routine ode1_lie. There are quite a + few problems with it: some parts are unimplemented; some test cases + seem to run forever; other test cases crash; yet others return very + complex "solutions". I wonder if it really ready for release yet. + +* Add more test cases. + +TEST CASES +========== + +The routines have been tested on a few hundred test cases from Murphy, +Kamke and Zwillinger. These are included in the tests subdirectory. + +* The Clairault routine ode1_clairault finds all known solutions, + including singular soultions. (This statement is asking for + trouble). + +* The other routines often return a single solution when multiple + solutions exist. + +* Some of the "solutions" from ode1_lie are overly complex and + impossible to check. + +* There are some crashes. + + +References +========== + +[1] E Kamke, Differentialgleichungen Losungsmethoden und Losungen, Vol 1, + Geest & Portig, Leipzig, 1961 + +[2] G M Murphy, Ordinary Differential Equations and Their Solutions, + Van Nostrand, New York, 1960 + +[3] D Zwillinger, Handbook of Differential Equations, 3rd edition, + Academic Press, 1998 ```