1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | //lu decomposition inline void lu_m(mxd::r _m){ i::t idx = 0; while(idx < _m.rows()){ mxd::b A00 = _m.block(0 , 0 , idx , idx ); mxd::b a10 = _m.block(idx , 0 , 1 , idx ); mxd::b A20 = _m.block(idx + 1, 0 , _m .rows() - (idx + 1) , idx ); mxd::b a01 = _m.block(0 , idx , idx , 1 ); mxd::b alpha11 = _m.block(idx , idx , 1 , 1 ); mxd::b a21 = _m.block(idx + 1, idx , _m.rows() - (idx + 1) , 1 ); mxd::b A02 = _m.block(0 , idx + 1 , idx , _m.cols() - (idx + 1) ); mxd::b a12 = _m.block(idx , idx + 1 , 1 , _m.cols() - (idx + 1) ); mxd::b A22 = _m.block(idx + 1, idx + 1 , _m.rows() - (idx + 1) , _m.cols() - (idx + 1) ); a21 = a21 / alpha11.value(); A22 = A22 - a21 * a12; idx++; } } | cs |
'Linear Algebra' 카테고리의 다른 글
[Eigen] Day 10. LU decomposition with pivoting (0) | 2019.06.04 |
---|---|
[Eigen] Day 9. solving triangular matrix (0) | 2019.06.02 |
[Eigen] day 9. Gauss elimination, matrix to upper triangular form (0) | 2019.06.02 |
[Eigen] Day 8. special matrix and vector multiplication (0) | 2019.06.01 |
[Eigen] Day 8. matrix multiplication and it's application : predicting the weather (0) | 2019.06.01 |