========================================================== C++ Source Code: ========================================================== int _tmain(int argc, _TCHAR* argv[]) { int i; int j; int k; double a[8][4]={0.5688, 0.1656, 0.229, 0.1067, 0.4694, 0.602, 0.9133, 0.9619, 0.0119, 0.263, 0.1524, 0.0046, 0.3371, 0.6541, 0.8258, 0.7749, 0.1622, 0.6892, 0.5383, 0.8173, 0.7943, 0.7482, 0.9961, 0.8687, 0.3112, 0.4505, 0.0782, 0.0844, 0.5285, 0.0838, 0.4427, 0.3998}; double b[4][8]={0.2769, 0.6948, 0.4387, 0.1869, 0.7094, 0.6551, 0.9597, 0.7513, 0.0462, 0.3171, 0.3816, 0.4898, 0.7547, 0.1626, 0.3404, 0.2551, 0.0971, 0.9502, 0.7655, 0.4456, 0.276, 0.119, 0.5853, 0.506, 0.8235, 0.0344, 0.7952, 0.6463, 0.6797, 0.4984, 0.2238, 0.6991}; double c[4][8]={0.8909, 0.1493, 0.8143, 0.1966, 0.3517, 0.9172, 0.3804, 0.5308, 0.9593, 0.2575, 0.2435, 0.2511, 0.8308, 0.2858, 0.5678, 0.7792, 0.5472, 0.8407, 0.9293, 0.616, 0.5853, 0.7572, 0.0759, 0.934, 0.1386, 0.2543, 0.35, 0.4733, 0.5497, 0.7537, 0.054, 0.1299}; double d[4][4]={3.2090, -2.5401, -0.5887, -1.3159, -9.4480, 14.7505, -17.3511, 16.3668, -5.5400, -1.1995, 4.5043, 3.5049, 12.0418, -10.3090, 11.8869, -17.4378}; double x[4][8]; double y[8][8]; double z[8][8]; double ab[8][8]; double ca[4][4]; double ac[8][8]; double ba[4][4]; double ad[8][4]; double abt[8][8]; double cat[4][4]; double badd[4][4]; double bbad[4][4]; /* A(B+C) */ for(i=0; i<4; i++){ for(j=0; j<8; j++){ x[i][j]=0; x[i][j]=b[i][j]+c[i][j]; } } for(i=0; i<8; i++){ for(j=0; j<8; j++){ y[i][j]=0; for (k = 0; k<4; k++) { y[i][j]+=a[i][k]*x[k][j]; } } } printf("(i) Matrix A(B+C)=AB+AC : \n"); printf("Matrix A(B+C) : \n"); for(i=0; i<8; i++){ for(j=0; j<8; j++){ printf(" %7.4f", y[i][j]); } printf("\n"); } /* AB+AC */ for(i=0; i<8; i++){ for(j=0; j<8; j++){ ab[i][j]=0; ac[i][j]=0; for (k = 0; k < 4; k++) { ab[i][j]+=a[i][k]*b[k][j]; ac[i][j]+=a[i][k]*c[k][j]; } z[i][j]=ab[i][j]+ac[i][j]; } } printf("Matrix AC+BC: \n"); for(i=0; i<8; i++){ for(j=0; j<8; j++){ printf(" %7.4f", z[i][j]); } printf("\n"); } /* (ii)AC=CA */ printf("(ii) Matrix AC=CA?: \n"); printf("Matrix AC: \n"); for(i=0; i<8; i++){ for(j=0; j<8; j++){ printf(" %7.4f", ac[i][j]); } printf("\n"); } /* matrix CA */ for(i=0; i<4; i++){ for(j=0; j<4; j++){ ca[i][j]=0; for (k = 0; k<8; k++) { ca[i][j]+=c[i][k]*a[k][j]; } } } printf("Matrix CA: \n"); for(i=0; i<4; i++){ for(j=0; j<4; j++){ printf(" %7.4f", ca[i][j]); } printf("\n"); } /* (BA)D */ for(i=0; i<4; i++){ for(j=0; j<4; j++){ ba[i][j]=0; for (k = 0; k<8; k++) { ba[i][j]+=b[i][k]*a[k][j]; } } } for(i=0; i<4; i++){ for(j=0; j<4; j++){ badd[i][j]=0; for (k = 0; k<4; k++) { badd[i][j]+=ba[i][k]*d[k][j]; } } } printf("(iii) Matrix (BA)D=B(AD) : \n"); printf("Matrix (BA)D : \n"); for(i=0; i<4; i++){ for(j=0; j<4; j++){ printf(" %7.4f", badd[i][j]); } printf("\n"); } /* B(AD) */ for(i=0; i<8; i++){ for(j=0; j<4; j++){ ad[i][j]=0; for (k = 0; k<4; k++) { ad[i][j]+=a[i][k]*d[k][j]; } } } for(i=0; i<4; i++){ for(j=0; j<4; j++){ bbad[i][j]=0; for (k = 0; k<8; k++) { bbad[i][j]+=b[i][k]*ad[k][j]; } } } printf("Matrix B(AD) : \n"); for(i=0; i<4; i++){ for(j=0; j<4; j++){ printf(" %7.4f", bbad[i][j]); } printf("\n"); } /* (AB)t */ for(i = 0; i < 8; i ++){ for(j = i; j<8 ; j ++){ abt[i][j]=0; abt[j][i]=ab[i][j]; abt[i][j]=ab[j][i]; } } printf("(iv) Transpose Matrices (AB)t and (CA)t : \n"); printf("Matrix AB : \n"); for(i=0; i<8; i++){ for(j=0; j<8; j++){ printf(" %7.4f", ab[i][j]); } printf("\n"); } printf("Matrix (AB)t : \n"); for(i=0; i<8; i++){ for(j=0; j<8; j++){ printf(" %7.4f", abt[i][j]); } printf("\n"); } /* (CA)t */ for(i = 0; i<4; i ++){ for(j = i; j<4 ; j ++){ cat[i][j]=0; cat[j][i]=ca[i][j]; cat[i][j]=ca[j][i]; } } printf("Matrix CA : \n"); for(i=0; i<4; i++){ for(j=0; j<4; j++){ printf(" %7.4f", ca[i][j]); } printf("\n"); } printf("Matrix (CA)t : \n"); for(i=0; i<4; i++){ for(j=0; j<4; j++){ printf(" %7.4f", cat[i][j]); } printf("\n"); } return 0; } ========================================================== Solutions ========================================================== (i) Matrix A(B+C)=AB+AC : Matrix A(B+C) : 1.0810 1.0162 1.3265 0.7034 1.1945 1.3028 1.0937 1.3188 2.6674 2.6555 3.6139 2.6725 3.4217 3.0126 2.0469 3.3370 0.3810 0.4354 0.4429 0.3664 0.5665 0.2759 0.3568 0.5105 2.3290 2.3630 3.1182 2.3581 3.0587 2.5171 1.8071 2.9403 2.0156 1.7329 2.4823 2.0593 2.7333 2.0591 1.4263 2.3735 3.1575 3.1351 4.1460 2.8890 3.9550 3.5449 2.6439 3.9468 0.9480 0.6860 0.9007 0.6306 1.2156 0.8655 0.9013 1.0475 1.3713 1.4025 1.9227 1.1824 1.5665 1.7570 1.1881 1.7332 Matrix AC+BC: 1.0810 1.0162 1.3265 0.7034 1.1945 1.3028 1.0937 1.3188 2.6674 2.6555 3.6139 2.6725 3.4217 3.0126 2.0469 3.3370 0.3810 0.4354 0.4429 0.3664 0.5665 0.2759 0.3568 0.5105 2.3290 2.3630 3.1182 2.3581 3.0587 2.5171 1.8071 2.9403 2.0156 1.7329 2.4823 2.0593 2.7333 2.0591 1.4263 2.3735 3.1575 3.1351 4.1460 2.8890 3.9550 3.5449 2.6439 3.9468 0.9480 0.6860 0.9007 0.6306 1.2156 0.8655 0.9013 1.0475 1.3713 1.4025 1.9227 1.1824 1.5665 1.7570 1.1881 1.7332 (ii) Matrix AC is not equal to CA: Matrix AC: 0.8057 0.3472 0.7537 0.3450 0.5303 0.8229 0.3335 0.6587 1.6288 1.2375 1.7142 1.2613 1.7285 2.0191 0.6416 1.6962 0.3469 0.1988 0.2170 0.1644 0.3144 0.2049 0.1657 0.3542 1.4871 1.1101 1.4724 1.1060 1.5713 1.7055 0.6042 1.5606 1.2135 0.8621 1.0862 0.9234 1.3940 1.3693 0.5380 1.2321 2.0909 1.3696 2.0587 1.3688 1.9615 2.3514 0.8495 2.0478 0.7639 0.2497 0.4653 0.2624 0.5759 0.5370 0.3847 0.6002 0.8489 0.5743 1.0021 0.5869 0.7344 1.1452 0.3038 0.8112 Matrix CA: 1.8373 1.7247 1.9945 1.7233 1.7043 1.6497 1.8206 1.8325 2.1382 2.3264 3.0322 2.8646 1.1352 1.5557 1.8166 1.7883 (iii) Matrix (BA)D=B(AD) : Matrix (BA)D : 1.0002 0.0001 0.0001 0.0000 0.0001 1.0000 0.0001 -0.0000 0.0001 0.0000 1.0001 0.0000 0.0001 0.0001 0.0001 1.0000 Matrix B(AD) : 1.0002 0.0001 0.0001 0.0000 0.0001 1.0000 0.0001 -0.0000 0.0001 0.0000 1.0001 0.0000 0.0001 0.0001 0.0001 1.0000 It is close to identity matrix I. (iv) Transpose Matrices (AB)t: Matrix AB : 0.2753 0.6690 0.5729 0.3584 0.6642 0.4800 0.7602 0.6601 1.0386 1.4179 1.8997 1.4112 1.6932 0.9935 1.4052 1.6408 0.0340 0.2366 0.2259 0.2019 0.2521 0.0710 0.1912 0.1564 0.8419 1.2530 1.6458 1.2522 1.4874 0.8117 1.2029 1.3797 0.8021 0.8708 1.3961 1.1360 1.3393 0.6897 0.8882 1.1414 1.0666 1.7655 2.0873 1.5202 1.9935 1.1935 1.7944 1.8990 0.1841 0.4363 0.4354 0.3682 0.6397 0.3285 0.5167 0.4473 0.5224 0.8282 0.9206 0.5955 0.8321 0.6118 0.8843 0.9219 Matrix (AB)t : 0.2753 1.0386 0.0340 0.8419 0.8021 1.0666 0.1841 0.5224 0.6690 1.4179 0.2366 1.2530 0.8708 1.7655 0.4363 0.8282 0.5729 1.8997 0.2259 1.6458 1.3961 2.0873 0.4354 0.9206 0.3584 1.4112 0.2019 1.2522 1.1360 1.5202 0.3682 0.5955 0.6642 1.6932 0.2521 1.4874 1.3393 1.9935 0.6397 0.8321 0.4800 0.9935 0.0710 0.8117 0.6897 1.1935 0.3285 0.6118 0.7602 1.4052 0.1912 1.2029 0.8882 1.7944 0.5167 0.8843 0.6601 1.6408 0.1564 1.3797 1.1414 1.8990 0.4473 0.9219