c语言编写一个矩阵的逆
时间: 2024-04-15 15:21:12 浏览: 156
C语言中可以使用高斯-约旦消元法来求解矩阵的逆。下面是一个示例代码:
```c
#include <stdio.h>
#define N 3
void printMatrix(float matrix[N][N]) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%.2f ", matrix[i][j]);
}
printf("\n");
}
}
void inverseMatrix(float matrix[N][N]) {
float identity[N][N];
float factor;
// 初始化单位矩阵
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (i == j) {
identity[i][j] = 1;
} else {
identity[i][j] = 0;
}
}
}
// 高斯-约旦消元法
for (int i = 0; i < N; i++) {
factor = matrix[i][i];
for (int j = 0; j < N; j++) {
matrix[i][j] /= factor;
identity[i][j] /= factor;
}
for (int k = 0; k < N; k++) {
if (k != i) {
factor = matrix[k][i];
for (int j = 0; j < N; j++) {
matrix[k][j] -= factor * matrix[i][j];
identity[k][j] -= factor * identity[i][j];
}
}
}
}
// 打印逆矩阵
printf("Inverse matrix:\n");
printMatrix(identity);
}
int main() {
float matrix[N][N] = {{2, 3, 1}, {4, 1, 2}, {3, 2, 1}};
printf("Original matrix:\n");
printMatrix(matrix);
inverseMatrix(matrix);
return 0;
}
```
这段代码首先定义了一个`printMatrix`函数,用于打印矩阵。然后定义了一个`inverseMatrix`函数,用于求解矩阵的逆。在`inverseMatrix`函数中,首先初始化一个单位矩阵,然后使用高斯-约旦消元法将原始矩阵转化为单位矩阵,同时对单位矩阵进行相同的操作,最终得到逆矩阵。最后,在`main`函数中定义了一个3x3的矩阵,并调用`inverseMatrix`函数来求解逆矩阵。
阅读全文