# Solve: y'' - (3/x)y' + (4/x^2)y = x
# with y(1) = 0, y(2) = 4*(log(2) + 1)
# Exact solution: y(x) = x^2*(log(x) - 1) + x^3
# Gradient
f <- function(x,y,dy,...) {
(3/x)*dy-(4/x^2)*y+x
}
t0 <- 1
tf <- 2
y0 <- 0
yf <- 4*(log(2)+1)
h <- 0.01
ltmp <- BVPlinshoot2(f,t0,tf,y0,yf,h)
# Checks
n <- length(ltmp$t)-1
print(c(ltmp$t[1],ltmp$t[n+1]))
print(c(ltmp$y[1,1],ltmp$y[n+1,1]))
Run the code above in your browser using DataLab