Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

shooting

Shooting Method


Description

The shooting method solves the boundary value problem for second-order differential equations.

Usage

shooting(f, t0, tfinal, y0, h, a, b,
         itermax = 20, tol = 1e-6, hmax = 0)

Arguments

f

function in the differential equation y'' = f(x, y, y').

t0, tfinal

start and end points of the interval.

y0

starting value of the solution.

h

function defining the boundary condition as a function at the end point of the interval.

a, b

two guesses of the derivative at the start point.

itermax

maximum number of iterations for the secant method.

tol

tolerance to be used for stopping and in the ode45 solver.

hmax

maximal step size, to be passed to the solver.

Details

A second-order differential equation is solved with boundary conditions y(t0) = y0 at the start point of the interval, and h(y(tfinal), dy/dt(tfinal)) = 0 at the end. The zero of h is found by a simple secant approach.

Value

Returns a list with two components, t for grid (or ‘time’) points between t0 and tfinal, and y the solution of the differential equation evaluated at these points.

Note

Replacing secant with Newton's method would be an easy exercise. The same for replacing ode45 with some other solver.

References

L. V. Fausett (2008). Applied Numerical Analysis Using MATLAB. Second Edition, Pearson Education Inc.

See Also

Examples

#-- Example 1
f <- function(t, y1, y2) -2*y1*y2
h <- function(u, v) u + v - 0.25

t0 <- 0; tfinal <- 1
y0 <- 1
sol <- shooting(f, t0, tfinal, y0, h, 0, 1)
## Not run: 
plot(sol$t, sol$y[, 1], type='l', ylim=c(-1, 1))
xs <- linspace(0, 1); ys <- 1/(xs+1)
lines(xs, ys, col="red")
lines(sol$t, sol$y[, 2], col="gray")
grid()
## End(Not run)

#-- Example 2
f <- function(t, y1, y2) -y2^2 / y1
h <- function(u, v) u - 2
t0 <- 0; tfinal <- 1
y0 <- 1
sol <- shooting(f, t0, tfinal, y0, h, 0, 1)

pracma

Practical Numerical Math Functions

v2.3.3
GPL (>= 3)
Authors
Hans W. Borchers [aut, cre]
Initial release
2021-01-22

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.