MATLAB Answers


Using the Shooting Method

Asked by pxg882
on 30 Oct 2012

Hi all,

I'm looking to solve the following system of equations with boundary conditions using the shooting method:




along with the conditions F(0)=0, G(0)=1, H(0)=0, F(infinity)=0, G(infinity)=0.

I've found the solution using the BVP4C solver but need to also be able to find the solution using the shooting method.

I'm really quite new to MATLAB and don't really know where to start!

Any help anyone can give me would be greatly appreciated. Thanks!



No products are associated with this question.

1 Answer

Answer by Titus Edelhofer
on 30 Oct 2012

The first thing to do is independent of the programming: reformulate your second order system by a (larger) first order system. Once you have that, use e.g. ode45 to solve it.



on 31 Oct 2012

Actually the initial conditions should be more like:

[0 u(1) 1 u(2) 0]

where u(1) and u(2) are the values of F'(0) and G'(0) (unknowns) respectively.

How do I start to implement the shooting method from this? I've seen cases where one unknown is being 'shot' for but not for two unknowns.

Any help would be great. Thanks.

If you have two unknowns I would use e.g. fminsearch where your objective function is the error (quadratic difference) between the target (coming from the "other" boundary condition) and the values you get at the end of the shoot (via ode45).

on 8 Nov 2012

Thanks for your input,

I think I'm just about there with this now.

I feel it was my limited MATLAB knowledge that was letting me down. Still things should get better with time and practice!

Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!