#include <stdio.h>
int main(void){
double sigma[2][2] = { {1, 0}, {0, 1} }, W[2] = {1.0, 0.0};
//学生番号を入力
//double n0 = 2.0, n1 = 1.0, n2 = 0.0, n3 = 1.0;
double n0 = 3.0, n1 = 8.0, n2 = 0.0, n3 = 1.0;
double x[5][2];
double sumx[2] = {0.0};
int i;
x[0][0] = n1;
x[0][1] = n2 + n3;
x[1][0] = n0 + n3;
x[1][1] = n0 + n1;
x[2][0] = n2 + n3;
x[2][1] = n1;
x[3][0] = n1 + n2;
x[3][1] = n1 + n0;
x[4][0] = n1 + n0;
x[4][1] = n2 + n1 + n0;
for(i = 0; i < 5; i++)
printf("%d %6.4lf %6.4lf\n", i
+ 1, x
[i
][0], x
[i
][1]);
for(i = 0; i < 5; i++){
sumx[0] += x[i][0];
sumx[1] += x[i][1];
}
printf("\nμ\n%5.3lf %5.3lf\n\n", sumx
[0]/5.0, sumx
[1]/5.0);
for(i = 0; i < 5; i++)
printf("%d %6.4lf %6.4lf\n", i
+ 1, x
[i
][0] - sumx
[0]/5.0, x
[i
][1] - sumx
[1]/5.0);
double mu_zx[5] = {0.0}, zz_t[5] = {0.0};
for(i = 0; i < 5; i++){
mu_zx[i] = (x[i][0] - sumx[0] / 5.0) * 0.5;
printf("%d %6.4lf\n", i
+ 1, mu_zx
[i
]); }
for(i = 0; i < 5; i++){
zz_t[i] = 0.5 + mu_zx[i] * mu_zx[i];
printf("%d %6.4lf\n", i
+ 1, zz_t
[i
]); }
double xx[2][2], zz, xz[2], Sigma[2][2];
for(i = 0; i < 5; i++){
xx[0][0] += (x[i][0] - sumx[0]/5.0) * (x[i][0] - sumx[0]/5.0);
xx[0][1] += (x[i][0] - sumx[0]/5.0) * (x[i][1] - sumx[1]/5.0);
xx[1][0] += (x[i][1] - sumx[1]/5.0) * (x[i][0] - sumx[0]/5.0);
xx[1][1] += (x[i][1] - sumx[1]/5.0) * (x[i][1] - sumx[1]/5.0);
}
printf("\nx'x\n%6.4lf %6.4lf\n%6.4lf %6.4lf\n", xx
[0][0],xx
[0][1],xx
[1][0],xx
[1][1]);
for(i = 0; i < 5; i++){
zz += zz_t[i];
}
printf("\nzz : %6.4lf\n", zz
);
for(i = 0; i < 5; i++){
xz[0] += (x[i][0] - sumx[0] / 5.0) * mu_zx[i];
xz[1] += (x[i][1] - sumx[1] / 5.0) * mu_zx[i];
}
printf("\nx'z : %6.4lf %6.4lf\n", xz
[0], xz
[1]);
printf("\nW = %6.4lf %6.4lf\n", xz
[0] * (1.0 / zz
), xz
[1] * (1.0 / zz
) );
Sigma[0][0] = (xx[0][0] - xz[0] * xz[0] * (1.0 / zz));
Sigma[0][1] = (xx[0][1] - xz[0] * xz[1] * (1.0 / zz));
Sigma[1][0] = (xx[1][0] - xz[1] * xz[0] * (1.0 / zz));
Sigma[1][1] = (xx[1][1] - xz[1] * xz[1] * (1.0 / zz));
//この答えをwolframに突っ込んで対角化行列を求め、5で割るとΣ
printf("\nΣ\n%6.4lf %6.4lf\n%6.4lf %6.4lf\n", Sigma
[0][0],Sigma
[0][1],Sigma
[1][0],Sigma
[1][1]);
double after[2][2];
after[0][0] = xz[0] * (1.0 / zz) * xz[0] * (1.0 / zz); //対角成分を加算
after[0][1] = xz[0] * (1.0 / zz) * xz[1] * (1.0 / zz);
after[1][0] = xz[1] * (1.0 / zz) * xz[0] * (1.0 / zz);
after[1][1] = xz[1] * (1.0 / zz) * xz[1] * (1.0 / zz); //対角成分を加算
printf("\nAftrer\n%6.4lf %6.4lf\n%6.4lf %6.4lf\n", after
[0][0],after
[0][1],after
[1][0],after
[1][1]);
return 0;
}
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
Unshare from #datamodeling
fool Jul 10th at 11:20 PM
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKXsKCiAgZG91YmxlIHNpZ21hWzJdWzJdID0geyB7MSwgMH0sIHswLCAxfSB9LCBXWzJdID0gezEuMCwgMC4wfTsKICAvL+WtpueUn+eVquWPt+OCkuWFpeWKmwogIC8vZG91YmxlIG4wID0gMi4wLCBuMSA9IDEuMCwgbjIgPSAwLjAsIG4zID0gMS4wOwogIGRvdWJsZSBuMCA9IDMuMCwgbjEgPSA4LjAsIG4yID0gMC4wLCBuMyA9IDEuMDsKICBkb3VibGUgeFs1XVsyXTsKICBkb3VibGUgc3VteFsyXSA9IHswLjB9OwogIGludCBpOwoKICB4WzBdWzBdID0gbjE7CiAgeFswXVsxXSA9IG4yICsgbjM7CiAgeFsxXVswXSA9IG4wICsgbjM7CiAgeFsxXVsxXSA9IG4wICsgbjE7CiAgeFsyXVswXSA9IG4yICsgbjM7CiAgeFsyXVsxXSA9IG4xOwogIHhbM11bMF0gPSBuMSArIG4yOwogIHhbM11bMV0gPSBuMSArIG4wOwogIHhbNF1bMF0gPSBuMSArIG4wOwogIHhbNF1bMV0gPSBuMiArIG4xICsgbjA7CgogIHB1dHMoIngiKTsKICBmb3IoaSA9IDA7IGkgPCA1OyBpKyspCiAgICBwcmludGYoIiVkICU2LjRsZiAlNi40bGZcbiIsIGkgKyAxLCB4W2ldWzBdLCB4W2ldWzFdKTsKCiAgZm9yKGkgPSAwOyBpIDwgNTsgaSsrKXsKICAgIHN1bXhbMF0gKz0geFtpXVswXTsKICAgIHN1bXhbMV0gKz0geFtpXVsxXTsKICB9CgogIHByaW50ZigiXG7OvFxuJTUuM2xmICU1LjNsZlxuXG4iLCBzdW14WzBdLzUuMCwgc3VteFsxXS81LjApOwoKICBwdXRzKCJ4JyIpOwogIGZvcihpID0gMDsgaSA8IDU7IGkrKykKICAgIHByaW50ZigiJWQgJTYuNGxmICU2LjRsZlxuIiwgaSArIDEsIHhbaV1bMF0gLSBzdW14WzBdLzUuMCwgeFtpXVsxXSAtIHN1bXhbMV0vNS4wKTsKCiAgZG91YmxlIG11X3p4WzVdID0gezAuMH0sIHp6X3RbNV0gPSB7MC4wfTsKCiAgcHJpbnRmKCJcbjx6Pm5cbiIpOwogIGZvcihpID0gMDsgaSA8IDU7IGkrKyl7CiAgICBtdV96eFtpXSA9ICh4W2ldWzBdIC0gc3VteFswXSAvIDUuMCkgKiAwLjU7CiAgICBwcmludGYoIiVkICU2LjRsZlxuIiwgaSArIDEsIG11X3p4W2ldKTsKICB9CgogIHByaW50ZigiXG48eno+blxuIik7CgogIGZvcihpID0gMDsgaSA8IDU7IGkrKyl7CiAgICB6el90W2ldID0gMC41ICsgbXVfenhbaV0gKiBtdV96eFtpXTsKICAgIHByaW50ZigiJWQgJTYuNGxmXG4iLCBpICsgMSwgenpfdFtpXSk7CiAgfQoKICBkb3VibGUgeHhbMl1bMl0sIHp6LCB4elsyXSwgU2lnbWFbMl1bMl07CgogIGZvcihpID0gMDsgaSA8IDU7IGkrKyl7CiAgICB4eFswXVswXSArPSAoeFtpXVswXSAtIHN1bXhbMF0vNS4wKSAqICh4W2ldWzBdIC0gc3VteFswXS81LjApOwogICAgeHhbMF1bMV0gKz0gKHhbaV1bMF0gLSBzdW14WzBdLzUuMCkgKiAoeFtpXVsxXSAtIHN1bXhbMV0vNS4wKTsKICAgIHh4WzFdWzBdICs9ICh4W2ldWzFdIC0gc3VteFsxXS81LjApICogKHhbaV1bMF0gLSBzdW14WzBdLzUuMCk7CiAgICB4eFsxXVsxXSArPSAoeFtpXVsxXSAtIHN1bXhbMV0vNS4wKSAqICh4W2ldWzFdIC0gc3VteFsxXS81LjApOwogIH0KCiAgcHJpbnRmKCJcbngneFxuJTYuNGxmICAlNi40bGZcbiU2LjRsZiAgJTYuNGxmXG4iLCB4eFswXVswXSx4eFswXVsxXSx4eFsxXVswXSx4eFsxXVsxXSk7CgogIGZvcihpID0gMDsgaSA8IDU7IGkrKyl7CiAgICB6eiArPSB6el90W2ldOwogIH0KICBwcmludGYoIlxuenogOiAlNi40bGZcbiIsIHp6KTsKCiAgZm9yKGkgPSAwOyBpIDwgNTsgaSsrKXsKICAgIHh6WzBdICs9ICh4W2ldWzBdIC0gc3VteFswXSAvIDUuMCkgKiBtdV96eFtpXTsKICAgIHh6WzFdICs9ICh4W2ldWzFdIC0gc3VteFsxXSAvIDUuMCkgKiBtdV96eFtpXTsKICB9CgogIHByaW50ZigiXG54J3ogOiAlNi40bGYgJTYuNGxmXG4iLCB4elswXSwgeHpbMV0pOwoKICBwcmludGYoIlxuVyA9ICU2LjRsZiAlNi40bGZcbiIsIHh6WzBdICogKDEuMCAvIHp6KSwgeHpbMV0gKiAoMS4wIC8genopICk7CgogIFNpZ21hWzBdWzBdID0gKHh4WzBdWzBdIC0geHpbMF0gKiB4elswXSAqICgxLjAgLyB6eikpOwogIFNpZ21hWzBdWzFdID0gKHh4WzBdWzFdIC0geHpbMF0gKiB4elsxXSAqICgxLjAgLyB6eikpOwogIFNpZ21hWzFdWzBdID0gKHh4WzFdWzBdIC0geHpbMV0gKiB4elswXSAqICgxLjAgLyB6eikpOwogIFNpZ21hWzFdWzFdID0gKHh4WzFdWzFdIC0geHpbMV0gKiB4elsxXSAqICgxLjAgLyB6eikpOwoKICAvL+OBk+OBruetlOOBiOOCkndvbGZyYW3jgavnqoHjgaPovrzjgpPjgaflr77op5LljJbooYzliJfjgpLmsYLjgoHjgIE144Gn5Ymy44KL44GozqMKICBwcmludGYoIlxuzqNcbiU2LjRsZiAgJTYuNGxmXG4lNi40bGYgICU2LjRsZlxuIiwgU2lnbWFbMF1bMF0sU2lnbWFbMF1bMV0sU2lnbWFbMV1bMF0sU2lnbWFbMV1bMV0pOwoKICBkb3VibGUgYWZ0ZXJbMl1bMl07CgogIGFmdGVyWzBdWzBdID0geHpbMF0gKiAoMS4wIC8genopICogeHpbMF0gKiAoMS4wIC8genopOyAvL+WvvuinkuaIkOWIhuOCkuWKoOeulwogIGFmdGVyWzBdWzFdID0geHpbMF0gKiAoMS4wIC8genopICogeHpbMV0gKiAoMS4wIC8genopOwogIGFmdGVyWzFdWzBdID0geHpbMV0gKiAoMS4wIC8genopICogeHpbMF0gKiAoMS4wIC8genopOwogIGFmdGVyWzFdWzFdID0geHpbMV0gKiAoMS4wIC8genopICogeHpbMV0gKiAoMS4wIC8genopOyAvL+WvvuinkuaIkOWIhuOCkuWKoOeulwoKICBwcmludGYoIlxuQWZ0cmVyXG4lNi40bGYgICU2LjRsZlxuJTYuNGxmICAlNi40bGZcbiIsIGFmdGVyWzBdWzBdLGFmdGVyWzBdWzFdLGFmdGVyWzFdWzBdLGFmdGVyWzFdWzFdKTsKCiAgcmV0dXJuIDA7Cgp9CiBXcmFwICDigKIgSnVsIDEwdGggYXQgMTE6MjAgUE0g4oCiIDNrQiBDIHNuaXBwZXQg4oCiIFNoYXJlZCBpbiBkYXRhbW9kZWxpbmfCoApVbnNoYXJlIGZyb20gI2RhdGFtb2RlbGluZwpmb29sIEp1bCAxMHRoIGF0IDExOjIwIFBNIA==
prog.c: In function ‘main’:
prog.c:5:44: warning: unused variable ‘W’ [-Wunused-variable]
double sigma[2][2] = { {1, 0}, {0, 1} }, W[2] = {1.0, 0.0};
^
prog.c:5:10: warning: unused variable ‘sigma’ [-Wunused-variable]
double sigma[2][2] = { {1, 0}, {0, 1} }, W[2] = {1.0, 0.0};
^~~~~
prog.c: At top level:
prog.c:99:8: error: stray ‘\342’ in program
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
^
prog.c:99:9: error: stray ‘\200’ in program
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
^
prog.c:99:10: error: stray ‘\242’ in program
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
^
prog.c:99:2: error: unknown type name ‘Wrap’
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
^~~~
prog.c:99:16: error: invalid suffix "th" on integer constant
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
^~~~
prog.c:99:16: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before numeric constant
prog.c:99:33: error: stray ‘\342’ in program
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
^
prog.c:99:34: error: stray ‘\200’ in program
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
^
prog.c:99:35: error: stray ‘\242’ in program
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
^
prog.c:99:37: error: invalid suffix "kB" on integer constant
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
^~~
prog.c:99:51: error: stray ‘\342’ in program
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
^
prog.c:99:52: error: stray ‘\200’ in program
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
^
prog.c:99:53: error: stray ‘\242’ in program
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
^
prog.c:99:77: error: stray ‘\302’ in program
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
^
prog.c:99:78: error: stray ‘\240’ in program
Wrap • Jul 10th at 11:20 PM • 3kB C snippet • Shared in datamodeling
^
prog.c:100:14: error: stray ‘#’ in program
Unshare from #datamodeling
^
prog.c:101:10: error: invalid suffix "th" on integer constant
fool Jul 10th at 11:20 PM
^~~~