 |
|
List Archives > 
Maple User Group List Archive > 
Archive by date > 
This Month By Date > 
This Month By Topic
[MUG] dsolve does not find second solution
| [MUG] dsolve does not find second solution |
|
Author: Helmut Kahovec
Posted: Mon, 16 Dec 2002 12:26:41 +0100
|
>> From: Helmut Kahovec "helmut.kahovec"
Dear Maple users,
One of my students found a bug in dsolve(). It behaves the same in
Maple7 and Maple8. The following Maple7 session shows that bug.
> restart;
> infolevel[dsolve]:=10;
infolevel[dsolve] := 10
> ode1:=diff(y(x),x)+(4*x+3*y(x)+1)/(3*x+2*y(x)+1);
/d \ 4 x + 3 y(x) + 1
ode1 := |-- y(x)| + ----------------
\dx / 3 x + 2 y(x) + 1
> sol1:=dsolve(ode1,y(x));
Methods for first order ODEs:
Trying to isolate the derivative dy/dx...
Successful isolation of dy/dx
--- Trying classification methods ---
trying a quadrature
trying 1st order linear
trying Bernoulli
trying separable
trying inverse linear
trying homogeneous types:
trying homogeneous C
trying homogeneous types:
trying homogeneous D
<- homogeneous successful
<- homogeneous successful
2 2
3/2 (x + 1) _C1 - 1/2 sqrt((x + 1) _C1 + 4)
sol1 := y(x) = 1 - ---------------------------------------------
_C1
There should be a second solution, which is missing:
> sol2:=y(x)=1-(3/2*(x+1)*_C1+1/2*((x+1)^2*_C1^2+4)^(1/2))/_C1;
2 2
3/2 (x + 1) _C1 + 1/2 sqrt((x + 1) _C1 + 4)
sol2 := y(x) = 1 - ---------------------------------------------
_C1
> odetest(sol1,ode1);
0
> odetest(sol2,ode1);
0
We can produce both solutions if we first change coordinates
appropriately:
> with(PDEtools):
> T:={x=t-1,y(x)=z(t)+1};
T := {y(x) = z(t) + 1, x = t - 1}
> ode2:=dchange(T,ode1);
/d \ 4 t + 3 z(t)
ode2 := |-- z(t)| + ------------
\dt / 3 t + 2 z(t)
> dsolve(ode2,z(t));
Methods for first order ODEs:
Trying to isolate the derivative dz/dt...
Successful isolation of dz/dt
--- Trying classification methods ---
trying a quadrature
trying 1st order linear
trying Bernoulli
trying separable
trying inverse linear
trying homogeneous types:
trying homogeneous D
<- homogeneous successful
2 2
- 3/2 t _C1 - 1/2 sqrt(t _C1 + 4)
z(t) = -----------------------------------,
_C1
2 2
- 3/2 t _C1 + 1/2 sqrt(t _C1 + 4)
z(t) = -----------------------------------
_C1
The inverse transformation gives the same two solutions as before:
> Tinv:={t=x+1,z(t)=y(x)-1};
Tinv := {z(t) = y(x) - 1, t = x + 1}
> sol12:=op(map(isolate,subs(Tinv,[%%]),y(x)));
sol12 :=
2 2
- 3/2 (x + 1) _C1 - 1/2 sqrt((x + 1) _C1 + 4)
y(x) = ----------------------------------------------- + 1,
_C1
2 2
- 3/2 (x + 1) _C1 + 1/2 sqrt((x + 1) _C1 + 4)
y(x) = ----------------------------------------------- + 1
_C1
> map(
normal,
zip(
`-`,
map(subs,[sol2,sol1],y(x)), # you may have to use [sol1,sol2],
map(subs,[sol12],y(x)) # instead
)
);
[0, 0]
Kind regards,
Helmut
|
[View Complete Thread]
Previous by date: [MUG] Re: Forcing Maple Output with Simplifying, Maple User Group
Next by date: [MUG] Nargs, PierLuigi Zezza
Previous thread: [MUG] Two bugs in evalapply(), Helmut Kahovec
Next thread: [MUG] Nargs, PierLuigi Zezza
|
|
|