From: David B. <bil...@us...> - 2004-05-04 04:45:47
|
Update of /cvsroot/maxima/maxima/share/contrib/diffequations/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22428 Modified Files: rtest_ode1_abel.mac Log Message: 2004-05-04 David Billinghurst * share/contrib/diffequations/tests/rtest_ode1_abel.mac Update tests to reflect changes to ode1_abel.mac Index: rtest_ode1_abel.mac =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/diffequations/tests/rtest_ode1_abel.mac,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- rtest_ode1_abel.mac 3 May 2004 05:19:15 -0000 1.2 +++ rtest_ode1_abel.mac 4 May 2004 04:45:08 -0000 1.3 @@ -15,21 +15,19 @@ (pn_(79),ans:ode1_abel(eqn:'diff(y,x)+(a*exp(x)+y)*y^2=0,y,x)); false; -/* about the simplest Abel equation - Case g.i*/ -/* This solves using ode1_abel_f0_0_f1_0 but not ode1_abel_absolute_invariant_constant */ +/* about the simplest Abel equation */ ans:ode1_abel(eqn:'diff(y,x)=(x+c)*y^3+y^2,y,x); --(sqrt(3)*log((x+c)^2*y^2+(x+c)*y+1)+2*atan((2*(x+c)*y+1)/sqrt(3))-2*sqrt(3)*log((x+c)*y))/(2*sqrt(3))=log(x+c)+%c; -subst(y,y(x),diff(subst(y(x),y,ans),x)); +[-(sqrt(3)*log((x+c)^2*y^2+(x+c)*y+1)+2*atan((2*(x+c)*y+1)/sqrt(3))-2*sqrt(3)*log((x+c)*y))/(2*sqrt(3))=log(x+c)+%c]; +subst(y,y(x),diff(subst(y(x),y,ans[1]),x)); -(sqrt(3)*(2*(x+c)^2*y*'diff(y,x,1)+(x+c)*'diff(y,x,1)+2*(x+c)*y^2+y)/((x+c)^2*y^2+(x+c)*y+1)+2*(2*(x+c)*'diff(y,x,1)+2*y)/(sqrt(3)*((2*(x+c)*y+1)^2/3+1))-2*sqrt(3)*((x+c)*'diff(y,x,1)+y)/((x+c)*y))/(2*sqrt(3))=1/(x+c); solve(%,'diff(y,x)); ['diff(y,x,1) = (x+c)*y^3+y^2]; lhs(eqn)-rhs(eqn),%; 0; -/* Tests for case g.i */ ans:ode1_abel(eqn:'diff(y,x)=2*x^3*y^3+2*x*y^2,y,x); --(sqrt(3)*log(x^4*y^2+x^2*y+1)+2*atan((2*x^2*y+1)/sqrt(3))-2*sqrt(3)*log(x^2*y))/(4*sqrt(3))=log(x)+%c; -subst(y,y(x),diff(subst(y(x),y,ans),x)); +[-(sqrt(3)*log(x^4*y^2+x^2*y+1)+2*atan((2*x^2*y+1)/sqrt(3))-2*sqrt(3)*log(x^2*y))/(4*sqrt(3))=log(x)+%c]; +subst(y,y(x),diff(subst(y(x),y,ans[1]),x)); -(sqrt(3)*(2*x^4*y*'diff(y,x,1)+x^2*'diff(y,x,1)+4*x^3*y^2+2*x*y)/(x^4*y^2+x^2*y+1)+2*(2*x^2*'diff(y,x,1)+4*x*y)/(sqrt(3)*((2*x^2*y+1)^2/3+1))-2*sqrt(3)*(x^2*'diff(y,x,1)+2*x*y)/(x^2*y))/(4*sqrt(3))=1/x; solve(%,'diff(y,x)); ['diff(y,x,1) = 2*x^3*y^3+2*x*y^2]; @@ -40,23 +38,23 @@ for f[0] for "random" f[1],f[2],f[3] */ ans:ode1_abel(eqn:'DIFF(y,x,1)=x*y^3+x*y^2+y+(9*x^2-2*x^3)/(27*x^2),y,x); -y=%E^(x-x^2/6)/SQRT(%C-2*'INTEGRATE(x*%E^(2*(x-x^2/6)),x))-1/3; -ode_check(eqn,ans); +[y=%E^(x-x^2/6)/SQRT(%C-2*'INTEGRATE(x*%E^(2*(x-x^2/6)),x))-1/3]; +ode_check(eqn,ans[1]); 0; ans:ode1_abel(eqn:'diff(y,x,1)=y^3/x+y,y,x); -y=%e^x/sqrt(%c-2*'integrate(%e^(2*x)/x,x)); -ode_check(eqn,ans); +[y=%e^x/sqrt(%c-2*'integrate(%e^(2*x)/x,x))]; +ode_check(eqn,ans[1]); 0; ans:ode1_abel(eqn:'diff(y,x,1)=y^3+x^2*y,y,x); -y=%e^(x^3/3)/sqrt(%c-2*'integrate(%e^(2*x^3/3),x)); -ode_check(eqn,ans); +[y=%e^(x^3/3)/sqrt(%c-2*'integrate(%e^(2*x^3/3),x))]; +ode_check(eqn,ans[1]); 0; ans:ode1_abel(eqn:'diff(y,x,1)=x^2*y^3+x*y,y,x); -y=%e^(x^2/2)/sqrt(%c-2*(sqrt(%pi)*%i*erf(%i*x)/4+x*%e^x^2/2)); -ode_check(eqn,ans); +[y=%e^(x^2/2)/sqrt(%c-2*(sqrt(%pi)*%i*erf(%i*x)/4+x*%e^x^2/2))]; +ode_check(eqn,ans[1]); 0; /* Cheb-Terrab and Roche (31) */ @@ -90,9 +88,8 @@ assume(b^2>0,(b^2+4*a)>0); [b^2>0,(b^2+4*a)>0]; (kn_(41),ans:ode1_abel(eqn:'diff(y,x) + a*x*y^3 + b*y^2 ,y,x)); --(b*LOG(-(-2*a*x*y+SQRT(b^2+4*a)-b)/(2*a*x*y+SQRT(b^2+4*a)+b))+SQRT(b^2+4*a)*(LOG(a^2*x^2*y^2+a*b*x*y-a)-2*LOG(a*x*y/b)))/(2*SQRT(b^2+4*a))=LOG(x)+%C; - -subst(y,y(x),diff(subst(y(x),y,ans),x)); +[-(b*LOG(-(-2*a*x*y+SQRT(b^2+4*a)-b)/(2*a*x*y+SQRT(b^2+4*a)+b))+SQRT(b^2+4*a)*(LOG(a^2*x^2*y^2+a*b*x*y-a)-2*LOG(a*x*y/b)))/(2*SQRT(b^2+4*a))=LOG(x)+%C]; +subst(y,y(x),diff(subst(y(x),y,ans[1]),x)); -(SQRT(b^2+4*a)*((2*a^2*x^2*y*'DIFF(y,x,1)+a*b*x*'DIFF(y,x,1)+2*a^2*x*y^2+a*b*y)/(a^2*x^2*y^2+a*b*x*y-a)-2*b*(a*x*'DIFF(y,x,1)/b+a*y/b)/(a*x*y))-b*(2*a*x*y+SQRT(b^2+4*a)+b)*((-2*a*x*y+SQRT(b^2+4*a)-b)*(2*a*x*'DIFF(y,x,1)+2*a*y)/(2*a*x*y+SQRT(b^2+4*a)+b)^2-(-2*a*x*'DIFF(y,x,1)-2*a*y)/(2*a*x*y+SQRT(b^2+4*a)+b))/(-2*a*x*y+SQRT(b^2+4*a)-b))/(2*SQRT(b^2+4*a))=1/x; solve(%,'diff(y,x)); ['DIFF(y,x,1) = -a*x*y^3-b*y^2]; @@ -103,16 +100,16 @@ /* Kamke 46 relative invariant = 0 */ (kn_(46),a:1,ans:ode1_abel(eqn:'diff(y,x)- x^a*y^3+3*y^2-x^(-a)*y-x^(-2*a)+ a*x^(-a-1),y,x)); -y=1/x+1/(sqrt(1/x^2+%c)*x^2); -ode_check(eqn,ans); +[y=1/x+1/(sqrt(1/x^2+%c)*x^2)]; +ode_check(eqn,ans[1]); 0; kill(a); done; assume(a>1); [a>1]; (kn_(46),ans:ode1_abel(eqn:'diff(y,x)- x^a*y^3+3*y^2-x^(-a)*y-x^(-2*a)+ a*x^(-a-1),y,x)); -y=%e^-(2*x^(1-a)/(1-a))/sqrt(%c-2*'integrate(x^a*%e^-(4*x^(1-a)/(1-a)),x))+1/x^a; -ode_check(eqn,ans); +[y=%e^-(2*x^(1-a)/(1-a))/sqrt(%c-2*'integrate(x^a*%e^-(4*x^(1-a)/(1-a)),x))+1/x^a]; +ode_check(eqn,ans[1]); 0; forget(a>1); [a>1]; @@ -132,8 +129,8 @@ */ (kn_(188),n:3,b:1,a:n+b,ans:ode1_abel(eqn:x^(2*n+1)*'diff(y,x)-a*y^3-b*x^(3*n),y,x)); [LOG(-3*y/x^3-3)/3-LOG(3-6*y/x^3)/3+3/(3-6*y/x^3)-2*LOG(x)+LOG(-4/x^3)/3=%C]; -subst(y,y(x),diff(subst(y(x),y,ans),x)); -[(9*y/x^4-3*'DIFF(y,x,1)/x^3)/(3*(-3*y/x^3-3))-(18*y/x^4-6*'DIFF(y,x,1)/x^3)/(3*(3-6*y/x^3))-3*(18*y/x^4-6*'DIFF(y,x,1)/x^3)/(3-6*y/x^3)^2-3/x=0]; +subst(y,y(x),diff(subst(y(x),y,ans[1]),x)); +(9*y/x^4-3*'DIFF(y,x,1)/x^3)/(3*(-3*y/x^3-3))-(18*y/x^4-6*'DIFF(y,x,1)/x^3)/(3*(3-6*y/x^3))-3*(18*y/x^4-6*'DIFF(y,x,1)/x^3)/(3-6*y/x^3)^2-3/x=0; solve(%,'diff(y,x)); ['DIFF(y,x,1) = (4*y^3+x^9)/x^7]; eqn,%; @@ -160,7 +157,7 @@ /* Abel equations of second kind */ (kn_(213),ans:contrib_ode(eqn:(y+1)*'DIFF(y,x)=y+x,y,x)); -[-(LOG((2*(x-1)/(y+1)-SQRT(5)+1)/(2*(x-1)/(y+1)+SQRT(5)+1))+SQRT(5)*LOG((x-1)/(y+1)+(x-1)^2/(y+1)^2-1)-2*SQRT(5)*LOG((x-1)/(y+1))/(2*SQRT(5))=LOG(x-1)+%C]; +[-(LOG((2*(x-1)/(y+1)-SQRT(5)+1)/(2*(x-1)/(y+1)+SQRT(5)+1))+SQRT(5)*LOG((x-1)/(y+1)+(x-1)^2/(y+1)^2-1)-2*SQRT(5)*LOG((x-1)/(y+1)))/(2*SQRT(5))=LOG(x-1)+%C]; (dydx:subst(y,y(x),diff(subst(y(x),y,ans),x)),solve(dydx,'diff(y,x))); ['DIFF(y,x,1) = (y+x)/(y+1)]; @@ -194,4 +191,7 @@ (dydx:subst(y,y(x),diff(subst(y(x),y,ans),x)),solve(dydx,'diff(y,x))); ['DIFF(y,x,1) = (x*y^2+x^3)/(2*y)]; -/* (kn_(221),ans:contrib_ode(eqn:(2*y+x+1)*'DIFF(y,x)-(2*y+x-1)=0,y,x));*/ +(kn_(221),ans:contrib_ode(eqn:(2*y+x+1)*'DIFF(y,x)-(2*y+x-1)=0,y,x)); +[-(2*y+x+1)*(-4*(2*(x+1)+2*(1-x))*LOG(1-(2*(x+1)+2*(1-x))/(3*(2*y+x+1)))/(3*(2*y+x+1))+4*(2*(x+1)+2*(1-x))*LOG(-(2*(x+1)+2*(1-x))/(3*(2*y+x+1)))/(3*(2*y+x+1))-4)/(3*(2*(x+1)+2*(1-x)))=x+%C]; +(dydx:subst(y,y(x),diff(subst(y(x),y,ans),x)),solve(dydx,'diff(y,x))); +['DIFF(y,x,1)=(2*y+x-1)/(2*y+x+1)]; |