DSolve validation
- To: mathgroup at smc.vnet.net
- Subject: [mg33989] DSolve validation
- From: Vladimir Bondarenko <vvb at mail.strace.net>
- Date: Thu, 25 Apr 2002 03:00:18 -0400 (EDT)
- Reply-to: Vladimir Bondarenko <vvb at mail.strace.net>
- Sender: owner-wri-mathgroup at wolfram.com
Gentlemen, It's easy to double check the DSolve output here: In[1] := ode1 = y''[x] + x y'[x] == 0; In[2] := sol1 = DSolve[ode1, y[x], x] Out[2] = {{y[x] -> C[2] + Sqrt[Pi/2]*C[1]*Erf[x/Sqrt[2]]}} In[3] := ode1 /. D[sol1, x, x] /. D[sol1, x] Out[3] = {{True}} Life is great! Inspirited with the success, let's consider this ODE. In[4] := ode1 = y''[x] + x y[x] == 0; In[5] := sol1 = DSolve[ode1, y[x], x] Out[5] = {{y[x] -> AiryAi[(-1)^(1/3)*x]*C[1] + AiryBi[(-1)^(1/3)*x]*C[2]}} In[6] := ode1 /. D[sol1, x, x] /. D[sol1, x] Out[6] = {{-(x*AiryAi[(-1)^(1/3)*x]*C[1]) - x*AiryBi[(-1)^(1/3)*x]*C[2] + x*y[x] == 0}} (* Oops! The trick does not work ;-( *) In[7] := ode1 /. D[sol1, x, x] /. D[sol1, x]//FullSimplify Out[7] = {{x*(AiryAi[(-1)^(1/3)*x]*C[1] + AiryBi[(-1)^(1/3)*x]*C[2] - y[x]) == 0}} (* Not great, again *) In[8] := ode1 /. D[sol1, x, x] /. D[sol1, x] // ComplexExpand // FullSimplify Out[8] = {{x*(AiryAi[(-1)^(1/3)*x]*C[1] + AiryBi[(-1)^(1/3)*x]*C[2] - y[x]) == 0}} (* etc etc etc *) 'Fraid, the same double check trouble holds for the hundreds ODEs I have tried 8-( What might be a more or less streamlined way to validate the DSolve solutions? Any module (publicly) available? Any (including halp-baked & raw) ideas & hints? Thank you a lot for your time and efforts in advance. Sincerely, Vladimir Bondarenko