Re: Solving stiff differential equations
- To: mathgroup at smc.vnet.net
- Subject: [mg84497] Re: Solving stiff differential equations
- From: roland franzius <roland.franzius at uos.de>
- Date: Sat, 29 Dec 2007 20:01:20 -0500 (EST)
- Organization: Universitaet Hannover
- References: <fl4utf$9vb$1@smc.vnet.net>
dkjk at bigpond.net.au wrote: > Hi all, > > I want to solve the following nonlinear ODE > > x'[t] == M - 3 x[t] Sqrt[-M*t + 7/10 + x[t]] > > x[0] == 3/10 > > where M is a very large number (~10^43). > > I tried solving this using > > M = 10^43; > s = NDSolve[{x'[t] == M - 3 x[t] Sqrt[-M t + 7/10 + x[t]], > x[0] == 3/10}, x[t], {t, -10, 10}, WorkingPrecision -> 20] > Plot[Evaluate[x[t] /. s], {t, -10, 10}, PlotRange -> All] > > but I got a lot of errors. Could anyone please advise how I should go > about solving this? Obviously you have a log derivative in your equation D[Sqrt[-M t + 7/10 + x[t]],t] (x'[t]-M)/(2 Sqrt[-M t + 7/10 + x[t]]) Set eq1= D[( - M t +7/10+x[t]) /Sqrt[-M t +7/10 + x[t]] , t] - 3x[t] and replace eq2=eq/.({x[t]->#,x'[t]-> D[#,t]}&)[y[t]^2 -7/10 - M t] y[t]*(3*(-(7/10) + M*t + y[t]^2) + 2*Derivative[1][y][t]) The resulting equation is solvable for y and produces rapidly oscillating functions q[t_,M_,c_]=DSolve[3 (-7/10+M*t+y[t]^2)+2y'[t] == 0,y[t], t][[1]] /. C[1] :> c (2*(-(((3/2)^(2/3)*c*M* AiryAiPrime[(2*(2/3)^(1/3)*(63/40 - (9*M*t)/4))/ (3*(-M)^(2/3))])/(-M)^(2/3)) - ((3/2)^(2/3)*M* AiryBiPrime[(2*(2/3)^(1/3)*(63/40 - (9*M*t)/4))/ (3*(-M)^(2/3))])/(-M)^(2/3)))/ (3*(c*AiryAi[(2*(2/3)^(1/3)*(63/40 - (9*M*t)/4))/(3*(-M)^(2/ 3))] + AiryBi[(2*(2/3)^(1/3)*(63/40 - (9*M*t)/4))/(3*(-M)^(2/3))])) -- Roland Franzius