       Re: NDSolve and Systems of DEs

• To: mathgroup at smc.vnet.net
• Subject: [mg74187] Re: NDSolve and Systems of DEs
• From: dh <dh at metrohm.ch>
• Date: Wed, 14 Mar 2007 03:41:20 -0500 (EST)
• References: <et5pgb\$kao\$1@smc.vnet.net>

```
Hi Matteo,

here is you problem with corrected syntax:

eqs={

D[p[x,t],t]==k D[ p[x,t],{x,2}],

D[n[x,t],t]==k D[ p[x,t],{x,2}],

D[ El[x,t],t]==p[x,t]-n[x,t],

p[x,0]== 10*UnitStep[-x],p[100,t]==0,p[-100,t]==10,

n[x,0]==10*UnitStep[x],n[100,t]==10,n[-100,t]==0,

El[x,0]==0

};

k=1;

NDSolve[eqs,{p[x,t],n[x,t], El[x,t]},{x,-100,100},{t,0,1}]

However, nothe that it is not very clever to use the non-continuous

UnitStep function in a numerical DE. Better use a continuos

differentiable function like e.g. ArcTan.

Daniel

e-touch at libero.it wrote:

> Hello everybody!

> In order to better understand the behaviour of NDSolve, I decided to try to=

>  solve a more simple system of equations...take a look here

>

> eq1--d/dt p[x,t]==== k dd/dx2 p[x,t]

> eq2--d/dt n[x,t]==== k dd/dx2 n[x,t]

> eq3--d/dx El[x,t]====p[x,t]-n[x,t]

> with:

> p[x,0]====10*UnitStep[-x]; p[100,t]====0; p[-100,t]====10;

> n[x,0]====10*UnitStep[x]; n[100,t]====10; n[-100,t]====0;

> El[x,0]====0;

>

> Eq1 and Eq2 are simple diffusion equations and El[x,t] it's just a function=

>  that I tried to couple with the other two...

> All I get are error messages...

> "NDSolve::pdord: Some of the functions have zero differential order so the =

> \

> equations will be solved as a system of differential-algebraic equations."

> "NDSolve::bcart: Warning: An insufficient number of boundary conditions hav=

> e \

> been specified for the direction of independent variable x. Artificial \

> boundary effects may be present in the solution."

> "NDSolve::icfail: Unable to find initial conditions which satisfy the resid=

> ual \

> function within specified tolerances.  Try giving initial conditions for bo=

> th \

> values and derivatives of the functions."

>

> The strange thing is that if I derive the funcion El[x,t] respect to time i=

> eq3--d/dt El[x,t]====p[x,t]-n[x,t];

> El[x,0]====0;

> ...it works!!!

> Could anyone explain this to me???

> Thanks everybody

> Matteo

>

>

>

> ------------------------------------------------------

> Leggi GRATIS le tue mail con il telefonino i-mode=99 di Wind

> http://i-mode.wind.it13mar07

>

>

```

• Prev by Date: Re: drawing with Mathematica
• Next by Date: fill circle while using circle command
• Previous by thread: NDSolve and Systems of DEs
• Next by thread: draw question 2 (cusp-like curve)