Re: simplifying first-order diff eq solution

*To*: mathgroup at smc.vnet.net*Subject*: [mg46282] Re: simplifying first-order diff eq solution*From*: drbob at bigfoot.com (Bobby R. Treat)*Date*: Fri, 13 Feb 2004 21:56:46 -0500 (EST)*References*: <bvq7gc$5ma$1@smc.vnet.net> <c0fsbg$c2d$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

I get an error in version 5.0.1 (Windows). \!\(\* RowBox[{\(DSolve::"bvfail"\), \(\(:\)\(\ \)\), "\<\"For some branches of the general solution, unable to solve the conditions. \\!\\(\\*ButtonBox[\\\"More?\\\", \ ButtonStyle->\\\"RefGuideLinkText\\\", ButtonFrame->None, \ ButtonData:>\\\"DSolve::bvfail\\\"]\\)\"\>"}]\) Bobby Paul Abbott <paul at physics.uwa.edu.au> wrote in message news:<c0fsbg$c2d$1 at smc.vnet.net>... > In article <bvq7gc$5ma$1 at smc.vnet.net>, > "J.S." <childrenoflessergod at yahoo.com> wrote: > > > Hi, I want to solve a first-order simple non-linear differential > > equation. Incidentally, I even know the solution. Now try to solve this > > using Mathematica: > > > > DSolve[{G'[t] == -( s + t) G[t] + 1 + G[t]^2, G[0] == 0}, G[t], t] > > > > You will get a horrible series of Erfi[], while the answer is simply > > > > s+t - s Exp[t^2 + st]/(1+s Int_{0}^{t} {dt' Exp[t'^2 / 2 + s t']}) > > But Mathematica can, and does, compute the definite integral > > Integrate[Exp[u^2/2 + s u], {u, 0, t}] > > obtaining > > Sqrt[Pi/2] (Erfi[(s + t)/Sqrt[2]] - Erfi[s/Sqrt[2]]) / E^(s^2/2) > > You may find this horrible -- but it is an explicit closed form > expression for the integral, which is the best you can hope for. > > > I am sure Mathematica is intelligent enough to reduce the results to > > this simple form, but how do I do it? > > In general, a closed-form expression in terms of known special functions > is better than a definited integral. > > > For example, why does Mathematica try to express the answer in Erfi[] > > (instead of erf[]), using complex variables? > > Because Erfi is the simplest way of expressing this result. E.g., try > > Integrate[Exp[u^2/2], {u, 0, t}] > > You could express this in terms of Erf using complex variables -- but > why do you want to. It is not "simpler". > > Cheers, > Paul