1.**思路
1)對矩陣進行合法性檢查:矩陣必須為方陣
2)計算矩陣行列式的值(determinant函式)
3)只有滿秩矩陣才有逆矩陣,因此如果行列式的值為0(在**中以絕對值小於1e-6做判斷),則終止函式,報出異常
4)求出伴隨矩陣(adjointmatrix函式)
5)逆矩陣各元素即其伴隨矩陣各元素除以矩陣行列式的商
2.函式**
(注:本段**只實現了乙個思路,可能並不是該問題的最優解)
///
/// 求矩陣的逆矩陣
///
///
///
public static double inversematrix(double matrix); }
//matrix 必須為方陣
int len = matrix.length;
for (int counter = 0; counter < matrix.length; counter++) }
//計算矩陣行列式的值
double ddeterminant = determinant(matrix);
if (math.abs(ddeterminant) <= 1e-6)
//製作乙個伴隨矩陣大小的矩陣
double result = adjointmatrix(matrix);
//矩陣的每項除以矩陣行列式的值,即為所求
for (int i = 0; i < ma程式設計客棧trix.length; i+程式設計客棧+) }
return result;
}///
/// 遞迴計算行列式的值
///
/// 程式設計客棧m name="matrix">矩陣
///
pwww.cppcns.comublic static double determinant(double matrix)
//對第一行使用「加邊法」遞迴計算行列式的值
double dsum = 0, dsign = 1;
for (int i = 0; i < matrix.length; i++)
for (int j = 0; j < matrixtemp.length; j++)
}dsum += (matrix[0][i] * dsign * determinant(matrixtemp));
dsign = dsign * -1;
} return dsum;
}///
/// 計算方陣的伴隨矩陣
///
/// 方陣
///
public static double adjointmatrix(double matrix)
//生成伴隨矩陣
for (int i = 0; i < result.length; i++)
//生成代數余子式
for (int x = 0; x < temp.length; x++)
}"代數余子式:");
//printmatrix(temp);
result[j][i] = ((i + j) % 2 == 0 ? 1 : -1) * determinant(temp);
} }"伴隨矩陣:");
//printmatrix(result);
return result;
}///
/// 列印矩陣
///
/// 待列印矩陣
private static void printmatrix(double matrix, string title = "")
//2.列印矩陣
for (int i = 0; i < matrix.length; i++)
console.writeline();
} //3.空行
console.writeline();
}3.main函式呼叫
static void main(string args)
, new double ,
new double
}; printmatrix(matrix, "原矩陣");
printmatrix(adjointmatrix(matrix), "伴隨矩陣");
console.writeline("行列式的值為:" + determinant(matrix) + '\n');
printmatrix(inversematrix(matrix), "逆矩陣");
console.readline();
}4.執行結果
本文標題: c#計算矩陣的逆矩陣方法例項分析
本文位址:
C語言計算逆矩陣
花了4天寫的,不過三天在重學線代。1 include2 include 操作記憶體 3 include pow 函式,計算 1的n次方,可以不用這個函式,偷懶使用現成的45 6顯示矩陣 7matrix 矩陣 8order 階數9 10void showmatrix float matrix,int ...
矩陣的逆矩陣,伴隨矩陣
include include include include include include include include define n 100 using namespace std templateout type convert const in value t struct numb...
逆矩陣(伴隨矩陣法)C
演算法過程 計算 判斷 a 是否為0 利用原矩陣生成a 伴隨 矩陣,具體 a 二維陣列中第 i j 個元素,除去該行該列,其他元素進入臨時陣列,計算臨時陣列行列式值,即為a i j 最後矩陣a a 即為該矩陣的逆矩陣 原始碼 include include include using namespa...