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 用のパッケージはありますか?
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 用のパッケージはありますか?
optim
この目的で in R 関数を使用できます。
を最大化しようとしている場合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