optim函數(shù)是R語言中用于最優(yōu)化問題求解的函數(shù),它提供了一個通用的接口來尋找函數(shù)的最小值或最大值。
optim函數(shù)的基本用法是:
optim(par, fn, ...)
參數(shù)說明:
optim函數(shù)返回一個包含以下元素的列表:
需要注意的是,optim函數(shù)默認使用Nelder-Mead(單純形)算法來求解無約束問題。如果需要求解帶有約束的最優(yōu)化問題,可以通過設(shè)置其他參數(shù)來選擇不同的算法,或者自定義約束函數(shù)。
以下是一個簡單的例子,演示如何使用optim函數(shù)求解目標函數(shù)的最小值:
# 定義目標函數(shù)
fn <- function(x) {
return((x[1]-2)^2 + (x[2]-3)^2)
}
# 設(shè)置起始點
par <- c(0, 0)
# 使用optim函數(shù)求解最小值
result <- optim(par, fn)
# 輸出結(jié)果
print(result$par) # 最優(yōu)解
print(result$value) # 最優(yōu)解的目標函數(shù)值
print(result$message) # 算法收斂信息
輸出結(jié)果:
[1] 1.999994 3.000007
[1] 7.200082e-11
[1] "CONVERGENCE: REL_REDUCTION_OF_F <= FACTR*EPSMCH"