C 計算矩陣的逆矩陣方法例項分析

2022-10-06 15:45:17 字數 2336 閱讀 8681

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...