java如何编写求矩阵的逆矩阵

来源:百度知道 编辑:UC知道 时间:2024/05/16 04:25:39
求求大家了,帮帮忙,小女子将感激不尽!我有急用!帮帮忙了!!

/**
* 求矩阵的逆矩阵 为矩阵右加一个单位矩阵后进行初等行变换,当左边变成单位矩阵时,右边就是求得的逆矩阵。 矩阵的初等行变换法则
* (1)交换变换:交换两行 (2)倍法变换:给一行数据乘以一个非0常数 (3)消法变换:把一行所有元素的k倍加到另一行的对应元素上去
* 将上述规则中的行换成列同样有效 只有方阵才可能有逆矩阵!
*
* @return
*/
public Matrix inverseMatrix() {
if (!this.isSquareMatrix()) {
System.out.println("不是方阵没有逆矩阵!");
return null;
}
// 先在右边加上一个单位矩阵。
Matrix tempM = this.appendUnitMatrix();
// 再进行初等变换,把左边部分变成单位矩阵
double[][] tempData = tempM.getMatrixData();
int tempRow = tempData.length;
int tempCol = tempData[0].length;
// 对角线上数字为0时,用于交换的行号
int line = 0;
// 对角线上数字的大小
double bs = 0;
// 一个临时变量,用于交换数字时做中间结果用
double swap = 0;
for (int i = 0; i < tempRow; i++) {
// 将左边部分对角线上的数据等于0,与其他行进行交换
i