# R optimization and curve()? Classic List Threaded 4 messages Open this post in threaded view
|

## R optimization and curve()?

 I'm trying to figure out how to plot basic utility maximization results with R, Ideally I'd like to plot the value of u through x1,x2 space, so you can graph income / substitution effects easily... also, it'd be nice if I could put a linear budget constraint on the graph  here's an example with cobb douglas utility u <- function(x) {     x1 <- x     x2 <- x  (x1^alpha)*(x2^(1-alpha)) } utility <- function(x) x^(alpha)*x^(1-alpha) p <- c(2,1) i <- -100 alpha <- .3 umax <- function(p,i,u) { res <- constrOptim(c(.5,.5), u, grad=NULL, ui=-p, ci=i, mu = 1e-04, control=list(fnscale=-1)) return(res) } curve(umax, c(c(2,1),c(2,1)), c(10,100))
Open this post in threaded view
|

## Re: R optimization and curve()?

 On Wed, 13 Oct 2010, jcress410 wrote: > u <- function(x) { >     x1 <- x >     x2 <- x >  (x1^alpha)*(x2^(1-alpha)) > } > utility <- function(x) x^(alpha)*x^(1-alpha) > p <- c(2,1) > i <- -100 > alpha <- .3 > umax <- function(p,i,u) { > res <- constrOptim(c(.5,.5), u, grad=NULL, ui=-p, ci=i, mu = 1e-04, > control=list(fnscale=-1)) > return(res) > } > curve(umax, c(c(2,1),c(2,1)), c(10,100)) I don't see any question here. However you must RTFM. 1) The returned value of umax() is a list.  How do you expect curve() to plot a list? 2) curve() requires that the function umax() must be vectorisable wrt its first parameter, i.e. you pass it a numeric vector and it returns a numeric vector of the same length. 3) you have to realise that curve() will only graph a 1-dimensional function HTH, Ray ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.