Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2001
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2001

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

Search the Archive

Re: non-linear boundary value problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg30284] Re: non-linear boundary value problem
  • From: bghiggins at ucdavis.edu (Brian Higgins)
  • Date: Sat, 4 Aug 2001 20:02:11 -0400 (EDT)
  • References: <9kg1h0$ii8$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Richard, Here is one method based on a shooting technique. Consider
the following BVP:

 y''[x]+Sin[y[x]]=Cos[5x]
y[-1]=0,y[1]=0
Note the eqns are nonlinear due to the Sin[y[x]] term.
Write the above as two first order ODEs by letting

y1[x]=y[x]
y1'[x]=y2[x]
y2'[x]=-Sin[y1[x]]+Cos[x]

with initial conditions

y1[-1]=0,y2[-1]=a

Here the parameter a is the unknown "initial condition" we want to
find such that y1[1]=0.

The following code implements the shooting technique 

system[a_] := {y1'[x] == y2[x], y2'[x] == -Sin[y2[x]] + Cos[5x],
y1[-1] == 0,
      y2[-1] == a};
myODEsoln[a_] := NDSolve[system[a], {y1[x], y2[x]}, {x, -1, 1}]
yend[a_] := (y1[x] /. myODEsoln[a]) /. x -> 1
bc = FindRoot[First[yend[a]] == 0, {a, -2, 2}];
Plot[Evaluate[y1[x] /. myODEsoln[a /. bc]], {x, -1, 1}, 
    AxesLabel -> {"x", "y1(x)"}];

 This method can be used to solve higher order systems with a variety
of BCs. The key is to determine good  guesses for the FindRoot
algorithm.
If the equations are very stiff, then it is advisible to plot the
solution as a function of a to get some idea how the solution behaves
before attempting a Findroot calculation.

Have fun

Cheers,

Brian



Richard S Hsu <rhsu at U.Arizona.EDU> wrote in message news:<9kg1h0$ii8$1 at smc.vnet.net>...
> Hi,  I am sorry that I asked  a wrong question before.
> The question should be
> Where I could find a mathematica program to solve
> a non-linear boundary value problem :
> 
> f''[ x ] ==  g[ f[x] ],   f[0] == a,  f'[L] ==  b ,
> 
> where g is a known function, a,b and L are constants.
> 
> The NDSolve does not work for non-linear problems.
> 
> Thanks.


  • Prev by Date: Re: boundary value problem
  • Next by Date: Re: Can Mathematica 3.0 be run under Windows ME and/or Windows 98 SE?
  • Previous by thread: non-linear boundary value problem
  • Next by thread: Translator Needed