作者compbell (kiki)
看板C_and_CPP
标题Re: [语法] 请问如何写回圈计算矩阵的det值
时间Thu May 25 17:11:09 2006
※ 引述《freelancerr (lancer)》之铭言:
: 请问各位高手...
: 如果要计算矩阵的det值
: c++的语法要怎麽写呢?
: 感激不尽,小地想了好久想不出来...
考虑 SOURIAU_FRAME algorithm (以下是虚拟码)
B_0 = I
for(k=0;k<n;k++)
{
A_k=A*B_(k-1)
c=-tr(A_k)/k
B_k = A_k + c*I
}
output 的 c = 常数项
原本是用来求一个矩阵的特徵多项式
不过特徵多项式的常数项就是矩阵的det值乘上 (-1)^n ,n为矩阵的size
就是说 常数项 = detA*(-1)^n
这一个演算法要 O(n^4) 乘法
参考看看吧^^
有错烦请指正^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.165.137.149
1F:推 ferng1021:应该是 for(k=1; k<=n; k++) 吧:p 05/25 20:52
2F:→ compbell:痾...笔误...感谢指正:p 05/25 23:34
3F:→ compbell:楼上的,你那招先用高斯消去法的方法不错,我没想到XD 05/25 23:49
4F:→ gdgy:有这样的方法...研究一下... 05/26 12:21