1 (load("contrib_ode"),0);
4 /* ODE tests - Murphy equations 1.101 - 1.200
7 G M Murphy, Ordinary Differential Equations and Their
8 Solutions, Van Nostrand, 1960
10 First Order and of First Degree, p 224 ff
13 /* Don't kill(all); It messes up trigsimp */
16 (pn_(n_):=print("Murphy ODE 1.",n_),true);
20 /* assume((b^2+8*a)>0,x>0);
22 (pn_(101),ans:contrib_ode(eqn:'diff(y,x)=a*x+b*sqrt(y),y,x));
23 [x=%c*%e^-((b*sqrt(b^2+8*a)*log(-(-16*y^2+sqrt(b^2+8*a)*(sqrt(y)*(8*x*y+(-b^2-4*a)*x^3)+2*b*x^2*y+a*b*x^4)+2*b^2*x^2*y+(-b^3-8*a*b)*x^3*sqrt(y)+(a*b^2+4*a^2)*x^4)/(16*y^2+(-4*b^2-16*a)*x^2*y+4*a^2*x^4))+(b^2+8*a)*log(-(-2*y+b*x*sqrt(y)+a*x^2)/x^2))/(2*b^2+16*a))];
24 forget((b^2+8*a)>0,x>0);
30 (pn_(102),ans:contrib_ode(eqn:'diff(y,x)+x^3=x*sqrt(x^4+4*y),y,x));
31 [x = %c*%e^-(log((sqrt(4*y+x^4)-x^2)/x^2)/2)];
33 %c^2 = sqrt(4*y+x^4)-x^2;
34 (assume(x^2+%c^2>0),ans:first(solve(%,y)),forget(x^2+%c^2>0),ans);
35 y=(2*%c^2*x^2+%c^4)/4; /* This is correct */
40 (pn_(103),ans:contrib_ode(eqn:'diff(y,x)+2*y*(1-x*sqrt(y))=0,y,x));
41 [y = %e^-(2*x)/(%c-(-x-1)*%e^-x)^2];
43 y=1/(%c^2*%e^(2*x)+(2*%c*x+2*%c)*%e^x+x^2+2*x+1);
45 y=1/(%c*%e^x+x+1)^2; /* This is correct */
49 /* 104 - There are three cases. Just do first */
52 (pn_(104),ans:contrib_ode(eqn:'diff(y,x)=sqrt(a+b*y^2),y,x));
53 [asinh(sqrt(b)*y/sqrt(a))/sqrt(b)=x+%c];
54 ans:first(solve(ans[1],y));
55 y = sqrt(a)*sinh(sqrt(b)*x+%c*sqrt(b))/sqrt(b);
56 [method,radcan(ode_check(eqn,%))];
64 (pn_(105),ans:contrib_ode(eqn:'diff(y,x)=y*sqrt(a+b*y),y,x));
65 [log(-(2*sqrt(a)*sqrt(b*y+a)-b*y-2*a)/(b*y))/sqrt(a) = x+%c];
66 /* a+b*y = a*tanh(%c-x*sqrt(a)/2)^2 */
67 [method,ode_check(eqn,ans[1])];
73 (pn_(109),ans:contrib_ode(eqn:'diff(y,x)=cos(x)^2*cos(y),y,x));
74 [(log(sin(y)+1)-log(sin(y)-1))/2 = (sin(2*x)+2*x)/4+%c];
76 (sin(y)+1)/(sin(y)-1) = %e^(2*((sin(2*x)+2*x)/4+%c));
77 /* ans:first(solve(%,y));
78 y=asin(%e^(sin(2*x)/2+x+2*%c)/(%e^(sin(2*x)/2+x+2*%c)-1)+1/(%e^(sin(2*x)/2+x+2*%c)-1));
79 [method,ode_check(eqn,ans)];
83 (pn_(110),ans:contrib_ode(eqn:'diff(y,x)=sec(x)^2*cot(y)*cos(y),y,x));
86 [y=acos(1/(tan(x)+%c))];
87 [method,ode_check(eqn,%[1])];
90 /* 114 CHECKME - Different results interactively */
91 /* assume(4*a^2>4*b^2);
93 (pn_(114),ans:contrib_ode(eqn:'diff(y,x)=a+b*cos(y),y,x));
94 [-2*sqrt(a^2-b^2)*atan(sqrt(a^2-b^2)*sin(y)/((b+a)*cos(y)+b+a))/(b^2-a^2)=x+%c];
95 /* Take this on faith at present */
99 /* assume(4*a^2<4*b^2);
101 ans:contrib_ode(eqn,y,x);
102 [-log(-((a-b)*sin(y)^2+sqrt(b^2-a^2)*(2*cos(y)+2)*sin(y)+(-b-a)*cos(y)^2+(-2*b-2*a)*cos(y)-b-a)/((b-a)*sin(y)^2+(-b-a)*cos(y)^2+(-2*b-2*a)*cos(y)-b-a))/sqrt(b^2-a^2)=x+%c];
103 /* Take this on faith at present */
108 /* 115 - takes "forever" in ode1_lie() */
109 /* (pn_(115),ans:contrib_ode(eqn:'diff(y,x)+x*(sin(2*y)-x^2*cos(y)^2)=0,y,x)); */
112 (pn_(116),ans:contrib_ode(eqn:'diff(y,x)+tan(x)*sec(x)*cos(y)^2,y,x));
113 [-tan(y)=1/cos(x)+%c];
114 map(atan,-ans[1]),triginverses=all;
115 y=-atan(1/cos(x)+%c)$
116 [method,ode_check(eqn,ans[1])];
120 (pn_(117),ans:contrib_ode(eqn:'diff(y,x)=cot(x)*cot(y),y,x));
121 [-log(1-sin(y)^2)/2 = log(sin(x))+%c];
122 /* map(exp,2*ans[1]);
123 1/(1-sin(y)^2) = %e^(2*(log(sin(x))+%c));
125 -1/(sin(y)^2-1) = %e^(2*%c)*sin(x)^2;
127 1/cos(y)^2 = %e^(2*%c)*sin(x)^2;
129 [y = %pi-acos(%e^-%c/sin(x)),y = acos(%e^-%c/sin(x))];
130 [method,ode_check(eqn,%[1]),ode_check(eqn,%[2])];
134 (pn_(118),ans:contrib_ode(eqn:'diff(y,x)+cot(x)*cot(y)=0,y,x));
135 [log(1-sin(y)^2)/2 = log(sin(x))+%c];
136 /* map(exp,2*ans[1]);
137 1-sin(y)^2 = %e^(2*(log(sin(x))+%c));
139 1-sin(y)^2 = %e^(2*%c)*sin(x)^2;
141 cos(y)^2 = %e^(2*%c)*sin(x)^2;
143 [y = %pi-acos(%e^%c*sin(x)),y = acos(%e^%c*sin(x))];
144 [method,ode_check(eqn,%[1]),ode_check(eqn,%[2])];
148 (pn_(119),ans:contrib_ode(eqn:'diff(y,x)=sin(x)*(csc(y)-cot(y)),y,x));
149 [2*log(sin(y)/(cos(y)+1))-log((sin(y)^2+cos(y)^2+2*cos(y)+1)/(cos(y)^2+2*cos(y)+1))=%c-cos(x)];
152 (pn_(120),ans:contrib_ode(eqn:'diff(y,x)=tan(x)*cot(y),y,x));
153 [-log(1-sin(y)^2)/2=log(sec(x))+%c];
154 subst(cos(y)^2,1-sin(y)^2,ans[1]);
155 -log(cos(y))=log(sec(x))+%c;
156 subst(1/cos(x),sec(x),%);
157 -log(cos(y))=%c-log(cos(x));
159 cos(y)=%e^-%c*cos(x);
160 subst(%c,%e^-%c,%); /* Change to form of the constant */
161 cos(y)=%c*cos(x); /* This is correct */
163 [y = acos(%c*cos(x))];
164 [method,ode_check(eqn,%[1])];
169 (pn_(121),ans:contrib_ode(eqn:'diff(y,x)+tan(x)*cot(y)=0,y,x));
170 [log(1-sin(y)^2)/2 = log(sec(x))+%c];
171 subst(cos(y)^2,1-sin(y)^2,ans[1]);
172 log(cos(y))=log(sec(x))+%c;
173 subst(1/cos(x),sec(x),%);
174 log(cos(y))=%c-log(cos(x));
177 subst(%c,%e^%c,%); /* Change to form of the constant */
178 cos(y)=%c/cos(x); /* This is correct */
180 [y = acos(%c/cos(x))];
181 [method,ode_check(eqn,%[1])];
185 (pn_(122),ans:contrib_ode(eqn:'diff(y,x)+sin(2*x)*csc(2*y)=0,y,x));
186 [cos(2*y)/2=%c-cos(2*x)/2];
187 (ans:expand(2*ans[1]),ans:subst(%c,2*%c,ans));
188 cos(2*y)=%c-cos(2*x); /* This is correct */
190 [y = -((acos(cos(2*x)-%c)-%pi)/2)];
191 [method,ode_check(eqn,%[1])];
195 (pn_(123),ans:contrib_ode(eqn:'diff(y,x)=tan(x)*(tan(y)+sec(x)*sec(y)),y,x));
199 (pn_(124),ans:contrib_ode(eqn:'diff(y,x)=cos(x)*sec(y)^2,y,x));
200 [(sin(2*y)+2*y)/4 = sin(x)+%c];
201 (ans:4*ans[1],ans:subst(%c,4*%c,expand(ans)));
202 sin(2*y)+2*y=4*sin(x)+%c; /* This is correct */
207 (pn_(125),ans:contrib_ode(eqn:'diff(y,x)=sec(x)^2*sec(y)^3,y,x));
208 [-((sin(y)^3-3*sin(y))/3)=tan(x)+%c];
209 (ans:3*ans[1],ans:subst(%c,3*%c,expand(ans)));
210 3*sin(y)-sin(y)^3=3*tan(x)+%c;
211 trigsimp(lhs(ans))=rhs(ans);
212 (cos(y)^2+2)*sin(y)=3*tan(x)+%c; /* This is correct */
217 assume(a>b,4*a^2>4*b^2);
219 (pn_(126),ans:contrib_ode(eqn:'diff(y,x)=a+b*sin(y),y,x));
220 [2*atan((a*sin(y)+b*cos(y)+b)/(sqrt(a^2-b^2)*(cos(y)+1)))/sqrt(a^2-b^2)=x+%c];
221 /* Need to check this */
222 forget(a>b,4*a^2>4*b^2);
225 /* 127 - FIXME: ode1_lie takes "forever" */
226 /* (pn_(127),ans:contrib_ode(eqn:'diff(y,x)=a+b*sin(%A*x+%B*y),y,x)); */
228 /* 128 - FIXME: ode1_lie takes "forever" */
229 /* (pn_(128),ans:contrib_ode(eqn:'diff(y,x)=(1+cos(x)*sin(y))*tan(y),y,x)); */
231 /* 129 - See Kamke 1.199 */
232 /* (pn_(129),ans:contrib_ode(eqn:'diff(y,x)+csc(2*x)*sin(2*y)=0,y,x)); */
234 /* 132 CHECKME - Why the %I in the solution? */
235 /* Interactive solution is equivalent but different */
236 (pn_(132),ans:contrib_ode(eqn:'diff(y,x)=x+exp(y),y,x),0);
238 [method,ode_check(eqn,ans[1])];
242 (pn_(133),ans:contrib_ode(eqn:'diff(y,x)=exp(x+y),y,x));
243 [-%e^-y*(%e^(y+x)+1)=%c];
244 solve(expand(ans[1]),y);
245 [y = log(-1/(%e^x+%c))];
246 [method,ode_check(eqn,%[1])];
249 /* 134 - Solution is different to Murphy */
250 (pn_(134),ans:contrib_ode(eqn:'diff(y,x)=exp(x)*(a+b*exp(-y)),y,x));
251 [(log(a*%e^y+b)-a*%e^x)/a = %c];
253 log(a*%e^y+b) = a*%e^x+%c*a;
255 a*%e^y+b = %e^(a*%e^x+%c*a);
257 [y = log(%e^(a*%e^x+%c*a)/a-b/a)];
258 [method,ode_check(eqn,%[1])];
262 (pn_(135),ans:contrib_ode(eqn:'diff(y,x)+y*log(x)*log(y),y,x));
263 [-log(log(y))=x*log(x)-x+%c];
265 [y=%e^%e^(-x*log(x)+x-%c)];
266 [method,ode_check(eqn,%[1])];
269 /* 136 - Too general? ode1_lie runs "forever" */
270 /* (pn_(136),ans:contrib_ode(eqn:'diff(y,x)=x^(m-1)*y^(1-n)*f(a*x^m+b*y^n),y,x)); */
273 (pn_(137),ans:contrib_ode(eqn:'diff(y,x)=a*f(y),y,x));
274 [('integrate(1/f(y),y))/a = x+%c];
278 /* 138 - Too general */
281 (pn_(139),ans:contrib_ode(eqn:'diff(y,x)=f(x)*g(y),y,x));
282 ['integrate(1/g(y),y) = 'integrate(f(x),x)+%c];
287 (assume(sin(x)>0,sin(2*x)>0),done);
289 (pn_(140),ans:contrib_ode(eqn:2*'diff(y,x)=sec(x)^2+y*sec(x)*csc(x),y,x));
290 [y = %e^((log(sin(x))-log(sin(x)^2-1)/2)/2)*(('integrate(sec(x)^2*%e^-((log(sin(x))-log(sin(x)^2-1)/2)/2),x))/2+%c)]; /* Mmmm */
293 (forget(sin(x)>0,sin(2*x)>0),done);
297 (pn_(141),ans:contrib_ode(eqn:2*'diff(y,x)+2*csc(x)^2=y*csc(x)*sec(x)+y^2*sec(x)^2,y,x));
298 [[y=-2*'diff(%u,x,1)/(%u*sec(x)^2),-'diff(%u,x,1)*(sec(x)^2*tan(x)+csc(x)*sec(x)^3/4)-%u*csc(x)^2*sec(x)^4/4+'diff(%u,x,2)*sec(x)^2/2=0]];
302 /* 142 - ode1_lie runs "forever"*/
303 /* (pn_(142),ans:contrib_ode(eqn:2*'diff(y,x)=2*sin(y)^2*tan(y)-x*sin(2*y),y,x)); */
308 (pn_(144),ans:contrib_ode(eqn:3*'diff(y,x)=x+sqrt(x^2-3*y),y,x));
309 /* [x=%c*%e^((log((6*x^2*y+3*x^3*sqrt(x^2-3*y)-3*x^4)/(6*x^2*y))-3*log((-6*y+x*sqrt(x^2-3*y)+x^2)/x))/6)];*/ /* Assume correct */
310 [x = %c*%e^-((3*log((-6*y+x*sqrt(x^2-3*y)+x^2)/x)-log((2*x*sqrt(x^2-3*y)-x^2)/(2*x*sqrt(x^2-3*y)+2*x^2)))/6)];
317 (pn_(145),ans:contrib_ode(eqn:x*'diff(y,x)=sqrt(a^2-x^2),y,x));
318 [y=-a*log(2*a*sqrt(a^2-x^2)/abs(x)+2*a^2/abs(x))+sqrt(a^2-x^2)+%c];
319 [method,ode_check(eqn,ans[1])];
325 (pn_(146),ans:contrib_ode(eqn:x*'diff(y,x)+x+y=0,y,x));
327 [method,ode_check(eqn,ans[1])];
331 (pn_(147),ans:contrib_ode(eqn:x*'diff(y,x)+x^2-y=0,y,x));
333 [method,ode_check(eqn,ans[1])];
337 (pn_(148),ans:contrib_ode(eqn:x*'diff(y,x)=x^3-y,y,x));
339 [method,ode_check(eqn,ans[1])];
343 (pn_(149),ans:contrib_ode(eqn:x*'diff(y,x)=1+x^3+y,y,x));
344 [y=x*(x^2/2-1/x+%c)];
345 [method,ode_check(eqn,ans[1])];
349 assume(not(equal(m,1)));
351 (pn_(150),ans:contrib_ode(eqn:x*'diff(y,x)=x^m+y,y,x));
352 [y=x*(x^(m-1)/(m-1)+%c)];
353 [method,ode_check(eqn,ans[1])];
355 forget(not(equal(m,1)));
359 (pn_(151),ans:contrib_ode(eqn:x*'diff(y,x)=x*sin(x)-y,y,x));
360 [y=(sin(x)-x*cos(x)+%c)/x];
361 [method,ode_check(eqn,ans[1])];
365 (pn_(152),ans:contrib_ode(eqn:x*'diff(y,x)=x^2*sin(x)+y,y,x));
367 [method,ode_check(eqn,ans[1])];
371 assume(not(equal(n,-1)));
373 (pn_(153),ans:contrib_ode(eqn:x*'diff(y,x)=x^n*log(x)-y,y,x));
374 [y=(x^(n+1)*log(x)/(n+1)-x^(n+1)/(n+1)^2+%c)/x];
375 [method,ode_check(eqn,ans[1])];
377 forget(not(equal(n,-1)));
381 (pn_(154),ans:contrib_ode(eqn:x*'diff(y,x)=sin(x)-2*y,y,x));
382 [y=(sin(x)-x*cos(x)+%c)/x^2];
383 [method,ode_check(eqn,ans[1])];
387 (pn_(155),ans:contrib_ode(eqn:x*'diff(y,x)=a*y,y,x));
388 [y=%c*%e^(a*log(x))];
391 [method,ode_check(eqn,ans[1])];
395 assume(not(equal(a,0)),not(equal(a,1)));
396 '[not equal(a,0),not equal(a,1)];
397 (pn_(156),ans:contrib_ode(eqn:x*'diff(y,x)=1+x+a*y,y,x));
398 [y=(-%e^-(a*log(x))/a+%e^((1-a)*log(x))/(1-a)+%c)*%e^(a*log(x))];
400 [y=((%c*a^2-%c*a)*x^a-a*x-a+1)/(a^2-a)];
401 [method,ode_check(eqn,ans[1])];
403 forget(not(equal(a,0)),not(equal(a,1)));
404 '[not equal(a,0),not equal(a,1)];
407 assume(not(equal(b,1)));
409 (pn_(157),ans:contrib_ode(eqn:x*'diff(y,x)=a*x+b*y,y,x));
410 [y=(a*x*%e^-(b*log(x))/(1-b)+%c)*%e^(b*log(x))];
412 [y=((%c*b-%c)*x^b-a*x)/(b-1)];
413 [method,ode_check(eqn,ans[1])];
415 forget(not(equal(b,1)));
419 assume(not(equal(b,2)));
421 (pn_(158),ans:contrib_ode(eqn:x*'diff(y,x)=a*x^2+b*y,y,x));
422 [y=(a*x^2*%e^-(b*log(x))/(2-b)+%c)*%e^(b*log(x))];
424 [y=((%c*b-2*%c)*x^b-a*x^2)/(b-2)];
425 [method,ode_check(eqn,ans[1])];
427 forget(not(equal(b,2)));
431 assume(not(equal(n,c)));
433 (pn_(159),ans:contrib_ode(eqn:x*'diff(y,x)=a+b*x^n+c*y,y,x));
434 [y=%e^(c*log(x))*(-b*%e^(n*log(x)-c*log(x))/(c-n)-a*%e^-(c*log(x))/c+%c)];
436 [y=(b*c*x^n+(%c*c*n-%c*c^2)*x^c-a*n+a*c)/(c*n-c^2)];
437 [method,ode_check(eqn,ans[1])];
439 forget(not(equal(n,c)));
443 (pn_(160),ans:contrib_ode(eqn:x*'diff(y,x)+2+(3-x)*y=0,y,x));
444 [y=(%c-2*(-x^2-2*x-2)*%e^-x)*%e^x/x^3];
446 [y=(%c*%e^x+2*x^2+4*x+4)/x^3];
447 [method,ode_check(eqn,ans[1])];
451 (pn_(161),ans:contrib_ode(eqn:x*'diff(y,x)+x+(2+a*x)*y=0,y,x));
452 [y=%e^-(a*x)*(%c-(a^2*x^2-2*a*x+2)*%e^(a*x)/a^3)/x^2];
453 [method,ode_check(eqn,ans[1])];
457 (pn_(162),ans:contrib_ode(eqn:x*'diff(y,x)+(a+b*x)*y=0,y,x));
458 [y=%c*%e^(-a*log(x)-b*x)];
460 [y=%c*%e^-(b*x)/x^a];
461 [method,ode_check(eqn,ans[1])];
465 (pn_(163),ans:contrib_ode(eqn:x*'diff(y,x)=x^3+(1-2*x^2)*y,y,x));
466 [y=x*%e^-x^2*(%e^x^2/2+%c)];
467 [method,ode_check(eqn,ans[1])];
471 (pn_(164),ans:contrib_ode(eqn:x*'diff(y,x)=a*x-(1-b*x^2)*y,y,x));
472 [y=(%c-a*%e^-(b*x^2/2)/b)*%e^(b*x^2/2)/x];
473 [method,ode_check(eqn,ans[1])];
477 (pn_(165),ans:contrib_ode(eqn:x*'diff(y,x)+(2-a*x^2)*y,y,x));
478 [y=%c*%e^(a*x^2/2)/x^2];
479 [method,ode_check(eqn,ans[1])];
483 (pn_(166),ans:contrib_ode(eqn:x*'diff(y,x)+x^2=y^2,y,x));
484 [y=(bessel_k(1,x)*%c-bessel_i(1,x))*x/(bessel_k(0,x)*%c+bessel_i(0,x))];
485 [method,ode_check(eqn,ans[1])];
489 (pn_(167),ans:contrib_ode(eqn:x*'diff(y,x)=x^2+y*(1+y),y,x));
491 [method,ode_check(eqn,ans[1])];
495 (pn_(168),ans:contrib_ode(eqn:x*'diff(y,x)-y+y^2=x^(2/3),y,x));
496 [y=x^(2/3)/(x^(1/3)/tanh(3*x^(1/3)+%c)-1/3)];
497 [method,ode_check(eqn,ans[1])];
503 (pn_(169),ans:contrib_ode(eqn:x*'diff(y,x)=a+b*y^2,y,x));
504 [atan(sqrt(b)*y/sqrt(a))/(sqrt(a)*sqrt(b))=log(x)+%c];
506 [y=sqrt(a)*tan(sqrt(a)*sqrt(b)*log(x)+%c*sqrt(a)*sqrt(b))/sqrt(b)];
507 [method,ode_check(eqn,%[1])];
514 (pn_("169ii"),ans:contrib_ode(eqn:x*'diff(y,x)=a+b*y^2,y,x));
515 [log(-((sqrt(-a)*sqrt(b)-b*y)/(b*y+sqrt(-a)*sqrt(b))))/(2*sqrt(-a)*sqrt(b))=log(x)+%c];
517 [y=-((sqrt(-a)*sqrt(b)*%e^(2*sqrt(-a)*sqrt(b)*log(x)+2*%c*sqrt(-a)*sqrt(b))+sqrt(-a)*sqrt(b))/(b*%e^(2*sqrt(-a)*sqrt(b)*log(x)+2*%c*sqrt(-a)*sqrt(b))-b))];
518 [method,ode_check(eqn,%[1])];
526 (pn_("170i"),ans:contrib_ode(eqn:x*'diff(y,x)=a*x^2+y+b*y^2,y,x));
527 [y=sqrt(a)*x*tan(sqrt(a)*sqrt(b)*x+%c)/sqrt(b)];
528 [method,ode_check(eqn,ans[1])];
535 (pn_("170ii"),ans:contrib_ode(eqn:x*'diff(y,x)=a*x^2+y+b*y^2,y,x));
536 [y=sqrt(a)*x*tanh(sqrt(a)*sqrt(-b)*x+%c)/sqrt(-b)];
537 [method,ode_check(eqn,ans[1])];
545 (pn_(171),ans:contrib_ode(eqn:x*'diff(y,x)=a*x^(2*n)+(n+b*y)*y,y,x));
546 [y=sqrt(a)*x^n*tan(sqrt(a)*sqrt(b)*x^n/n+%c)/sqrt(b)];
547 [method,ode_check(eqn,ans[1])];
552 /* 172 Too general */
554 /* 173 Too general */
559 (pn_(174),ans:contrib_ode(eqn:x*'diff(y,x)+a+x*y^2=0,y,x));
560 [y = -((((bessel_y(2,2*sqrt(a)*sqrt(x))-bessel_y(0,2*sqrt(a)*sqrt(x)))*%c
561 +bessel_j(2,2*sqrt(a)*sqrt(x))-bessel_j(0,2*sqrt(a)*sqrt(x)))*sqrt(a)*sqrt(x)
562 -bessel_y(1,2*sqrt(a)*sqrt(x))*%c-bessel_j(1,2*sqrt(a)*sqrt(x)))
563 /((2*bessel_y(1,2*sqrt(a)*sqrt(x))*%c+2*bessel_j(1,2*sqrt(a)*sqrt(x)))*x))];
564 [method,ode_check(eqn,ans[1])];
570 (pn_(175),ans:contrib_ode(eqn:x*'diff(y,x)+(1-x*y)*y=0,y,x));
571 [y=1/(x*(%c-log(x)))];
572 [method,ode_check(eqn,ans[1])];
576 (pn_(176),ans:contrib_ode(eqn:x*'diff(y,x)=(1-x*y)*y,y,x));
577 [(x^2*y-2*x)/(2*y) = %c];
579 [y = 2*x/(x^2-2*%c)];
580 [method,ode_check(eqn,%[1])];
584 (pn_(177),ans:contrib_ode(eqn:x*'diff(y,x)=(1+x*y)*y,y,x));
585 [-((x^2*y+2*x)/(2*y))=%c];
588 [method,ode_check(eqn,%[1])];
594 (pn_(178),ans:contrib_ode(eqn:'diff(y,x)=a*x^2+(1/x-y)*y,y,x));
595 [y = sqrt(a)*(%c*x*sinh(sqrt(a)*x^2/2)+%i*x*cosh(sqrt(a)*x^2/2))/(%i*sinh(sqrt(a)*x^2/2)+%c*cosh(sqrt(a)*x^2/2))];
596 [method,ode_check(eqn,ans[1])];
602 (pn_(179),ans:contrib_ode(eqn:x*'diff(y,x)=x^3+(1+2*x^2)*y+x*y^2,y,x));
603 [y = -((%c*x^3+(2*%c+2)*x)/(%c*x^2+2))];
604 [method,ode_check(eqn,ans[1])];
608 (pn_(180),ans:contrib_ode(eqn:x*'diff(y,x)=y*(1+2*x*y),y,x));
609 [-((x^2*y+x)/y) = %c];
610 ans:first(solve(ans[1],y));
612 [method,ode_check(eqn,ans)];
616 (pn_(181),assume(a>0,b>0),ans:contrib_ode(eqn:x*'diff(y,x)+b*x+(2+a*x*y)*y=0,y,x),forget(a>0,b>0),ans,0);
618 [method,ode_check(eqn,ans[1])];
622 (pn_(182),ans:contrib_ode(eqn:x*'diff(y,x)+a0+a1*x+(a2+a3*x*y)*y=0,y,x),done);
624 /* FIXME: Can't match form solution in testsuite
625 [y = (sqrt(a1)*(%c*kummer_u(-((a0*sqrt(-a1)*sqrt(a3)-a1*a2)/(2*a1)),a2,
626 -2*sqrt(a1)*sqrt(-a3)*x)
627 +kummer_m(-((a0*sqrt(-a1)*sqrt(a3)-a1*a2)/(2*a1)),a2,
628 -2*sqrt(a1)*sqrt(-a3)*x)
630 *dkummer_u(-((a0*sqrt(-a1)*sqrt(a3)-a1*a2)/(2*a1)),a2,
631 -2*sqrt(a1)*sqrt(-a3)*x))
632 -(2*dkummer_m(-((a0*sqrt(-a1)*sqrt(a3)-a1*a2)/(2*a1)),a2,
633 -2*sqrt(a1)*sqrt(-a3)*x)))*sqrt(-a3))
634 /((%c*kummer_u(-((a0*sqrt(-a1)*sqrt(a3)-a1*a2)/(2*a1)),a2,
635 -2*sqrt(a1)*sqrt(-a3)*x)
636 +kummer_m(-((a0*sqrt(-a1)*sqrt(a3)-a1*a2)/(2*a1)),a2,
637 -2*sqrt(a1)*sqrt(-a3)*x))
640 [method,radcan(ode_check(eqn,ans[1]))];
643 /* 183 Riccati - CHECK ME */
644 (pn_(183),ans:contrib_ode(eqn:x*'diff(y,x)+a*x^2*y^2+2*y=b,y,x));
645 [y=(bessel_y(1,-sqrt(a)*sqrt(-b)*x)*%c+bessel_j(1,-sqrt(a)*sqrt(-b)*x))*sqrt(-b)
646 /((bessel_y(0,-sqrt(a)*sqrt(-b)*x)*%c+bessel_j(0,-sqrt(a)*sqrt(-b)*x))*sqrt(a)*x)];
647 [method,ode_check(eqn,ans[1])];
651 assume(not equal(m+n,0));
653 (pn_(184),ans:contrib_ode(eqn:x*'diff(y,x)+x^m+(n-m)*y/2+x^n*y^2=0,y,x));
654 [y = -((%c*x^(n/2+m/2)*sin(2*x^(n/2+m/2)/(n+m))-x^(n/2+m/2)*cos(2*x^(n/2+m/2)/(n+m)))/(x^n*sin(2*x^(n/2+m/2)/(n+m))+%c*x^n*cos(2*x^(n/2+m/2)/(n+m))))];
655 [method,ode_check(eqn,ans[1])];
657 forget(not equal(m+n,0));
661 (pn_(185),ans:contrib_ode(eqn:x*'diff(y,x)+(a+b*x^n*y)*y,y,x));
662 [y = %e^-(a*log(x))/(%c-b*%e^(n*log(x)-a*log(x))/(a-n))];
664 [y=(n-a)/(b*x^n+(%c*n-%c*a)*x^a)];
665 [method,ode_check(eqn,ans[1])];
668 /* 186 - FIXME 2006-12-11 - Runs forever */
669 /* (pn_(186),ans:contrib_ode(eqn:x*'diff(y,x)=a*x^m-b*y-c*x^n*y^2,y,x));
670 [[y='diff(%u,x,1)*x^(1-n)/(%u*c),-'diff(%u,x,2)*c*x^(n-1)-'diff(%u,x,1)*(b*c*x^(n-2)-c*(n-1)*x^(n-2))+%u*a*c^2*x^(2*(n-1)+m-1)=0]];
674 /* 187 - FIXME 2006-12-11 - Runs forever */
675 /* (pn_(187),ans:contrib_ode(eqn:x*'diff(y,x)=2*x-y+a*x^n*(x-y)^2,y,x));
676 [[y=-'diff(%u,x,1)*x^(1-n)/(%u*a),%u*a^2*x^(2*(n-1))*(a*x^(n+1)+2)-'diff(%u,x,1)*(a*x^(n-1)*(-2*a*x^n-1/x)+a*(n-1)*x^(n-2))+'diff(%u,x,2)*a*x^(n-1)=0]];
681 (pn_(188),ans:contrib_ode(eqn:x*'diff(y,x)+(1-a*y*log(x))*y=0,y,x));
682 [y = 1/(x*(%c-a*(-log(x)/x-1/x)))];
683 [method,ode_check(eqn,ans[1])];
689 (pn_(190),ans:contrib_ode(eqn:x*'diff(y,x)=y*(1+y^2),y,x));
690 [-((log(y^2+1)-2*log(y))/2) = log(x)+%c];
692 -((log(y^2+1)-2*log(y))/2) = log(x)+log(%c)/2;
694 y^2/(y^2+1) = %e^(2*(log(x)+log(%c)/2));
696 y^2/(y^2+1) = %c*x^2;
698 [y = -x*sqrt(-%c/(%c*x^2-1)),y = x*sqrt(-%c/(%c*x^2-1))];
699 [method,ode_check(eqn,ans[1]),ode_check(eqn,ans[2])];
703 (pn_(191),ans:contrib_ode(eqn:x*'diff(y,x)+(1-x*y^2)*y=0,y,x));
704 [y=1/(sqrt(2/x+%c)*x)];
705 [method,ode_check(eqn,ans[1])];
709 (pn_(191),ans:contrib_ode(eqn:x*'diff(y,x)+(1-x*y^2)*y=0,y,x));
710 [y = 1/(sqrt(2/x+%c)*x)];
711 [method,ode_check(eqn,ans[1])];
715 assume(not(equal(a,0)),not(equal(a,-1)));
716 '[not equal(a,0),not equal(a,-1)];
717 (pn_(193),ans:contrib_ode(eqn:x*'diff(y,x)=a*y+b*(1+x^2)*y^3,y,x),0);
720 [y=sqrt(a)*sqrt(a+1)*x^a/sqrt(x^(2*a)*((-a-1)*b-a*b*x^2)+%c*a^2+%c*a)];
721 [method,ode_check(eqn,ans[1])];
723 forget(not(equal(a,0)),not(equal(a,-1)));
724 '[not equal(a,0),not equal(a,-1)];
727 (pn_(194),ans:contrib_ode(eqn:x*'diff(y,x)+2*y=a*x^(2*k)*y^k,y,x));
728 [y=(a*(1-k)*x^2/2+%c)^(1/(1-k))/x^2]; /* CHECKME */
733 (pn_(195),ans:contrib_ode(eqn:x*'diff(y,x)=4*(y-sqrt(y)),y,x));
734 [log(sqrt(y)-1)/2=log(x)+%c];
736 sqrt(y)-1 = %e^(2*(log(x)+%c));
738 [y = %e^(4*%c)*x^4+2*%e^(2*%c)*x^2+1];
739 [method,radcan(ode_check(eqn,%[1]))];
743 (pn_(196),ans:contrib_ode(eqn:x*'diff(y,x)+2*y=sqrt(1+y^2),y,x));
744 ['integrate(1/(sqrt(y^2+1)-2*y),y) = log(x)+%c]; /* CHECKME */
749 (pn_(197),ans:contrib_ode(eqn:x*'diff(y,x)=y+sqrt(x^2+y^2),y,x));
750 [x=%c*%e^(x*asinh(y/x)/abs(x))];
754 x = %c*%e^asinh(y/x);
756 log(x/%c) = asinh(y/x);
758 [y = x*sinh(log(x/%c))];
759 [method,ode_check(eqn,%[1])];
765 (pn_(198),ans:contrib_ode(eqn:x*'diff(y,x)=y+sqrt(x^2-y^2),y,x));
766 [x = %c*%e^(x*asin(y/x)/abs(x))];
772 log(x/%c) = asin(y/x);
774 [y = x*sin(log(x/%c))]; /* CHECK ME */
783 (pn_(199),ans:contrib_ode(eqn:x*'diff(y,x)=y+x*sqrt(x^2+y^2),y,x));
791 [method,ode_check(eqn,%)];
796 /* 200 - Another long "result" from ode1_lie */
797 /*(pn_(200),ans:contrib_ode(eqn:x*'diff(y,x)=y-x*(x-y)*sqrt(x^2+y^2),y,x));*/