proc fcmp;
array mat1[3,3] (3,5,0,9,1,2,8,7,9);
array inv_mat1[3,3] /nosym;
array result[3,3] /nosym;
/*call invでmat1の逆行列をinv_mat1に格納 */
call inv(mat1,inv_mat1);
/*mat1と逆行列の行列積をresultに格納*/
call mult(mat1, inv_mat1, result);
rc = write_array("MAT1", mat1 ) ;
rc = write_array("INV_MAT1", inv_mat1 ) ;
rc = write_array("RESULT", result ) ;
quit;
proc print data=MAT1;
run;
proc print data=INV_MAT1;
run;
proc print data=RESULT;
run;
浮動小数点誤差で-0とかってなってますが,逆行列かけたら 単位行列になるのが確認できる
0 件のコメント:
コメントを投稿