C++矩阵求逆

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; 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值