DSolve initial conditions

*To*: mathgroup at smc.vnet.net*Subject*: [mg13614] DSolve initial conditions*From*: "Richard W. Klopp" <rwklopp at unix.sri.com>*Date*: Fri, 7 Aug 1998 03:08:16 -0400*Organization*: SRI International*Sender*: owner-wri-mathgroup at wolfram.com

Dear List, I've run into a behavior of DSolve that I think is a little strange, and wonder if there's (a) a good explanation of the behavior and (b) a nice work-around. I ask DSolve to solve the following differential equation with initial condition and get the answer I expect, no problemo, to wit: In[3]:= DSolve[{y'[t] == y[t] E^(-a t), y[0] == b}, y[t], t] // InputForm Out[3]//InputForm= {{y[t] -> b*E^(a^(-1) - 1/(a*E^(a*t)))}} Now, if I add the initial condition to the differential equation, keep the initial condition, and repeat the DSolve, I get an error message and a different answer than the above. (By the way, version 2.2 gives the same answer, but without the error message.) Mathematica appears not to recognize y[0] - b = 0. Why the (to me) funny answer, and why an answer despite the error message? In[4]:= DSolve[{y'[t] + b == y[t] E^(-a t) + y[0], y[0] == b}, y[t], t] // InputForm DSolve::"nvld": "The description of the equations appears to be ambiguous or invalid." Out[4]//InputForm= {{y[t] -> (a*b*E^a^(-1) + b*ExpIntegralEi[1/(a*E^(a*t))] - ExpIntegralEi[1/(a*E^(a*t))]*y[0] + ExpIntegralEi[a^(-1)]*(-b + y[0]))/ (a*E^(1/(a*E^(a*t))))}} Thanks so much, Rich Klopp SRI International