how to compute maximum of fitted polynomial?
Bert Gunter <gunter.berton <at> gene.com> writes:
1. This looks like a homework question. We should not do homework here. 2. optim() will only approximate the max. 3. optim() is not the right numerical tool for this anyway. optimize() is. 4. There is never a guarantee numerical methods will find the max. 5. This can (and should?) be done exactly using elementary math rather than numerical methods. Cheers, Bert
In the case of polynomials, "elementary math ... methods" can actually be
executed with R:
library(polynomial) # -6 + 11*x - 6*x^2 + x^3
p0 <- polynomial(c(-6, 11, -6, 1)) # has zeros at 1, 2, and 3
p1 <- deriv(p0); p2 <- deriv(p1) # first and second derivative
xm <- solve(p1) # maxima and minima of p0
xmax = xm[predict(p2, xm) < 0] # select the maxima
xmax # [1] 1.42265
Obviously, the same procedure will work for polynomials p0 of higher orders.
Hans Werner
Em 04-06-2013 21:32, Joseph Clark escreveu:
My script fits a third-order polynomial to my data with something like this: model <- lm( y ~ poly(x, 3) ) What I'd like to do is find the theoretical maximum of the polynomial (i.e. the x at which "model" predicts the highest y). Specifically, I'd like to predict the maximum between 0 <= x <= 1. What's the best way to accomplish that in R? Bonus question: can R give me the derivative or 2nd derivative of the polynomial? I'd like to be able to compute these at that maximum point. Thanks in advance! // joseph w. clark , phd , visiting research associate \\ university of nebraska at omaha - college of IS&T