N是二维数组的大小
a是转化前的数组
b为转化后的数组
matrix_inverse(a, b); //求逆函数
#include<iostream>
#include<math.h>
#define N 3
using namespace std;
void matrix_inverse(double(*a)[N], double(*b)[N]);
int main()
{
using namespace std;
int i, j;
double a[N][N] = { 1,2,3,2,5,4,3,7,9 };
double b[N][N] = { 0 };
matrix_inverse(a, b); //求逆函数
cout << "the inverse matrix is :\n";
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
cout << " " << b[i][j] << "\t";
}
cout << "\n";
}
return 0;
}
void matrix_inverse(double(*a)[N], double(*b)[N])
{
using namespace std;
int i, j, k;
double max, temp;
// 定义一个临时矩阵t
double t[N][N];
// 将a矩阵临时存放在矩阵t[n][n]中
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
t[i][j] = a[i][j];
}
}
// 初始化B矩阵为单位矩阵
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
b[i][j] = (i == j) ? (double)1 : 0;
}
}
// 进行列主消元,找到每一列的主元
for (i = 0; i < N;
C++矩阵求逆
最新推荐文章于 2024-02-08 23:09:22 发布