Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2002
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2002

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: DSolve validation

  • To: mathgroup at smc.vnet.net
  • Subject: [mg34016] Re: DSolve validation
  • From: "Carl K. Woll" <carlw at u.washington.edu>
  • Date: Fri, 26 Apr 2002 03:27:50 -0400 (EDT)
  • Organization: University of Washington
  • References: <aa8b0q$hbs$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Vladimir,

You forgot to add the replacement rule sol1 ! So, y[x] was never replaced by
the solution.

By the way, a simpler way to verify your result is to use DSolve to solve
for y and not y[x], as in the following example:

ode1 = y''[x] + x*y[x] == 0;
sol1 = DSolve[ode1, y, x];

Then, to check your solution all you would need to do is use the replacement
rule sol1:

In[12]:=
FullSimplify[ode1 /. sol1]
Out[12]=
{True}

Carl Woll
Physics Dept
U of Washington

"Vladimir Bondarenko" <vvb at mail.strace.net> wrote in message
news:aa8b0q$hbs$1 at smc.vnet.net...
> 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
>
>
>




  • Prev by Date: Re: DSolve validation
  • Next by Date: Aligned Axes Labels on Plot3D
  • Previous by thread: Re: DSolve validation
  • Next by thread: Re: DSolve validation