Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 2个未知量的GenSA优化_R_Optimization - Fatal编程技术网

R 2个未知量的GenSA优化

R 2个未知量的GenSA优化,r,optimization,R,Optimization,我对R还是比较陌生的,而且还停留在一个优化问题上。我这里有一个相当笼统的问题。我试图最小化一个函数,比如 函数(a,b){2*a^2+b}, 使用GenSA函数处理两个未知数。每当我试着运行它时,它告诉我它找不到b。现在我想知道,是否有可能使用GenSA来处理2个未知项,或者使用一个不同的函数是否更合适?如果有人有主意那就太好了 顺便说一句,我用于GenSa函数的代码看起来是这样的(也尝试过使用向量,但也不起作用): >库(GenSA) > >极小值 >维度global.min tol >降低

我对R还是比较陌生的,而且还停留在一个优化问题上。我这里有一个相当笼统的问题。我试图最小化一个函数,比如

函数(a,b){2*a^2+b},

使用GenSA函数处理两个未知数。每当我试着运行它时,它告诉我它找不到b。现在我想知道,是否有可能使用GenSA来处理2个未知项,或者使用一个不同的函数是否更合适?如果有人有主意那就太好了

顺便说一句,我用于GenSa函数的代码看起来是这样的(也尝试过使用向量,但也不起作用):

>库(GenSA)
> 
>极小值
>维度global.min tol
>降低
>上层
> 
>out control=list(threshold.stop=global.min+tol,verbose=TRUE))
> 
>出[c(“价值”、“票面价值”、“计数”)]

这是一个二维问题,而不是一个三维问题。显然不是很令人兴奋,因为算法很容易找到最优解。当然,对于大多数问题,情况并非如此

> minim<-function(a){2*a[1]^2+a[2]}
> dimension<-2
> global.min <- 0
> tol <- 1e-15
> lower <- rep(0, dimension)
> upper <- rep(30, dimension)
> out <- GenSA(lower = lower, upper = upper, fn = minim,
+              control=list(threshold.stop=global.min+tol,verbose=TRUE))
Initializing par with random data inside bounds
It: 1, obj value: 0
> out[c("value","par","counts")]
$value
[1] 0

$par
[1] 0 0

$counts
[1] 32

> 
>minim dimension global.min tol lower upper out[c(“值”、“标准值”、“计数”)]
美元价值
[1] 0
$par
[1] 0 0
美元计数
[1] 32
> 
> minim<-function(a){2*a[1]^2+a[2]}
> dimension<-2
> global.min <- 0
> tol <- 1e-15
> lower <- rep(0, dimension)
> upper <- rep(30, dimension)
> out <- GenSA(lower = lower, upper = upper, fn = minim,
+              control=list(threshold.stop=global.min+tol,verbose=TRUE))
Initializing par with random data inside bounds
It: 1, obj value: 0
> out[c("value","par","counts")]
$value
[1] 0

$par
[1] 0 0

$counts
[1] 32

>