用C++写一个矩阵逆运算的代码
时间: 2023-05-19 09:03:10 浏览: 111
以下是一个简单的矩阵逆运算的代码示例:
```c
#include <stdio.h>
#define N 3
void inverse(double A[][N], double B[][N])
{
int i, j, k;
double temp;
// 初始化为单位矩阵
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
B[i][j] = (i == j) ? 1.0 : 0.0;
}
}
// 高斯-约旦消元法
for (i = 0; i < N; i++) {
temp = A[i][i];
for (j = 0; j < N; j++) {
A[i][j] /= temp;
B[i][j] /= temp;
}
for (j = 0; j < N; j++) {
if (j != i) {
temp = A[j][i];
for (k = 0; k < N; k++) {
A[j][k] -= A[i][k] * temp;
B[j][k] -= B[i][k] * temp;
}
}
}
}
}
int main()
{
double A[N][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
double B[N][N];
int i, j;
inverse(A, B);
printf("原矩阵:\n");
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
printf("%f ", A[i][j]);
}
printf("\n");
}
printf("逆矩阵:\n");
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
printf("%f ", B[i][j]);
}
printf("\n");
}
return 0;
}
```
该代码使用高斯-约旦消元法计算矩阵的逆矩阵。在 `main` 函数中,我们定义了一个 $3 \times 3$ 的矩阵 `A`,并调用 `inverse` 函数计算其逆矩阵,结果存储在矩阵 `B` 中。最后,我们输出原矩阵和逆矩阵的值。
阅读全文