优化功能

come formhttp://sunwjie.blogcn.com/2011/09/08/r-中的优化功能/ 

优化问题常常在决策过程中出现。不仅是决策问题,优化更在模型拟合方面扮演这重要的角色。在回归方程中用到的最小二乘法、极大似然法有是优化在发挥作用。在 R 中的一个优化函数 optim 功能全面,这里就摆上几个小实验--都是无约束优化,如果有计划希望能写几个约束优化的实验。
1、最简单的优化

求目标函数 x^2+2x+1 最小时x的值
optimfun <- function(x){ # 建立一个目标函数
ans <- x^2+2*2+1
return(ans)
}
optim(par=1, fn=optimfun) # 求解,par=初始值, fn=目标函数

Created by Pretty R at inside-R.org
2.双变量优化

求目标函数 x^2+y^2 最小时 x、y 的值。
optimfun <- function(x){
ans <- x[1]^2+x[2]^2+z # 同样是建立目标函数,输入变量需要使用向量的形式--x
return(ans)
}
optim(par=c(1,1), fn=optimfun, z=2) # 于是使用优化函数输入初始值也要使用向量,并且参数可以给出

Created by Pretty R at inside-R.org
3.使用模拟退化算法

模拟退化法能在一定程度上避免陷入局部最优,使用方法即在 optim 调用中加入 method="SANN"(sann is short for simulated anneal)。模拟退火的知识
optimfun <- function(x){
ans <- x[1]^2+x[2]^2+z
}
optim(par=c(1,1), fn=optimfun, z=2, method="SANN") # 于是使用优化函数输入初始值也要使用向量,并且参数可以给出

posted @ 2012-04-04 15:35  hailong  阅读(413)  评论(0编辑  收藏  举报