An embedded and charset-unspecified text was scrubbed... Name: no disponible URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20090918/769a67e1/attachment.pl>
[R-es] Como puedo calcular un maximo de alguna funcion?
2 messages · Manuel Arriaza Guiñez, Carlos J. Gil Bellosta
Hola, ¿qué tal?
PodrÃais hacer algo asà como:
f <- "20*x*(1-x)^3"
find.max <- function( foo, min, max ){
foo <- parse( text = foo )
df <- D( foo, "x" )
ddf <- D( df, "x" )
dfoo <- function( x ) eval( df )
ddfoo <- function( x ) eval( ddf )
ceros <- uniroot.all( dfoo, c(min, max) )
ceros <- ceros[ ddfoo( ceros ) < 0 ]
ceros
}
Le faltan cosas, como la comprobación de errores, etc., pero contiene
las ideas principales sobre cómo manipular los elementos básicos del
lenguaje.
Un saludo,
Carlos J. Gil Bellosta
http://www.datanalytics.com
El dÃa 18 de septiembre de 2009 02:18, Manuel Arriaza Guiñez
<manu3_16 en hotmail.com> escribió:
Nos gustaria conocer alguna alternativa para realizar una funcion, a la que le entreguemos una funcion y nos entregue el maximo luego de evaluar la segunda derivada
nuestro principal problema es que no conocemos como trabajar con la derivada ya que es de tipo call o expresion
aqui esta nuestro algoritmo
f<-expression(20*x*(1-x)^3)
f
#Primera derivada
derivada<-D(f,"x")
derivada
mode(derivada)
#Segunda derivada
segundaderivada<-D(derivada,"x")
segundaderivada
#Instale y cargue el paquete rootsolve
#Puntos criticos para la primera derivada
fun <- function (x)20*(1-x)^3-60*x*(1-x)^2
curve(fun(x),0,10,main="uniroot.all")
All <- uniroot.all(fun,c(0,10))
points(All,y=rep(0,length(All)),pch=16,cex=2)
ceros<-All   #Guardamos los puntos criticos en el vector llamado ceros
ceros
#Evaluando los puntos criticos en la segunda derivada
fun <- function (x)-120*(1-x)^2+120*x*(1-x)
i=1
while(i<=length(ceros))
{
if (eval(fun(ceros[i]))<0)
{
cat(ceros[i])
cat(" es maximo\n")
}
i<-i+1
}
_________________________________________________________________ [[elided Hotmail spam]] Â Â Â Â [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es