#### 7.53 Bug in dsolve, Maple V.4 (24.5.96)

I found a bug in Maple `V-4:`

when you use dsolve with initial conditions, and when there are
two or more values of the constants that can be found, Maple gives just one solution.
Example

> A:=A0*(1-ksi(t)):Equ:=diff(A,t)=-k*sqrt(A):
> dsolve({Equ,ksi(0)=0},ksi(t));
2 2 1/2
t k + 4 t k A0
ksi(t) = - 1/4 -------------------
A0

But there are two solutions.

The workaround for this bug is to patch the end of ``dsolve/consts`:`

...
csol := solve(eqns, consts);
if csol = NULL then NULL
else
csol:={csol};
if nops(csol)=1 then
Solns := subs(op(csol), Solns);
else Solns := map(subs,csol,op(Solns));
fi;
if (type(solns, 'set') or type(Solns,`set`)) then
RETURN({Solns});
else RETURN(Solns);
fi
fi end:

But to use this patch, you must unprotect dsolve.

>unprotect(dsolve);with(libphys):
> dsolve({Equ,ksi(0)=0},ksi(t));
2 2 1/2 2 2 1/2
t k + 4 t k A0 t k - 4 t k A0
{ksi(t) = - 1/4 -------------------, ksi(t) = - 1/4 -------------------}
A0 A0

The bug is removed with Maple V Release 5. (U. Klein)

There is indeed a bug in dsolve (R4), but the problem is not that only one solution is
reported for the initial value problem given by Alain Leroux. The problem is that the wrong
solution is reported!

The initial value problem has a unique solution (locally, - by the general theorem on
uniqueness).

Consider the following two simpliﬁed versions:

equ1:=diff(x(t),t)=sqrt(1-x(t)):
dsolve( {equ1, x(0)=0}, x(t));
x(t)= -1/4*t^2+t
# This solution is correct
equ2:= -diff(x(t),t)= -sqrt(1-x(t)):
dsolve( {equ2, x(0)=0}, x(t));
x(t)= -1/4*t^2-t

The last solution is obviously incorrect, as equ2 is equivalent to equ1. That the
correct solution can be joined with the constant solution \(x=1\) at \(t=2\) is irrelevant in this
context.

Try this one

\[ y(x)''+2/x y(x)' - m^2 y(x)=0 \]

the solution in R4 is mixed exponentials and hyperbolics. Go ﬁgure! Why not just return
hyperbolics or exponentials as R2 and R3 did.