R用约束优化线性方程组

时间:2017-01-12 06:31:14

标签: r optimization package linear-equation

说我有n形式的线性方程式:

ax1 + bx2 + cx3 = y1 -ax1 + bx2 + cx3 = y2 -ax1 -bx2 + cx3 = y3

以下n=3a,b,c已知且已修复。

我正在寻找x1,x2,x3的最佳值,以使某些正[-r,r]的范围在r范围内,且sum(y1,y2,y3)总和最大化。< / p>

R是否有可以处理此类优化问题的软件包?

1 个答案:

答案 0 :(得分:2)

您可以在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