MathGroup Archive 2003

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

Search the Archive

NDSolve problem - solution does not satisfy boundary conditions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg41054] NDSolve problem - solution does not satisfy boundary conditions
  • From: "Martin Manscher" <please.respond at in.newsgroup>
  • Date: Wed, 30 Apr 2003 04:23:48 -0400 (EDT)
  • Organization: UNI-C
  • Sender: owner-wri-mathgroup at wolfram.com

I am trying to solve a nonlinear initial value problem numerically using
NDSolve from Mathematica 3.0. The differential equation contains
fourth-order space derivatives and first-order time derivatives. The
function evolving is a function of one space coordinate and time; b(z,t).
The I specify an initial value b(z,0) and boundary conditions b(0,t) and
b(L/2,t), which are consistent. I know that there is a solution, since this
is merely a first step to test the method used in a paper I have read. In
the paper, the solution evolved essentially to the effect of increasing the
initial disturbance 0.5*Cos[2*Pi*z/L] smoothly in about 6 time units. The
boundary values are supposed to kee the solution periodic.

However, the solution produced by NDSolve does not satisfy the boundary
condition Derivative[1, 0][b][0, t] == 0, but develops a finite slope almost
immediately. I have tried all sorts of remedies, such as forcing Gear's
method, increasing WorkingPrecision, DifferenceOrder, MaxSteps,
StartingStepSize etc. etc.

Does anyone have any ideas? Am I doing something wrong?

The basic form of the notebook is this:

In[1]:= L = 2^(3/2)*Pi;
In[2]:= R[z_] := 1

In[3]:= h0[z_] := 0.14*(1 + 0.5*Cos[2*Pi*z/L])

In[4]:= solution = b /. First[NDSolve[{Derivative[0, 1][b][z, t] == 1/b[z,
t]*D[D[1/b[z, t] - Derivative[2, 0][b][z, t], z]*R[z]*(R[z] - b[z, t])^3,
z], Derivative[1, 0][b][0, t] == 0, Derivative[3, 0][b][0, t] == 0,
Derivative[1, 0][b][L/2, t] == 0, b[L/2, t] == 0.93, b[z, 0] == R[z] -
h0[z]}, b, {z, 0, L/2}, {t, 0, 10}]]

NDSolve::mxst: Maximum number of 1000 steps reached at the point t ==
7.32221572788003616`.

NDSolve::eerr: Warning: Estimated spatial error at t = 7.32221572788003616`
is much greater than prescribed error tolerance. Grid spacing
0.341760226012182055` which was based on the initial conditions may be too
large. A singularity may have formed or you may want to specify a smaller
grid spacing using the StartingStepSize option.

Out[4]= InterpolatingFunction[{{0,4.44288},{0.,7.32222}},<>]

(I apologize for not specifying my e-mail address, but I have had spam
problems in the past)




  • Prev by Date: RE: Show[] applied to a Plot[] and a ListPlot[] ??
  • Next by Date: Re: Writing Applications for Mac OS X
  • Previous by thread: Exporting numbers to a file like printf