var y = new Array();
var c = new Array();
var d = new Array();
var m = new Array();
var point = new Array();
var ys = new Array();
var rate = new Array();
var alpha;
function sample() {
y[1] = 400;
y[2] = 300;
y[3] = 200;
c[1] = 350;
c[2] = 300;
c[3] = 250;
for (s = 1; s < 4; s++) {
d[s] = new Array();
}
d[1][1] = 0;
d[1][2] = 5;
d[1][3] = 10;
d[2][1] = 5;
d[2][2] = 0;
d[2][3] = 5;
d[3][1] = 10;
d[3][2] = 5;
d[3][3] = 0;
m[1] = 10;
m[2] = 8;
m[3] = 6;
for (s = 1; s < 4; s++) {
point[s] = new Array();
}
for(th=0;th<9;th++){
alpha = 0.5+0.05*th;
sol();
alert(alpha+","+m[1]);
}
for (th = 1; th < 16; th++) {
alpha = 0.9 - 0.05 * th;
sol();
alert(m[1])
}
}
function sol() {
for (tr = 1; tr < 11; tr++) {
g();
for (ss = 1; ss < 4; ss++) {
f(ss);
}
}
}
function f(ss) {
var px = new Array();
mind = 999999;
ms = 10;
for (m1 = 1; m1 < 11; m1++) {
for (sx = 1; sx < 4; sx++) {
px[sx] = alpha * m1 - (1 - alpha) * d[ss][sx];
}
y1 = 0;
for (sx = 1; sx < 4; sx++) {
y1 = y1 + rate[sx] * px[sx];
}
e1 = (y[ss] - y1) * (y[ss] - y1);
if (e1 < mind) ms = m1;
if (e1 < mind) mind = e1;
}
m[ss] = ms;
}
function g() {
for (s = 1; s < 4; s++) {
for (sx = 1; sx < 4; sx++) {
point[s][sx] = alpha * m[s] - (1 - alpha) * d[s][sx];
}
}
for (sx = 1; sx < 4; sx++) {
p1 = 0;
for (s = 1; s < 4; s++) {
p1 = p1 + point[s][sx];
}
rate[sx] = c[sx] / p1;
}
}
最終更新:2015年06月20日 19:34