2017年1月14日土曜日

実験計画法 多因子-応答の最適化 に関するメモ (Design of experiments & Taguchi method)

実験計画法の復習です。

今回は得られた実験データからどのように最適化を考えるべきかをまとめます。

応答曲面法と実験計画法の世界では呼ばれることが多いですが、いわゆる非線形の最適化問題です。

■量的3因子から出力の最適化を求める

以下のような量的3因子から1つの出力が得られる場合を考えます。


x_1x_2x_3y1
1-1-1-1102
21-1-1120
3-11-1117
411-1198
5-1-11103
61-11132
7-111132
8111139
9-1.63300102
101.63300154
110-1.633096
1201.6330163
1300-1.633116
14001.633153
15000133
16000133
17000140
18000142
19000145
20000142

2次モデルをあてはめると以下のように表すことができます。

行列式で表すと以下のようにかけます。


Bは対角要素以外は、βを2で割った数になるので注意です。

上記式を微分して0になる数が停留点、極値になり、それが最大、最小点になる可能性がある。

■Scilabで解く

scilabで解いてみました。
あまり綺麗ではないですが、以下のような感じです。


//実験データ入力
X = [
-1    -1    -1    102
1    -1    -1    120
-1    1    -1    117
1    1    -1    198
-1    -1    1    103
1    -1    1    132
-1    1    1    132
1    1    1    139
-1.633    0    0    102
1.633    0    0    154
0    -1.633    0    96
0    1.633    0    163
0    0    -1.633    116
0    0    1.633    153
0    0    0    133
0    0    0    133
0    0    0    140
0    0    0    142
0    0    0    145
0    0    0    142
];
n = 20;//実験データ数
a = 3;//因子の数
y = X(:,4);
X(:,4)=[];

//最小二乗法
sq = X.*X;
x12 = X(:,1).*X(:,2);
x13 = X(:,1).*X(:,3);
x23 = X(:,2).*X(:,3);
x = [ones(n,1) X x12 x13 x23 sq];

b=inv(x'*x)*x'*y//最小二乗法の解

//停留点を求める
b_l = [b(2,1);b(3,1);b(4,1)];

B = [b(8,1) b(5,1)/2 b(6,1)/2;
    b(5,1)/2 b(9,1) b(7,1)/2;
    b(6,1)/2 b(7,1)/2 b(10,1)]

x_s = -1/2*inv(B)*b_l//停留点

mu_x_s = b(1,1) + 1/2*x_s'*b_l//停留点の出力値(下と同じ結果)
mu_x_s = b(1,1) + x_s'*b_l + x_s'*B*x_s//停留点の出力値(上と同じ結果)



本ページは下の書籍を参考に自習用にまとめています。



他の参考書籍です



関連ページ
多因子-2水準-L16直交表の場合
2因子ー質的因子の場合
1因子ー量的因子ー二次モデルの場合
1因子ー量的因子ー一次モデルの場合
1因子ー質的因子の場合

0 件のコメント:

コメントを投稿