R优化具有约束的线性方程系数
R Optimize linear equations coefficients with constraints
假设我有 n
个以下形式的线性方程:
ax1 + bx2 + cx3 = y1
-ax1 + bx2 + cx3 = y2
-ax1 -bx2 + cx3 = y3
这里是 n=3
和 a,b,c
是已知和固定的。
我正在寻找 x1,x2,x3
的最佳值,以便它们的范围在 [-r,r]
内,对于某些正数 r
和总和 sum(y1,y2,y3)
最大化。
有没有可以处理此类优化问题的 R 包?
为此,您可以使用 R 函数中的 optim
。
如果您尝试最大化 sum(y1,y2,y3)
,这实际上简化了最大化 (ax1 + bx2 + 3*cx3)
的问题,使得 x1,x2,x3 ∈ [-r,r]
您可以使用以下代码找到最佳值。请注意,optim
函数默认最小化,因此我在函数中返回总和的负值。
max_sum <- function(x){
a <- 2; b<- -3; c<-2;
y <- a*x[1]+b*x[2]+3*c*x[3]
return( -1*y ) }
r <- 5
optim(par=c(0,0,0), max_sum,lower= (-1*r),upper = r)
$par
[1] 5 -5 5
假设我有 n
个以下形式的线性方程:
ax1 + bx2 + cx3 = y1
-ax1 + bx2 + cx3 = y2
-ax1 -bx2 + cx3 = y3
这里是 n=3
和 a,b,c
是已知和固定的。
我正在寻找 x1,x2,x3
的最佳值,以便它们的范围在 [-r,r]
内,对于某些正数 r
和总和 sum(y1,y2,y3)
最大化。
有没有可以处理此类优化问题的 R 包?
为此,您可以使用 R 函数中的 optim
。
如果您尝试最大化 sum(y1,y2,y3)
,这实际上简化了最大化 (ax1 + bx2 + 3*cx3)
的问题,使得 x1,x2,x3 ∈ [-r,r]
您可以使用以下代码找到最佳值。请注意,optim
函数默认最小化,因此我在函数中返回总和的负值。
max_sum <- function(x){
a <- 2; b<- -3; c<-2;
y <- a*x[1]+b*x[2]+3*c*x[3]
return( -1*y ) }
r <- 5
optim(par=c(0,0,0), max_sum,lower= (-1*r),upper = r)
$par
[1] 5 -5 5