## 1) Minimum with one constraint:
## f(x,y) = x^2 + y^2, g(x,y) = x + y - 1 = 0 -> (0.5, 0.5)
f1 <- function(x) x[1]^2 + x[2]^2
g1 <- function(x) x[1] + x[2] - 1
lagrange_check(f1, g1, x = c(0.5, 0.5))
## 2) Maximum with one constraint:
## f(x,y) = -(x^2 + y^2), g(x,y) = x + y - 1 = 0 -> (0.5, 0.5)
f2 <- function(x) -(x[1]^2 + x[2]^2)
lagrange_check(f2, g1, x = c(0.5, 0.5))
## 3) Two constraints in R^3 (minimum norm with two planes)
f3 <- function(x) sum(x^2)
g3 <- list(
function(x) x[1] + x[2] + x[3] - 1,
function(x) x[1] - x[3]
)
## Candidate solution: x1 = x3, 2*x1 + x2 = 1 -> x = (1/3, 1/3, 1/3)
lagrange_check(f3, g3, x = c(1, 1, 1) / 3)
Run the code above in your browser using DataLab