当年上大一的时候刚学到行列式的概念,草草的写过一个通过行列分解求行列式的值的程序;后来有不止一个学弟问过我“怎么求行列式的值啊?”
我便想起当年的事迹,建议道,行列分解很容易写的,你肯定可以搞定。
回想起来,这样的说法太具有误导性了——行列分解的复杂度太高了,无论是空间上还是时间上,非常不可取,非常、非常不可取。
So,下面是通过将矩阵转换为上三角形式求行列式的值的方法:
//依赖项:向量和矩阵类
// Author: IF
// License: BSD
double determinant( NA::MatDP const& m )
{
NA_ASSERT(m.rows()==m.cols());
NA::MatDP mat(m);
double d = 1;
int i,j,k,n = m.rows();
转发至微博
转发至微博
评论