1

セットの最大要素を見つけるには、GAMSを取得する必要があります。これにより、目的が最小二乗ではなく最小最大偏差である線形回帰モデルが得られるはずです。

私のデータポイントは(x(p), y(p))ポイントです(指定されていSet p / p1*p1000 / ;ます)。amsterdamoptimizationで説明されているように、回帰モデルを解決することができました。

Variables
  m            Slope
  b            Constant
  objVal       Objective Value
;

Equations
  objFun       Objective Function
  lin(p)       Regression Model
;

objFun ..      objVal =n= 0;
lin(p) ..      y(p) =e= m * x(p) + b;

option lp=ls;
Model Regression / objFun, lin / ;
Solve Regression minimizing objVal using lp;

しかし、私が提出すべきものは次のようなものです

Variables
  m            Slope
  b            Constant
  objVal       Objective Value
;

Equations
  objFun       Regression Model
;

objFun ..      objVal =e= smax(p, abs( y(p) - (m * x(p) + b) ));

Model Regression / objFun / ;
Solve Regression minimizing objVal using lp;

もちろん、これを読むことはできますが、GAMS はこれを嫌います。

2031  Solve Regression minimizing objVal using lp;
****                                             $51,59,256
Error Messages

 51  Endogenous function argument(s) not allowed in linear models
 59  Endogenous prod smin smax require model type "dnlp"
256  Error(s) in analyzing solve statement. More detail appears
     Below the solve statement above

はい、宿題ですが、完全に行き詰まっています。

4

1 に答える 1

1

結局のところ、最大値は簡単に処理できます。

objFun ..      objVal =e= smax(p, abs( y(p) - (m * x(p) + b) ));

に等しい

objFun(p) ..   objVal =g= abs( y(p) - (m * x(p) + b) );

現在、GAMS は明白な理由から線形モデルで使用される abs() を好みませんが、x > abs(y)means(x > y) AND (x > -y)を覚えておいてください。

objFun1(p) ..  objVal =g= y(p) - (m * x(p) + b);
objFun2(p) ..  objVal =g= -( y(p) - (m * x(p) + b) );

最終的には(正規の適合性):

objFun1(p) ..  objVal + x(p) * m + b =g= y(p);
objFun2(p) ..  objVal - x(p) * m - b =g= -y(p);
于 2014-07-06T21:36:36.493 に答える