MathGroup Archive 2011

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

Search the Archive

Re: NDSolve solution does not fulfill boundary condition ??

  • To: mathgroup at smc.vnet.net
  • Subject: [mg121121] Re: NDSolve solution does not fulfill boundary condition ??
  • From: Peter Pein <petsie at dordos.net>
  • Date: Mon, 29 Aug 2011 07:43:39 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <j3fg96$fb4$1@smc.vnet.net>

Am 29.08.2011 09:48, schrieb Alex:
> Hello everybody,
> 
> I use Mathematica 7 and try to solve and plot a 2nd order ODE like this:
> 
> sol = NDSolve[{0 == 4800*O2''[x] + 1500*Exp[-(100*x)^2] - 2000*O2[x],
> O2'[-0.5] == 0, O2'[0.5] == 0}, O2, {x, -1, 1}]
> Plot[O2[x] /. sol, {x, -1, 1}, PlotRange -> All]
> 
> The solution looks ok, i.e. the slope of the solution is 0 at 0.5 and
> -0.5, as required by the boundary conditions. But if I slightly change
> the parameter values from 1500 to 1000 like this:
> 
> sol = NDSolve[{0 == 4800*O2''[x] + 1000*Exp[-(100*x)^2] - 2000*O2[x],
> O2'[-0.5] == 0, O2'[0.5] == 0}, O2, {x, -1, 1}]
> 
> I get a solution with slope=0 at -0.5, but with a positive slope at
> 0.5 !!??
> 
> How can this be ?  What am I doing wrong ?
> 
> Many thanks,
> 
> axel
> 

Hi Axel,

your solution is an even function. Try solving from 0 to 1 and define

o2[x_]=O2[Abs[x]] /. First[NDSolve[...,Method->"ImplicitRungeKutta"]]

and keep in mind you're using inexact numbers, or use DSolve[{...}, x]
in place of NDSolve[{...}, {x, -1, 1}].

O2'[{-1,1}/2] /. First[
  DSolve[{0 == 4800*O2''[x] + 1500*Exp[-(100*x)^2] - 2000*O2[x],
           O2'[-(1/2)] == 0, O2'[1/2] == 0}, O2, x]]

will give you exactly {0, 0}


Peter




  • Prev by Date: Re: Plot Manipulate Table
  • Next by Date: Re: NDSolve solution does not fulfill boundary condition
  • Previous by thread: Re: NDSolve solution does not fulfill boundary condition
  • Next by thread: Re: NDSolve solution does not fulfill boundary condition ??