作者yuchih0519 (昱)
看板C_and_CPP
标题Re: [问题] 高斯消去法
时间Wed Oct 21 22:58:12 2009
※ 引述《goodcharming (未知的未来)》之铭言:
: 请问一下高斯消去法要求MxN个矩阵要怎麽写呢
: 比如像是20x10
: http://codepad.org/TXY8pO8n
: 这是我的范例
: 不过我只会简单的3x3
: 是要把static int n=3;
: static float a_init[10][11]
: 改成
: static int n=20;
: static int m=10;
: static float a_init[20][10]
: 後面也都改成[20][10]吗
: 不过DEBUG没问题但是都没有结果
: 请问一下是要怎麽改才会有答案出来
: 谢谢
高斯消去法主要是以列(Row)运算为重心,透过列运算
逐列把方阵中 行数小於列数(Column < Row) 的元素化为0,即成为所谓的上三角矩阵
若是输入的矩阵不为方阵,必须要 行数 >= 列数,
否则在列运算时,算到 大於行数的列 时会出现 "整列都被化为0" 的状况,
一般常见应用的输入矩阵有
N x N 矩阵:求行列式值
N x N+1 (增广)矩阵:求解连立方程式
N x 2N (增广)矩阵(右半边是单位矩阵):求反矩阵(配合Jordan法)
详细的原理、证明有点不容易三言两语说明白,建议可以看看线性代数相关的书籍。
依我的经验,在工程计算里高斯消去法是个非常好用的东西,蛮值得投资点时间研究一下
以上为小弟浅见,若有误还请前辈们指教。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.167.98.181
※ 编辑: yuchih0519 来自: 114.42.158.46 (10/21 23:35)
1F:推 costbook:算法很简单,但是初学要算半天 10/22 07:56