MathGroup Archive 2011

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

Search the Archive

Re: NDSolve issues with initial and boundary conditions (corrected

  • To: mathgroup at smc.vnet.net
  • Subject: [mg119254] Re: NDSolve issues with initial and boundary conditions (corrected
  • From: "Kevin J. McCann" <kjm at KevinMcCann.com>
  • Date: Fri, 27 May 2011 06:12:22 -0400 (EDT)
  • References: <irinec$rgn$1@smc.vnet.net> <4DDCE662.1000701@KevinMcCann.com> <irk3gt$77h$1@smc.vnet.net>

Arturo,

As near as I can tell, the problem occurs because you have specified the 
"initial" conditions at two different points: t=L for p0 and g, and t=0 
for h. I tried running your code with h[L]=0, and all is well. My guess 
is that the numerical techniques that try to solve your sort of boundary 
value problem are having difficulties. Perhaps someone who is more 
familiar with the numerics can weigh in on this.

Kevin


On 5/25/2011 7:31 PM, Arturo Amador wrote:
> I am sorry, here is the message without the In[] Out[] labels and with
> the missing definitions:
>
> Hi,
>
> Sorry for the previous message, it had some weird characters I have
> corrected it and resend it.
>
> I am having some issues when trying to solve a system of three coupled
> differential equations numerically using NDSolve. I am trying to specify
> boundary conditions for two of the variables in the same point (point at
> L) and a boundary condition for the last variable   at zero. The
> mathematica code is:
>
>
> vd[x_]:=1/(2^(x+1) \[Pi]^(x/2) Gamma[x/2]) ;
> factorp[t_]:=(- 2 (Lambda Exp[t])^5 vd[3])/(3 * 8 g[t]^2);
> factorg[t_]:=  (2 (Lambda Exp[t])^5 vd[3])/3;
> factorh[t_]:=-((2 (Lambda Exp[t])^5 vd[3])/3 );
>
> vacuumlinearrhsp = (-((4 E^(-4 t) Sqrt[E^(2 t) Lambda^2] (-1 + n) g[t]^2)/ Lambda^4) - (12 g[t]^2)/(E^(2 t) Lambda^2 + 16 g[t]^2 p0[t])^(3/2)) factorp[t]
>
> vacuumcuadraticrhsg = ((24 E^(-6 t) Sqrt[E^(2 t) Lambda^2] (-1 + n) g[t]^4)/Lambda^6 + (216 g[t]^4)/(E^(2 t) Lambda^2 + 16 g[t]^2 p0[t])^(5/2)) factorg[t]
>
> vacuumcubicrhsh =(-((160 E^(-8 t) Sqrt[E^(2 t) Lambda^2] (-1 + n) g[t]^6)/Lambda^8) - (4320 g[t]^6)/(E^(2 t) Lambda^2 + 16 g[t]^2 p0[t])^(7/2)) factorh[t]
>
> (*Declarations*)
> Lambda = Sqrt[5] msig;
>
> L = -17090/10000;
> msig = 400;
>
> mp = 0;
> fp = 93;
>
> lambda = 2 (msig^2 - mp^2)/fp^2;
> gk0 = (lambda/24)^(1/2);
> pk0 = 1/2 fp^2;
>
> n = 4;
>
>
> sol = NDSolve[{D[p0[t], t] == vacuumlinearrhsp, 4 D[g[t]^2, t] + 3 h[t] D[p0[t], t] == vacuumcuadraticrhsg, D[h[t], t] == vacuumcubicrhsh, p0[L] == pk0, g[L]^2 == gk0^2,  h[0] == 0}, {p0, g, h}, {t, L, 0}, Method ->  {StiffnessSwitching,   Method ->  {ExplicitRungeKutta, Automatic}}];
>
> with output:
>
> Power::infy: Infinite expression 1/0. encountered.>>
>
> Infinity::indet: Indeterminate expression (0. Sqrt[5] ComplexInfinity)/\[Pi]^2 encountered.>>
>
> Power::infy: Infinite expression 1/0.^2 encountered.>>
>
> Infinity::indet: Indeterminate expression (0. Sqrt[5] ComplexInfinity)/\[Pi]^2 encountered.>>
>
> Power::infy: Infinite expression 1/0. encountered.>>
>
> General::stop: Further output of Power::infy will be suppressed during this calculation.>>
> Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered.>>
> General::stop: Further output of Infinity::indet will be suppressed during this calculation.>>
> NDSolve::ndnum: Encountered non-numerical value for a derivative at t ==-1.709.>>
>
> I am sure there is no singularity. I am getting this output no matter
> what value I am giving for h[0], as long as I specify the boundary
> condition in a point that is not L, it gives me this same error message.
> I have tried h[0.9L] and still the same. When h[t]=0 The system
> reduces to this:
>
> sol = NDSolve[{D[p0[t], t] == (Lambda Exp[t])^5/(24 Pi^2) ( (n - 1)/(Lambda Exp[t])^3 +3/((Lambda Exp[t])^2 + 16 p0[t] g[t]^2)^(3/2)), D[g[t]^2, t] == ((Lambda Exp[t])^5 * g[t]^4 )/(2 Pi^2) ((n - 1)/(Lambda Exp[t])^5 + 9/((Lambda Exp[t])^2 + 16 p0[t] g[t]^2)^(5/2)), p0[L] == pk0,  g[L]^2 == gk0^2}, {p0, g}, {t, L, 0}, Method ->  {StiffnessSwitching,   Method ->  {ExplicitRungeKutta, Automatic}}];
>
> For which I get nice solutions.
>
>
>
> Thanks in advance
>
>
>
>
>> You have functions factorp[t], factorg[t], and factorh[t] in your code without definitions.
>>
>> It would be a lot easier for us to cut and paste your stuff if you left off the In[] Out[] labels.
>>
>> Kevin
>> On 5/25/2011 6:59 AM, Arturo Amador wrote:
>>> Hi,
>>>
>>> Sorry for the previous message, it had some weird characters I have
>>> corrected it and resend it.
>>>
>>> I am having some issues when trying to solve a system of three coupled
>>> differential equations numerically using NDSolve. I am trying to specify
>>> boundary conditions for two of the variables in the same point (point at
>>> L) and a boundary condition for the last variable at zero. The
>>> mathematica code is:
>>>
>
>


  • Prev by Date: Re: Simple integral
  • Next by Date: Re: Problem combining patterns
  • Previous by thread: Re: NDSolve issues with initial and boundary conditions (corrected
  • Next by thread: Filtering of the higher frequency terms.