1. Not finding help here? Sign up for a free 30min tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Nonlinear BVP in matlab

  1. Mar 17, 2015 #1
    1. The problem statement, all variables and given/known data
    Solve from the differential equation below numerically for the function [itex] \phi(x) [/itex] for [itex] x \in [0,L] [/itex]

    [tex]\phi '' (x) + D(x) sin(\phi (x) ) + E sin(\phi (x) ) cos( \phi (x) ) = 0 [/tex]

    with D(x) a polynomial.
    2. Relevant equations
    Matlab.

    3. The attempt at a solution
    I can rewrite it in a state space form and then iterate towards the function [itex] \phi(x) [/itex] if D is constant. But what can I do with that pesky D(x). If I am iterating towards D(x) I cannot iterate, right?
     
  2. jcsd
  3. Mar 17, 2015 #2
    Did you tried the shooting method ?
    What bounday values must fulfill ##\phi(x)## ?
     
  4. Mar 17, 2015 #3
    Right I forgot:

    [tex] \phi(0) =0 [/tex]
    [tex] \phi ' (L) =0 [/tex]

    No I haven't tried the shooting method, it it preprogrammed in Matlab?
     
  5. Mar 17, 2015 #4
    No, but it is straight forward. Just define you function and use some integration algorithm, e.g. R-K45, then by changing the value of ##\phi^\prime(x=0)## you should obtain ##\phi(x=L)=0##.
     
  6. Mar 17, 2015 #5

    donpacino

    User Avatar
    Gold Member

  7. Mar 18, 2015 #6
    No fsolve does not work here.

    I do not understand what you mean with changing the BC.
     
  8. Mar 18, 2015 #7
    You partial derivative equation is of second order, and this means that Beside the equation itself one has to provide two aditional values in order to determine the solution, you can either specify ##\phi(x=0)## and ##\phi(x=L)##, or ##\phi(x=0)## and ##\phi^\prime(x=0)##. You are given the function values at the ends of the interval, but the shooting methods uses the values at one end of the interval, i.e. the function and its derivative, and by integration you end up with the value of the function at the other end of the interval. This is how the shooting method work, you need to "guess" the value of ##\phi^\prime(x=0)## in order to obtain ##\phi(x=L) = 0##. You can do it by trial and error or build up some iteration loop. See also the wikipedia article on shooting method.

    For other numerical methods you specify directly the values of the function at both ends of the interval.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted



Similar Discussions: Nonlinear BVP in matlab
Loading...