如何用C语言编写求矩阵的逆矩阵
时间: 2023-07-05 13:26:20 浏览: 500
要求一个矩阵的逆矩阵,需要用到线性代数中的矩阵求逆的方法。在C语言中,可以使用高斯-约旦消元法或LU分解法实现。
下面是一个使用高斯-约旦消元法求矩阵逆矩阵的示例代码:
```c
#include <stdio.h>
#define N 3 // 矩阵维度
void printMatrix(double matrix[N][N*2]) {
for(int i=0; i<N; i++) {
for(int j=0; j<N*2; j++) {
printf("%f ", matrix[i][j]);
}
printf("\n");
}
}
void gaussJordan(double matrix[N][N*2]) {
for(int i=0; i<N; i++) {
double pivot = matrix[i][i];
for(int j=0; j<N*2; j++) {
matrix[i][j] /= pivot;
}
for(int j=0; j<N; j++) {
if(i != j) {
double factor = matrix[j][i];
for(int k=0; k<N*2; k++) {
matrix[j][k] -= factor * matrix[i][k];
}
}
}
}
}
int main() {
double matrix[N][N*2] = { // 原始矩阵和单位矩阵拼接在一起
{2, 1, 3, 1, 0, 0},
{4, 3, 7, 0, 1, 0},
{2, 5, 9, 0, 0, 1}
};
printf("原始矩阵和单位矩阵:\n");
printMatrix(matrix);
gaussJordan(matrix);
printf("逆矩阵:\n");
printMatrix(matrix);
return 0;
}
```
这个示例代码中,我们先将原始矩阵和单位矩阵拼接在一起作为一个大矩阵。然后使用高斯-约旦消元法将大矩阵变换为一个左半边为单位矩阵的右半边为逆矩阵的矩阵。最后将右半边的矩阵提取出来即可得到原始矩阵的逆矩阵。
阅读全文