Search code examples
rcalculationcalc

Solving Intermediate Microeconomics Problems in R


Right now im trying to figure out how to solve standard constrained optimization problems in R which would usually be solved by hand with the use of a lagrangian.

The code I have so far is:

#Our Legrangian
L<-expression(X^a*Y^b+l*(M-px*X-py*Y))
#First Order Conditions:
dLdX<-D(L,"X")
dLdY<-D(L,"Y")
dLdl<-D(L,"l")

I am unable to work through the rest of this. I've tried defining the first order conditions as a matrix and some vector b=c(0,0,0) and use solve() however since this is a non-linear problem with symbols its problematic.

Is there a solution to this problem?


Solution

  • Two years later I have learned that the easiest way to solve these types of problems is with the NlcOptim package. The code used for a sample procedure is the following:

    ############################
    #Utility Maximization in R#
    ###########################
    library('NlcOptim')
    library('MASS')
    
    ##############
    #Preferences#
    #############
    preferences<-function(x){
     return(-x[1]^0.5*x[2]^0.5)
    }
    
    ###################
    #Budget Constraint#
    ###################
    budgetconstraint<-function(x){
      f=NULL
      f= rbind(f,2*x[1]+1*x[2]-10)
      return(list(ceq = NULL, c = f))
    }
    ######################
    # Starting values ###
    ####################
    x0<-c(1,1)
    
    ########
    #Solve#
    #######
    solnl(x0,consumer,budgetconstraint)