MathGroup Archive 2001

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

Search the Archive

Re: Boundary value problem with NDSolve

  • To: mathgroup at
  • Subject: [mg27444] Re: [mg27414] Boundary value problem with NDSolve
  • From: Reza Malek-Madani <research at>
  • Date: Sun, 25 Feb 2001 20:55:49 -0500 (EST)
  • Sender: owner-wri-mathgroup at

Dear Ronehwa:  NDSolve is intended for solving nonlinear initial value
problems for Ordinary Differential Equations. Your hyperbolic PDE can be
solved by Mathematica using the characteristics method, but you need to
write your own code within this system. I addressed this problem in a book
I published in 1998 called "Advanced Engineering Mathematics" (Addison
Wesley). Chapters 12 and 13 of Volume II are dedicated to using
Mathematica to solve wave propagation problems for hyperbolic PDEs. It
turns out that not only you can use Mathematica to solve linear
hyperbolic PDEs (and determine Riemann Invariants), it is an effective
tool for applying the characteristics method for solving nonlinear PDEs
like Burgers equation. 

I would be happy to talk about the code specifically designed for your
problem if Mathematica is still the tool you want to use.


Reza Malek-Madani               Director of Research
Research Office, MS 10m         Phone: 410-293-2504 (FAX -2507)
589 McNair Road                 DSN:      281-2504
U.S. Naval Academy              Nimitz Room 17 in ERC
Annapolis MD 21402-5031         Email: research at


On Sun, 25 Feb 2001, ronehwa wrote:

> Hi Dear All,
> Consider the Following question:
> eq1=D[f[z,t],t]+v D[f[z,t],z]
> eq2=D[g[z,t],t]-v D[g[z,t],z]
> twowave=NDSolve[ { eq1 == 0,eq2 == 0,
>                              f[z,0] == z+0.32*132/(1-0.32^2), g[z,0]
> == -z+132/(1-0.32^2),
>                              f[0,t] == 0.32*g[0,t], 0.32*f[100,t] ==
> g[100,t] },
>                              {f,g},{z,0,100},{t,0,80}] ;
> eq1==0 represents f[z,t] is a right-going propagation wave,
>  and eq2==0 represents g[z,t] is a left propagation wave.
> v is the propagation velocity.
> At the boundary z=100, the right-going wave refects 32% its amount and turn
> left to propagate,
> At the boundary z=0, the left-going wave also refects 32% its amount and
> turn right to propagate.
> After executing twowave, the mathematica 4.0 return the following message:
> "NDSolve::"bcart": "Warning: An insufficient number of boundary conditions
> have been specified. Artificial boundary effects may be present in the
> solution."
> I think the key to the question should be the boundary condition. How can I
> set the the boundary condition properly?
> Please help me solve this problem, I will deeply appreciate your help.
> ronehwa.

  • Prev by Date: Re: Integration problem
  • Next by Date: Re: Re: A bug of Integrate[] in Mathematica 4.1 (and 4.0)
  • Previous by thread: Boundary value problem with NDSolve
  • Next by thread: Re: export eps with fonts 4.01?