简单的实现了一下数值计算课上的一个高斯消去求解多元方程的算法。代码如下
#include<iostream>
#include<cmath>
using namespace std;
const int N=10;
const int N1=100;
double BMatrix[N];
class Matrix{
int size;//矩阵的大小
double matrix[N1][N1];//增广矩阵
double solution[N1];//方程的解
public:
Matrix(int k);//构造系数矩阵
void disPlay();//显示增广矩阵
void setAugmetMatrix(double *BMatrix);//生成增广矩阵
bool solveMatrix();//解矩阵,其中有消元和回代的过程
int getSize();//获取矩阵的大小
double* getSolution();//获得解的数组
double* getFirstMatrix();//获取矩阵第一行第一列元素
int getMaxMainElement(int currentCol);//获取最大主元所在的行
void exchangTwoRow(int row1,int row2);//交互矩阵中的两行
};
bool Matrix::solveMatrix(){
for (int i = 1; i <= size; i++)//最外层循环遍历整个矩阵
{
if (getMaxMainElement(i)>0 &&i!=getMaxMainElement(i))
{
exchangTwoRow(getMaxMainElement(i),i);//交换行
}
cout<<"第"<<i<<"变换"<<endl;
disPlay();
cout<<endl;
f