2012年2月12日日曜日

Matlab 最小二乗解の求め方 ②

過剰条件の連立一次方程式

3X1 + 4X2 = 1000
1X1 + 7X2 = 1000
2X1 + 8X2 = 1000

( X1 Xは製品A, Bの個数 )

における最小二乗解を Matlab で解いたメモ

>> A = [3,4;1,7;2,8]

A =

     3     4
     1     7
     2     8

>> y = [1000,1200,1500]'

y =

        1000
        1200
        1500

>> x = (A'*A)^(-1)*A'*y

x =

  128.7435
  154.2169

>> x = inv(A'*A)*A'*y

x =

  128.7435
  154.2169

>> x = A\y

x =

  128.7435
  154.2169


実際に Xと X2 を代入して確認すると


3 * 128 + 4 * 154 = 1000
1 * 128 + 7 * 154 = 1206
2 * 128 + 8 * 154 = 1488

となり、1206は1200をオーバーしているのでだめ。

X1 = 128
X2 = 153

が経営者が取るべき現実的な解となる。

ーーーーー

ここで扱った問題は以下の論文から引用させて頂きました。

・ 過剰条件の連立一次方程式における最小二乗解, 近藤寿紀 
    「2003年度卒業論文要旨集」(2004.3.7 南山大学数理情報学部 数理科学科)
    http://www.seto.nanzan-u.ac.jp/ise/gr-thesis/ms/2003/torii/00mm043.pdf

0 件のコメント:

コメントを投稿