⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gaussmain.cpp

📁 采用高斯消元法实现的n阶线性方程组求解程序;
💻 CPP
字号:
// gauss.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include "math.h"

bool matrix_reverse(double *m, int n, double *r);
void matrix_multiply(double *m1, double *m2, int n, double *r);
bool matrix_isIdentity(double *m, int n);

bool test(double *m, int n, double *r)
{
	double v;
	for( int i=0; i<n; i++ )
	{
		for( int j=0; j<n; j++ )
		{
			v = 0;
			for( int k=0; k<n; k++)
			{
				v += (m[i*n+k]*r[k*n+j]);
			}
			if( i==j && fabs(v-1.0)>1e-8 )return false;
			if( i!=j && fabs(v)>1e-8 )return false;
		}
	}

	return true;
}

int main(int argc, char* argv[])
{
	double m[16]={21,31,51,61,71,91,33,25,12,17,35,12,10,50,90,11};
	double r[16];
	double r2[16];
	if( !matrix_reverse(m,4,r) )
	{
		printf("BAD!\n");
		return 1;
	}

	matrix_multiply(m,r,4,r2);
	if( matrix_isIdentity(r2,4) )
		printf("OK!\n");
	if( test(m,4,r) )printf("OK!\n");
	else printf("NO!\n");
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -