Re: Solving a DE using Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg90481] Re: Solving a DE using Mathematica
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Thu, 10 Jul 2008 06:38:08 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <g51uce$6tj$1@smc.vnet.net>
Greg wrote: > I'm having problems solving this problem although it should appear pretty straightfoward: > > (-l^2 - m^2 + n^2/(r + 0.016 z)^2) Z[z] + Z''[z] == 0 > > I am solving for Z[z]. These are the lines I use: > > DSolve[Above Equation, Z[z], z] > > I get an odd solution so I do a solution check plugging back in Z[z] and Z''[z] yet I don't get 0. In the above, l,m,n,r are all constants. Since we are looking for an analytic solution, we use using exact coefficients rather than machine-size numbers. Also, we ask for a pure function, which is easier to manipulate and plug back into the original DE. Finally, we check the result with *FullSimplify* since the solution involve special functions. de = (-l^2 - m^2 + n^2/(r + 0.016 z)^2) Z[z] + Z''[z] == 0 de = Rationalize[de] sol = DSolve[de, Z, z] de /. sol[[1]] FullSimplify[%] Regards, -- Jean-Marc In[1]:= de = (-l^2 - m^2 + n^2/(r + 0.016 z)^2) Z[z] + Z''[z] == 0 Out[1]= 2 2 2 n (-l - m + --------------) Z[z] + Z''[z] == 0 2 (r + 0.016 z) In[2]:= de = Rationalize[de] Out[2]= 2 2 2 n (-l - m + ----------) Z[z] + Z''[z] == 0 2 z 2 (r + ---) 125 In[3]:= sol = DSolve[de, Z, z] Out[3]= 1 2 {{Z -> Function[{z}, C[1] WhittakerM[0, -(-) I Sqrt[-1 + 15625 n ], 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z] + 1 2 C[2] WhittakerW[0, -(-) I Sqrt[-1 + 15625 n ], 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z]]}} In[4]:= de /. sol[[1]] Out[4]= 2 2 1 1 2 4 (l + m ) C[1] (-(((- - - I Sqrt[-1 + 15625 n ]) 2 2 1 2 WhittakerM[1, -(-) I Sqrt[-1 + 15625 n ], 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z]) / 2 2 2 2 2 (125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z) ) + 1 1 1 2 - (- WhittakerM[0, -(-) I Sqrt[-1 + 15625 n ], 2 2 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z] + 1 1 2 ((- - - I Sqrt[-1 + 15625 n ]) 2 2 1 2 WhittakerM[1, -(-) I Sqrt[-1 + 15625 n ], 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z]) / 2 2 2 2 (125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z)) + 1 1 2 ((- - - I Sqrt[-1 + 15625 n ]) 2 2 1 1 ((- - ---------------------------------------) 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z 1 2 WhittakerM[1, -(-) I Sqrt[-1 + 15625 n ], 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z] + 3 1 2 ((- - - I Sqrt[-1 + 15625 n ]) 2 2 1 2 WhittakerM[2, -(-) I Sqrt[-1 + 15625 n ], 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z]) / 2 2 2 2 (125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z))) / 2 2 2 2 (125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z)) + 2 2 2 n (-l - m + ----------) (C[1] 2 z 2 (r + ---) 125 1 2 WhittakerM[0, -(-) I Sqrt[-1 + 15625 n ], 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z] + 1 2 C[2] WhittakerW[0, -(-) I Sqrt[-1 + 15625 n ], 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z]) + 2 2 1 2 4 (l + m ) C[2] (WhittakerW[1, -(-) I Sqrt[-1 + 15625 n ], 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z] / 2 2 2 2 2 (125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z) + 1 1 1 2 - (- WhittakerW[0, -(-) I Sqrt[-1 + 15625 n ], 2 2 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z] - 1 2 WhittakerW[1, -(-) I Sqrt[-1 + 15625 n ], 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z] / 2 2 2 2 (125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z)) - 1 1 ((- - ---------------------------------------) 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z 1 2 WhittakerW[1, -(-) I Sqrt[-1 + 15625 n ], 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z] - 1 2 WhittakerW[2, -(-) I Sqrt[-1 + 15625 n ], 2 2 2 2 2 125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z] / 2 2 2 2 (125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z)) / 2 2 2 2 (125 Sqrt[l + m ] r + 2 Sqrt[l + m ] z)) == 0 In[5]:= FullSimplify[%] Out[5]= True