C语言计算行列式以及代数余子式的函数

C语言计算行列式以及代数余子式的函数

#include
#define N 50
double algebraic_cofactor(double P[N][N],int m,int a,int b);
double determinant(double P[N][N],int m);

void main()
{
	double P[N][N];//待求矩阵
	int m,a,b;
}

//求代数余子式;m为阶数;a、b分别为元素所在的行与列
double algebraic_cofactor(double P[N][N],int m,int a,int b)
{	
	int i,j,x,z;
	double sum;
	if(m<2) printf("输入错误,矩阵小于2阶");
	else if(m==2) sum=P[m-a][m-b];
	else
	{
		double Q[N][N]={0};
		x=0;
		for(i=0;i

主要思路是通过代数余子式函数与行列式函数相互调用求解,由此可拓展出矩阵求逆的函数:

void main()
{
	double P[N][N];//待求矩阵
	double Q[N][N];//待求逆矩阵
	int m,a,b;
}

//求逆矩阵;m为阶数
void inverse_matrix(double P[N][N],double Q[N][N],int m)
{
	int i,j,k,l;
	double A,B;
	A=determinant(P,m);
	if(A!=0) 
	{
		for(i=0;i

你可能感兴趣的:(矩阵函数,算法,递归,行列式,代数余子式)