作者markoo (上行下笑阿..)
看板NCTU-STAT98G
标题0723 统算 补充(关於反矩阵)
时间Fri Jul 24 13:04:50 2009
同学, 昨天上课中有提到, 如果矩阵X的X[0][0]值为0,(或非常接近0)
则无法使用matrix.h中的matrix_inverse来求反矩阵,
因为高斯消去法,会使得分母为0,(或分母非常接近0造成误差太大)
这种情况就建议使用matrix_inverse2来求反矩阵,
而同样的再求行列式值时, 同样会先经过高斯消去法,
但这时候如果只是单纯求行列式值, 我们是可以经由判断X[0][0]是否为0,
来进行换行的动作
矩阵一经换行 会影响最後的反矩阵值, 但并不会影响其行列式值
所以同学可以针对高斯消去法去改写避免掉分母为0的问题
matrix_inverse 执行反矩阵速度较快
matrix_inverse2执行反矩阵速度较慢
所以同学也可以考虑折衷的办法,
例如把matrix_inverse2写在matrix_inverse内,
然後给个判断句,
Ex: if 矩阵执行高斯消去法的过程中, 没有经过换行的动作,
则执行matrix_inverse即可
else 执行matrix_inverse2.
以上 同学尽量多想多写吧:)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.166.49.79