Re: Unsolvable ODE
- To: mathgroup at smc.vnet.net
- Subject: [mg113112] Re: Unsolvable ODE
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Wed, 13 Oct 2010 12:39:45 -0400 (EDT)
- References: <201010120830.EAA19575@smc.vnet.net>
István Zachar wrote:
> Dear All,
>
> Consider the following set of ODEs which Mathematica can solve easily:
>
> In[2]:= Solve[{
> 0 == f - 2 p m + q a + q b,
> 0 == p m - q a - kA a y2,
> 0 == p m - q b - kB b (x1 + x2 + y1),
> 0 == -kB b x1 + 2 kB b x2,
> 0 == kB b x1 - dtemp x2 - kB b x2,
> 0 == -kB b y1 + 2 kA a y2,
> 0 == kB b y1 - dtemp y2 - kA a y2},
> {m, a, b, x1, x2, y1, y2}]
>
> Out[2]= {{m -> (f kB + dtemp q)/(kB p), x1 -> (2 f)/(3 dtemp),
> x2 -> f/(3 dtemp), y1 -> 0, y2 -> 0, a -> (f kB + dtemp q)/(kB q),
> b -> dtemp/kB}, {m -> (f kA + 3 dtemp q)/(3 kA p), x1 -> 0, x2 -> 0,
> y1 -> -((2 f kA q)/(kB (f kA - 3 dtemp q))), y2 -> f/(3 dtemp),
> a -> dtemp/kA,
> b -> (-f kA + 3 dtemp q)/(3 kA q)}, {m -> (
> f + (dtemp q)/kA + (dtemp q)/kB)/(2 p),
> x1 -> (-f + (3 dtemp q)/kA - (3 dtemp q)/kB)/(3 dtemp),
> x2 -> (-f + (3 dtemp q)/kA - (3 dtemp q)/kB)/(6 dtemp),
> y1 -> (f kA kB + dtemp kA q - dtemp kB q)/(dtemp kA kB),
> y2 -> (f - (dtemp q)/kA + (dtemp q)/kB)/(2 dtemp), a -> dtemp/kA,
> b -> dtemp/kB}}
>
> Now rearrange some terms in the equations, but keep the complexity and
> order at the same level. Strangely, Mathematica 7.0.1.0 (and 6.0 as well)
> seems to have some problem solving it for all the variables.
>
> In[1]:= Solve[{
> 0 == f - 2 m p + a q + b q,
> 0 == m p - a q - a kA (x1 + x2 + y2),
> 0 == m p - b q - b kB y1,
> 0 == -a kA x1 + 2 a kA x2,
> 0 == a kA x1 - dtemp x2 - a kA x2,
> 0 == -b kB y1 + 2 a kA y2,
> 0 == b kB y1 - dtemp y2 - a kA y2
> }, {m, a, b, x1, x2, y1, y2}]
>
> During evaluation of In[1]:= Solve::svars: Equations may not give
> solutions for all "solve" variables. >>
>
> Out[1]= {{m -> (f + b q + (dtemp q)/kA)/(2 p),
> x1 -> (f + 3 b q - (3 dtemp q)/kA)/(6 dtemp),
> x2 -> (f + 3 b q - (3 dtemp q)/kA)/(12 dtemp),
> y1 -> (f - b q + (dtemp q)/kA)/(2 b kB),
> y2 -> (f - b q + (dtemp q)/kA)/(4 dtemp), a -> dtemp/kA}}
>
> Note that the solution contains 'b', thus the whole ODE set is not
> solved for every variable, just as the error message states. Now I
> have a very strong feeling about this ODE set being equivalent to the
> first one, and being soluble for all variables. Does anyone have any
> idea what could go wrong here? Is it the internal algorithm of Solve?
> Can anyone prove analytically that this latter ODE system cannot be
> solved for all variables WITHOUT using Mathematica?
>
> Istvan
First, these are systems of algebraic, not differential, equations.
The solutions are readily seen to satisfy their respective systems. We
see this below. Rewriting the two sets of polynomials n Mathematica
InputForm we have
p1 = {f - 2*m*p + a*q + b*q, m*p - a*q - a*kA*y2,
m*p - b*q - b*kB*(x1 + x2 + y1),
-(b*kB*x1) + 2*b*kB*x2, b*kB*x1 - dtemp*x2 - b*kB*x2,
-(b*kB*y1) + 2*a*kA*y2, b*kB*y1 - dtemp*y2 - a*kA*y2};
p2 = {f - 2*m*p + a*q + b*q, m*p - a*q - a*kA*(x1 + x2 + y2),
m*p - b*q - b*kB*y1,
-(a*kA*x1) + 2*a*kA*x2, -(dtemp*x2) - a*kA*x2, -(b*kB*y1) + 2*a*kA*y2,
-(dtemp*y2) - a*kA*y2};
vars = {m, a, b, x1, x2, y1, y2};
In[37]:= InputForm[sol1 = Solve[p1==0, vars]]
Out[37]//InputForm=
{{m -> (f*kA*kB + dtemp*kA*q + dtemp*kB*q)/(2*kA*kB*p), a -> dtemp/kA,
b -> dtemp/kB, x1 -> (-(f*kA*kB) - 3*dtemp*kA*q + 3*dtemp*kB*q)/
(3*dtemp*kA*kB), x2 -> (-(f*kA*kB) - 3*dtemp*kA*q + 3*dtemp*kB*q)/
(6*dtemp*kA*kB), y1 -> (f*kA*kB + dtemp*kA*q -
dtemp*kB*q)/(dtemp*kA*kB),
y2 -> (f*kA*kB + dtemp*kA*q - dtemp*kB*q)/(2*dtemp*kA*kB)},
{m -> (f*kB + dtemp*q)/(kB*p), a -> (f*kB + dtemp*q)/(kB*q), b ->
dtemp/kB,
x1 -> (2*f)/(3*dtemp), x2 -> f/(3*dtemp), y1 -> 0, y2 -> 0},
{m -> (f*kA + 3*dtemp*q)/(3*kA*p), a -> dtemp/kA,
b -> (-(f*kA) + 3*dtemp*q)/(3*kA*q), x1 -> 0, x2 -> 0,
y1 -> (-2*f*kA*q)/(kB*(f*kA - 3*dtemp*q)), y2 -> f/(3*dtemp)}}
In[38]:= InputForm[sol2 = Solve[p2==0, vars]]
Solve::svars: Equations may not give solutions for all "solve" variables.
Out[38]//InputForm=
{{m -> (f*kA - dtemp*q + b*kA*q)/(2*kA*p), a -> -(dtemp/kA),
x1 -> (-(f*kA) - 3*dtemp*q - 3*b*kA*q)/(6*dtemp*kA),
x2 -> (-(f*kA) - 3*dtemp*q - 3*b*kA*q)/(12*dtemp*kA),
y1 -> (f*kA - dtemp*q - b*kA*q)/(2*b*kA*kB),
y2 -> (-(f*kA) + dtemp*q + b*kA*q)/(4*dtemp*kA)}}
Now we check that the two sets of solutions are valid.
In[39]:= Together[p1/.sol1]
Out[39]= {{0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}}
In[40]:= Together[p2/.sol2]
Out[40]= {{0, 0, 0, 0, 0, 0, 0}}
That is the consistency check. It shows, among other things, that the
second set of polynomials was indeed underdetermined.
Daniel Lichtblau
Wolfram Research
- References:
- Unsolvable ODE
- From: István Zachar <zac@freemail.hu>
- Unsolvable ODE