Re: Boundary value problem with NDSolve
- To: mathgroup at smc.vnet.net
- Subject: [mg27444] Re: [mg27414] Boundary value problem with NDSolve
- From: Reza Malek-Madani <research at usna.edu>
- Date: Sun, 25 Feb 2001 20:55:49 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
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. ------------------------------------------------------------------------- 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 usna.edu -------------------------------------------------------------------------- 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. > > > >