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