Hide navigation sidebar
Hide table of contents sidebar
Back to top
Toggle table of contents sidebar

# qcp.R

    # Copyright 2025, Gurobi Optimization, LLC
    #
    # This example formulates and solves the following simple QCP model:
    #  maximize
    #        x
    #  subject to
    #        x + y + z   =  1
    #        x^2 + y^2 <= z^2  (second-order cone)
    #        x^2 <= yz         (rotated second-order cone)
    #        x, y, z non-negative

    library(gurobi)
    library(Matrix)

    model <- list()

    model$A          <- matrix(c(1,1,1), nrow=1, byrow=T)
    model$modelsense <- 'max'
    model$obj        <- c(1,0,0)
    model$rhs        <- c(1)
    model$sense      <- c('=')

    # First quadratic constraint: x^2 + y^2 - z^2 <= 0
    qc1 <- list()
    qc1$Qc <- spMatrix(3, 3, c(1, 2, 3), c(1, 2, 3), c(1.0, 1.0, -1.0))
    qc1$rhs <- 0.0

    # Second quadratic constraint: x^2 - yz <= 0
    qc2 <- list()
    qc2$Qc <- spMatrix(3, 3, c(1, 2), c(1, 3), c(1.0, -1.0))
    qc2$rhs <- 0.0

    model$quadcon <- list(qc1, qc2)

    result <- gurobi(model)

    print(result$objval)
    print(result$x)

    # Clear space
    rm(model, result)

Help and Feedback

Press `/` or click to search this documentation | Gurobi website | Gurobi community forum
Go to other Gurobi documentation | Gurobi download | Contact support