1

これは宿題の質問です。与えられた n 個のドット (2D) のセットに最適な線の係数を見つけるように求められました。係数は次の abc です: ax+by=c.n 個のドットがあるとします。線形計画法を使用して、次のように定義される最小の「最大絶対誤差」につながる係数を見つけます: max(|a*xi+b*yi -c|)、i の範囲は 1 ~ n です。

これが私の思考プロセスです:

M を最大絶対誤差とします。線形計画法の目的は、M を最小化することです。M はすべての |a*xi+b*yi-c| の中で最大であるため、それらすべてよりも大きくなければなりません。したがって、すべての i に対して (a*xi+b*yi-c)<= M であり、(a*xi+b*yi-c)>= -M です (2 番目の式は絶対符号を説明するためのものです)。

問題を定義するにはこれで十分だと思いました。条件をソルバーに入れると、abc all equals 0 が返されましたが、実際にはそうすべきではありません。ここにはいくつかの条件が欠けていると思います。誰かが私にそれを指摘できますか?

4

1 に答える 1

2

a または b のいずれかが 0 であってはならないという 1 つのステートメントを追加する必要があります。両方の値が 0 の場合、システムに対する有効なソリューションがありますが、a と b の両方が 0 に等しい行はありません。

編集: Rerito の提案を改善します。任意の行には、0 に等しくない a または b があります。これらの行(k*a)*x + (k*b)* y + (k*c)(a)*x + (b)* y + (c)は、ゼロ以外の任意の k について同じです。したがって、ソルバーを 2 回実行する必要があると言えます。a を 1 に指定するときに 1 回、b を 1 に指定するときに 1 回、その後、より良い解を選択します。a=0最良の解は、またはb=0(両方ではない)である場合があるため、ソルバーを 2 回実行する必要があります。

于 2013-04-09T08:26:58.283 に答える