Question: collection of ODE's where odetest do not verify dsolve solution.

Hello Maple experts;

We've talked about this subject before. odetest not verifying dsolve output. And very useful input was given:

https://www.mapleprimes.com/questions/227546-How-To-Make-Odetest-Verify-Dsolve

https://www.mapleprimes.com/questions/227638-How-To-Make-Odetest-Give-Zero-On-Its

Here, I thought to give a collection from my ode database of ode's that are solved by Maple, but odetest does not give zero, all in one place. 

I know this is a hard problem to get odetest to always verify its own solution. May be each case needs custom solution?

It would be nice if this area in Maple could be improved on more if possible (Maple is already a CAS leader in solving ODE's).

If some of the experts here like to see if they can get odetest to give zero on some of these examples, they are welcome to and will be useful to see. I only tried just simplify().

I depend on odetest to tell me if my solution is correct or not, and getting false negative makes me spend more time trying to find where my error in my solution, where there might be no error there, and it is just that odetest could not verify it.

These are all from different text books. I put the reference on each ODE where it was obtained from.

Two of these ODE can also hang or take very long time. I indicated that there so one might want to skip these two.

edit added new one, #1822, uploaded new worksheet


 

interface(version);

`Standard Worksheet Interface, Maple 2020.2, Windows 10, November 11 2020 Build ID 1502365`

Physics:-Version()

`The "Physics Updates" version in the MapleCloud is 884 and is the same as the version installed in this computer, created 2020, November 25, 16:49 hours Pacific Time.`

#796
#Book: Elementary differential equations with boundary value problems. William F. Trench. Brooks/Cole 2001
#Section: Section 1.2 Page 14
#Problem number: 9.
restart;
ode:=diff(y(x),x) = abs(y(x))+1;
sol:=dsolve(ode,y(x));
odetest(sol[1],ode):
simplify(%);

diff(y(x), x) = abs(y(x))+1

y(x) = -exp(-x)/_C1+1, y(x) = exp(x)*_C1-1

(-abs((-exp(-x)+_C1)/_C1)*_C1+exp(-x)-_C1)/_C1

#878
#Book: Elementary differential equations with boundary value problems. William F. Trench. Brooks/Cole 2001
#Section: Section 2.3 Page 55
#Problem number: 10.
restart;
ode:=diff(y(x),x) = x*(y(x)^2-1)^(2/3);
sol:=dsolve(ode,y(x));
odetest(sol,ode):
simplify(%);

diff(y(x), x) = x*(y(x)^2-1)^(2/3)

(1/2)*x^2-(-signum(y(x)^2-1))^(2/3)*y(x)*hypergeom([1/2, 2/3], [3/2], y(x)^2)/signum(y(x)^2-1)^(2/3)+_C1 = 0

-x*(4*y(x)^2*(y(x)^2-1)^(2/3)*signum(y(x)^2-1)^(1/3)*hypergeom([3/2, 5/3], [5/2], y(x)^2)+9*(y(x)^2-1)^(2/3)*signum(y(x)^2-1)^(1/3)*hypergeom([1/2, 2/3], [3/2], y(x)^2)+9*(-signum(y(x)^2-1))^(1/3))

#903
#Book: Elementary differential equations with boundary value problems. William F. Trench. Brooks/Cole 2001
#Section: Section 2.4 Page 57
#Problem number: 13.
restart;
ode:=diff(y(x),x)-y(x) = x*y(x)^(1/2);
ic:=y(0)=4;
sol:=dsolve([ode,ic],y(x));
odetest(sol,ode):
simplify(%);

diff(y(x), x)-y(x) = x*y(x)^(1/2)

y(0) = 4

y(x) = 16*(exp((1/2)*x))^2-8*x*exp((1/2)*x)+x^2-16*exp((1/2)*x)+4*x+4

-x*(((-8*x-16)*exp((1/2)*x)+x^2+4*x+16*exp(x)+4)^(1/2)-4*exp((1/2)*x)+x+2)

#1330
#Book: Differential equations and their applications, 3rd ed., M. Braun
#Section: Section 1.10. Page 80
#Problem number: 5.
restart;
ode:=diff(y(t),t) = 1+y(t)+y(t)^2*cos(t);
sol:=dsolve(ode,y(t)):
timelimit(60,odetest(sol,ode)); #WARNING, will either hang or take long time then timeout

diff(y(t), t) = 1+y(t)+y(t)^2*cos(t)

#1498
#Book: Differential Gleichungen, Kamke, 3rd ed
#Section: section 1.0
#Problem number: 25.
restart;
ode:=diff(y(x),x) = c*x^(-1+v)+b*x^(2*v)-a*y(x)^2;
sol:=dsolve(ode,y(x)):
odetest(sol,ode): #output too long to post

diff(y(x), x) = c*x^(-1+v)+b*x^(2*v)-a*y(x)^2

#1822
#Book: Advanced Mathematica, Book2, Perkin and Perkin, 1992
#Section: Chapter 11.3, page 316
restart;
ode:=x*y(x)*diff(y(x),x) = (y(x)^2-9)^(1/2);
ic:=y(exp(4)) = 5;
sol:=dsolve([ode,ic],y(x));
odetest(sol,[ode,ic]);
#needs:
odetest(sol,[ode,ic]) assuming x>1

x*y(x)*(diff(y(x), x)) = (y(x)^2-9)^(1/2)

y(exp(4)) = 5

y(x) = (9+ln(x)^2)^(1/2)

[-ln(x)*(csgn(ln(x))-1), 0]

[0, 0]

#1966
#Book: Differential equations for engineers by Wei-Chau XIE, Cambridge Press 2010
#Section: Chapter 2
#Problem number: 92.
restart;
ode:=2*x*diff(y(x),x)-y(x) = ln(diff(y(x),x));
sol:=dsolve(ode,y(x));
odetest(sol[1],ode):
simplify(%);
odetest(sol[2],ode);
simplify(%);

2*x*(diff(y(x), x))-y(x) = ln(diff(y(x), x))

y(x) = 1+(4*_C1*x+1)^(1/2)-ln((1/2)*(1+(4*_C1*x+1)^(1/2))/x), y(x) = 1-(4*_C1*x+1)^(1/2)-ln(-(1/2)*(-1+(4*_C1*x+1)^(1/2))/x)

-ln(2)+ln((1+(4*_C1*x+1)^(1/2))/x)-ln((2*x*_C1+(4*_C1*x+1)^(1/2)+1)/(x*(1+(4*_C1*x+1)^(1/2))))

-ln(2)+ln(-(-1+(4*_C1*x+1)^(1/2))/x)-ln((-2*x*_C1+(4*_C1*x+1)^(1/2)-1)/(x*(-1+(4*_C1*x+1)^(1/2))))

-ln(2)+ln((-(4*_C1*x+1)^(1/2)+1)/x)-ln((-2*x*_C1+(4*_C1*x+1)^(1/2)-1)/(x*(-1+(4*_C1*x+1)^(1/2))))

#2031
#Book: Ordinary differential equations and their solutions. By George Moseley Murphy. 1960
#Section: Various 3
#Problem number: 57.
ode:=diff(y(x),x) = a*x^(n-1)+b*x^(2*n)+c*y(x)^2;
sol:=dsolve(ode,y(x)):
odetest(sol,ode):
simplify(%)

diff(y(x), x) = a*x^(n-1)+b*x^(2*n)+c*y(x)^2

(1/2)*(-20*(I*a*c*(n+6/5)*b^(3/2)+(1/5)*b*a*(2*x^(n+1)*b+a)*c^(3/2)+(6/5)*(n+4/3)*(I*b^(5/2)*x^(n+1)*c-b^2*c^(1/2)*(n+1)))*(n+1)*WhittakerW(-(I*c^(1/2)*a+(-2*n-2)*b^(1/2))/(b^(1/2)*(2*n+2)), 1/(2*n+2), (2*I)*b^(1/2)*c^(1/2)*x^(n+1)/(n+1))+WhittakerW(-I*c^(1/2)*a/(b^(1/2)*(2*n+2)), 1/(2*n+2), (2*I)*b^(1/2)*c^(1/2)*x^(n+1)/(n+1))*(-(7*I)*a*c*(n^2+(16/7)*n+8/7)*b^(3/2)-5*a^2*b*(n+6/5)*c^(3/2)+3*b^2*(2+n)*(n+4/3)*n*c^(1/2)+I*c^2*a^3*b^(1/2)))*_C1/(c^(3/2)*b^(3/2)*(I*c^(1/2)*a+(-3*n-4)*b^(1/2))*x^2*(WhittakerW(-I*c^(1/2)*a/(b^(1/2)*(2*n+2)), 1/(2*n+2), (2*I)*b^(1/2)*c^(1/2)*x^(n+1)/(n+1))*_C1+WhittakerM(-I*c^(1/2)*a/(b^(1/2)*(2*n+2)), 1/(2*n+2), (2*I)*b^(1/2)*c^(1/2)*x^(n+1)/(n+1))))

#2372
#Book: Ordinary differential equations and their solutions. By George Moseley Murphy. 1960
#Section: Various 14
#Problem number: 407
ode:=diff(y(x),x)*(x^3+1)^(2/3)+(1+y(x)^3)^(2/3) = 0;
sol:=dsolve(ode,y(x)):
odetest(sol,ode):
simplify(%)

(diff(y(x), x))*(x^3+1)^(2/3)+(1+y(x)^3)^(2/3) = 0

-9*((4/9)*(1+y(x)^3)^(2/3)*Pi*3^(1/2)*LegendreP(-1/3, -1/3, (-y(x)^3+1)/(1+y(x)^3))*(-x^3)^(1/6)+(-(4/9)*(1+y(x)^3)^(1/3)*Pi*3^(1/2)*(x^3+1)^(1/3)*LegendreP(-1/3, -1/3, (-x^3+1)/(x^3+1))+GAMMA(2/3)*(-x^3)^(1/6)*((-y(x)^6-y(x)^3)*hypergeom([4/3, 5/3], [7/3], -y(x)^3)+x^3*(1+y(x)^3)^(1/3)*hypergeom([4/3, 5/3], [7/3], -x^3)*(x^3+1)^(2/3)))*(-y(x)^3)^(1/6))/((-x^3)^(1/6)*(9*hypergeom([4/3, 5/3], [7/3], -y(x)^3)*y(x)^3*(-y(x)^3)^(1/6)*(1+y(x)^3)^(1/3)*GAMMA(2/3)-4*Pi*3^(1/2)*LegendreP(-1/3, -1/3, (-y(x)^3+1)/(1+y(x)^3))))

#3035
#Book: Ordinary differential equations and their solutions. By George Moseley Murphy. 1960
#Section: Various 37
#Problem number: 1118.
restart;
ode:=(diff(y(x),x)^2+1)^(1/2)+a*diff(y(x),x) = x;
sol:=[dsolve(ode,y(x))]:
odetest(sol[1],ode):
simplify(%);
odetest(sol[2],ode):
simplify(%)

((diff(y(x), x))^2+1)^(1/2)+a*(diff(y(x), x)) = x

((a^2+x^2-1)^(1/2)*(a^2-1)*((a^4+(x^2-1)*a^2+2*a*x*(a^2+x^2-1)^(1/2)+x^2)/(a^2-1)^2)^(1/2)+a^3+a*x^2+x*(a^2+x^2-1)^(1/2)-a)/((a^2+x^2-1)^(1/2)*(a^2-1))

-((-a^2+1)*(a^2+x^2-1)^(1/2)*((a^4+(x^2-1)*a^2-2*a*x*(a^2+x^2-1)^(1/2)+x^2)/(a^2-1)^2)^(1/2)+a^3+a*x^2-x*(a^2+x^2-1)^(1/2)-a)/((a^2+x^2-1)^(1/2)*(a^2-1))

#3036
#Book: Ordinary differential equations and their solutions. By George Moseley Murphy. 1960
#Section: Various 37
#Problem number: 1119.
restart;
ode:=(diff(y(x),x)^2+1)^(1/2)+a*diff(y(x),x) = y(x);
sol:=[dsolve(ode,y(x))];
odetest(sol[1],ode):
simplify(%);
odetest(sol[2],ode):
simplify(%)

((diff(y(x), x))^2+1)^(1/2)+a*(diff(y(x), x)) = y(x)

[x-Intat(-(a-1)*(a+1)/(-a*_a+(_a^2+a^2-1)^(1/2)), _a = y(x))-_C1 = 0, x-Intat((a-1)*(a+1)/(a*_a+(_a^2+a^2-1)^(1/2)), _a = y(x))-_C1 = 0]

(((y(x)^2*a^2+a^4-2*y(x)*(y(x)^2+a^2-1)^(1/2)*a+y(x)^2-a^2)/(a^2-1)^2)^(1/2)*a^2-(y(x)^2+a^2-1)^(1/2)*a+y(x)-((y(x)^2*a^2+a^4-2*y(x)*(y(x)^2+a^2-1)^(1/2)*a+y(x)^2-a^2)/(a^2-1)^2)^(1/2))/(a^2-1)

(((y(x)^2*a^2+a^4+2*y(x)*(y(x)^2+a^2-1)^(1/2)*a+y(x)^2-a^2)/(a^2-1)^2)^(1/2)*a^2+(y(x)^2+a^2-1)^(1/2)*a-((y(x)^2*a^2+a^4+2*y(x)*(y(x)^2+a^2-1)^(1/2)*a+y(x)^2-a^2)/(a^2-1)^2)^(1/2)+y(x))/(a^2-1)

#3040
#Book: Ordinary differential equations and their solutions. By George Moseley Murphy. 1960
#Section: Various 37
#Problem number: 1126.
restart;
ode:=a*x*(diff(y(x),x)^2+1)^(1/2)+x*diff(y(x),x)-y(x) = 0;
sol:=[dsolve(ode,y(x))];
odetest(sol[1],ode): #too large to display
odetest(sol[2],ode): #too large to display

a*x*((diff(y(x), x))^2+1)^(1/2)+x*(diff(y(x), x))-y(x) = 0

[x-exp(arcsinh(((-a^2*x^2+x^2+y(x)^2)^(1/2)*a+y(x))/((a^2-1)*x))/a)*_C1/((-a^2*x^2+a^2*y(x)^2+2*(-a^2*x^2+x^2+y(x)^2)^(1/2)*a*y(x)+x^2+y(x)^2)/((a^2-1)^2*x^2))^(1/2) = 0, x-exp(-arcsinh(((-a^2*x^2+x^2+y(x)^2)^(1/2)*a-y(x))/((a^2-1)*x))/a)*_C1/(-(a^2*x^2-a^2*y(x)^2+2*(-a^2*x^2+x^2+y(x)^2)^(1/2)*a*y(x)-x^2-y(x)^2)/((a^2-1)^2*x^2))^(1/2) = 0]

#3054
#Book: Ordinary differential equations and their solutions. By George Moseley Murphy. 1960
#Section: Various 37
#Problem number: 1146.
restart;
ode:=ln(diff(y(x),x))+4*x*diff(y(x),x)-2*y(x) = 0;
sol:=[dsolve(ode,y(x))];
odetest(sol[1],ode):
simplify(%);
odetest(sol[2],ode):
simplify(%);

ln(diff(y(x), x))+4*x*(diff(y(x), x))-2*y(x) = 0

[y(x) = (1/2)*ln((1/4)*(-1+(16*_C1*x+1)^(1/2))/x)-1/2+(1/2)*(16*_C1*x+1)^(1/2), y(x) = (1/2)*ln(-(1/4)*(1+(16*_C1*x+1)^(1/2))/x)-1/2-(1/2)*(16*_C1*x+1)^(1/2)]

ln(2)+ln((8*x*_C1-(16*_C1*x+1)^(1/2)+1)/(x*(-1+(16*_C1*x+1)^(1/2))))-ln((-1+(16*_C1*x+1)^(1/2))/x)

ln(2)+ln((-8*x*_C1-(16*_C1*x+1)^(1/2)-1)/(x*(1+(16*_C1*x+1)^(1/2))))-ln((-1-(16*_C1*x+1)^(1/2))/x)

#3128
#Book: Differential Equations, By George Boole F.R.S. 1865
#Section: Chapter 7
#Problem number: 7.
restart;
ode:=y(x) = a*diff(y(x),x)+(diff(y(x),x)^2+1)^(1/2);
sol:=[dsolve(ode,y(x))];
odetest(sol[1],ode):
simplify(%);
odetest(sol[2],ode):
simplify(%);

y(x) = a*(diff(y(x), x))+((diff(y(x), x))^2+1)^(1/2)

[x-Intat(-(a-1)*(a+1)/(-a*_a+(_a^2+a^2-1)^(1/2)), _a = y(x))-_C1 = 0, x-Intat((a-1)*(a+1)/(a*_a+(_a^2+a^2-1)^(1/2)), _a = y(x))-_C1 = 0]

((y(x)^2+a^2-1)^(1/2)*a-y(x)-((y(x)^2*a^2+a^4-2*y(x)*(y(x)^2+a^2-1)^(1/2)*a+y(x)^2-a^2)/(a^2-1)^2)^(1/2)*(a^2-1))/(a^2-1)

(-(y(x)^2+a^2-1)^(1/2)*a-y(x)-((y(x)^2*a^2+a^4+2*y(x)*(y(x)^2+a^2-1)^(1/2)*a+y(x)^2-a^2)/(a^2-1)^2)^(1/2)*(a^2-1))/(a^2-1)

#3129
#Book: Differential Equations, By George Boole F.R.S. 1865
#Section: Chapter 7
#Problem number: 8.
restart;
ode:=x = a*diff(y(x),x)+(diff(y(x),x)^2+1)^(1/2);
sol:=[dsolve(ode,y(x))];
odetest(sol[1],ode):
simplify(%);
odetest(sol[2],ode):
simplify(%);

x = a*(diff(y(x), x))+((diff(y(x), x))^2+1)^(1/2)

[y(x) = (1/2)*x*(a^2+x^2-1)^(1/2)/((a-1)*(a+1))+(1/2)*ln(x+(a^2+x^2-1)^(1/2))*a^2/((a-1)*(a+1))-(1/2)*ln(x+(a^2+x^2-1)^(1/2))/((a-1)*(a+1))+(1/2)*a*x^2/((a-1)*(a+1))+_C1, y(x) = -(1/2)*x*(a^2+x^2-1)^(1/2)/((a-1)*(a+1))-(1/2)*ln(x+(a^2+x^2-1)^(1/2))*a^2/((a-1)*(a+1))+(1/2)*ln(x+(a^2+x^2-1)^(1/2))/((a-1)*(a+1))+(1/2)*a*x^2/((a-1)*(a+1))+_C1]

-((a^2+x^2-1)^(1/2)*(a^2-1)*((2*a*x*(a^2+x^2-1)^(1/2)+a^4+(x^2-1)*a^2+x^2)/(a^2-1)^2)^(1/2)+a^3+a*x^2+x*(a^2+x^2-1)^(1/2)-a)/((a^2+x^2-1)^(1/2)*(a^2-1))

((-a^2+1)*(a^2+x^2-1)^(1/2)*((a^4+(x^2-1)*a^2-2*a*x*(a^2+x^2-1)^(1/2)+x^2)/(a^2-1)^2)^(1/2)+a^3+a*x^2-x*(a^2+x^2-1)^(1/2)-a)/((a^2+x^2-1)^(1/2)*(a^2-1))

#3136
#Book: Differential Equations, By George Boole F.R.S. 1865
#Section: Chapter 7
#Problem number: 15
restart;
ode:=y(x) =x*diff(y(x),x)+a*x*(diff(y(x),x)^2+1)^(1/2);
sol:=[dsolve(ode,y(x))];
odetest(sol[1],ode):
simplify(%):# output too large
odetest(sol[2],ode):
simplify(%):# output too large

y(x) = x*(diff(y(x), x))+a*x*((diff(y(x), x))^2+1)^(1/2)

[x-exp(arcsinh(((-a^2*x^2+x^2+y(x)^2)^(1/2)*a+y(x))/((a^2-1)*x))/a)*_C1/((-a^2*x^2+a^2*y(x)^2+2*(-a^2*x^2+x^2+y(x)^2)^(1/2)*a*y(x)+x^2+y(x)^2)/((a^2-1)^2*x^2))^(1/2) = 0, x-exp(-arcsinh(((-a^2*x^2+x^2+y(x)^2)^(1/2)*a-y(x))/((a^2-1)*x))/a)*_C1/(-(a^2*x^2-a^2*y(x)^2+2*(-a^2*x^2+x^2+y(x)^2)^(1/2)*a*y(x)-x^2-y(x)^2)/((a^2-1)^2*x^2))^(1/2) = 0]

#3138
#Book: Differential Equations, By George Boole F.R.S. 1865
#Section: Chapter 7
#Problem number: 17
restart;
ode:=x+y(x)*diff(y(x),x) = a*(diff(y(x),x)^2+1)^(1/2);
sol:=[dsolve(ode,y(x))];
odetest(sol[1],ode): #WARNING. hangs. try with timelimit

[y(x) = (a*(tan(RootOf(a^2*_Z^2*cos(2*_Z)+2*_C1*a*_Z*cos(2*_Z)+4*sin(_Z)*a*x*_Z-a^2*_Z^2+_C1^2*cos(2*_Z)+a^2*cos(2*_Z)+4*sin(_Z)*_C1*x-2*_C1*a*_Z-_C1^2+a^2-2*x^2))^2+1)^(1/2)-x)/tan(RootOf(a^2*_Z^2*cos(2*_Z)+2*_C1*a*_Z*cos(2*_Z)+4*sin(_Z)*a*x*_Z-a^2*_Z^2+_C1^2*cos(2*_Z)+a^2*cos(2*_Z)+4*sin(_Z)*_C1*x-2*_C1*a*_Z-_C1^2+a^2-2*x^2)), y(x) = (a*(tan(RootOf(a^2*_Z^2*cos(2*_Z)+2*_C1*a*_Z*cos(2*_Z)-4*sin(_Z)*a*x*_Z-a^2*_Z^2+_C1^2*cos(2*_Z)+a^2*cos(2*_Z)-4*sin(_Z)*_C1*x-2*_C1*a*_Z-_C1^2+a^2-2*x^2))^2+1)^(1/2)-x)/tan(RootOf(a^2*_Z^2*cos(2*_Z)+2*_C1*a*_Z*cos(2*_Z)-4*sin(_Z)*a*x*_Z-a^2*_Z^2+_C1^2*cos(2*_Z)+a^2*cos(2*_Z)-4*sin(_Z)*_C1*x-2*_C1*a*_Z-_C1^2+a^2-2*x^2))]

 


edit 12/23/2020

Found one more.

#3647
restart;
ode:=diff(y(x),x)=2*(x*sqrt(y(x))-1)*y(x);
ic:=y(0)=1;
sol:=dsolve([ode,ic]);
odetest(sol,ode);

The above becomes zero only for x>-1 

ps. I added this to the worksheet, but since upload now does not work, did not re upload so not to lose the display above. Will do that later when it is working.

 

edit 12/25/2020

Found one more.

#3607
#Book: Fundamentals of Differential Equations. By Nagle, Saff and Snider. 9th edition. Boston. Pearson 2018.
#Section: Chapter 2, First order differential equations. Section 2.2 Exercises. page 46
#Problem number: 19.

restart;
ode:=1/2*diff(y(x),x) = (y(x)+1)^(1/2)*cos(x);
ic:=y(Pi)=0:
sol:=dsolve([ode,ic],y(x)):
res:=odetest(sol,ode);

edit 12/26/2020

Found one more

#3613
#Book: Fundamentals of Differential Equations. By Nagle, Saff and Snider. 9th edition. Boston. Pearson 2018.
#Section: Chapter 2, First order differential equations. Section 2.2 Exercises. page 46
#Problem number: 26.

restart;
ode:=(x+1)*diff(y(x),x)+y(x)^(1/2) = 0;
ic:=y(0) = 1;
sol:=dsolve([ode,ic],y(x));
res:=odetest(sol,ode);

PDEtools:-Solve(res=0,x) assuming real;

edit 1/10/2021

Found one more

#2406
#Book: Ordinary differential equations and their solutions. By George Moseley Murphy. 1960
#Problem number: 406.

restart;
ode:=(x^3+1)^(2/3)*diff(y(x),x)+(y(x)^3+1)^(2/3) = 0;
sol:=dsolve(ode,y(x));

check:=simplify(odetest(sol,ode));  #tried other simplication, can't get it to zero. But sol is correct

 

Download examples_of_odes_that_do_not_odetest.mw

Please Wait...