/*
难道又是SAS/IML的bug, 求高手解答
在做线性代数习题时,有一道例题,把矩阵a化简为阶梯形矩阵。
a = { 6 2 2 2 4 ,
2 2 0 0 -4 ,
2 0 2 0 2 ,
2 0 0 2 6 } ;
书中答案是:
x = { 1 0 0 1 3 ,
0 1 0 -1 -5 ,
0 0 1 -1 -2 ,
0 0 0 0 0 } ;
会线性代数的同学可手工化简一下,答案确实如上。
但问题是, 我在SAS/IML里用如下代码计算时, 给出的答案是
x = { 1 0 0 1 0 ,
0 1 0 -1 0 ,
0 0 1 -1 0 ,
0 0 0 0 1 } ;
这明显不对嘛!而且每个矩阵只能化简成惟一的阶梯形矩阵,不可能有多个解的嘛!
我的代码应该也没错误。 我计算别的例题的矩阵时,用如下代码都能得出正确答案。
各位可在自己的SAS里跑一跑, 看是不是这个情况 ?!
难道是我对echelon()这个函数理解有误?!
百思不得其解中!
求高手赐教 。
*/
proc iml ;
a = { 6 2 2 2 4 ,
2 2 0 0 -4 ,
2 0 2 0 2 ,
2 0 0 2 6 } ;
print a ;
x = echelon(a) ; /* 将矩阵a化简为阶梯形. */
print x ;
quit ;