初学数值计算,深感博大精深,代码实现仅仅是用最终的公式写程序,真正值得推崇的是公式背后的思想。这个程序是在前篇博客高斯消去法的基础上,两种基本插值方法的代码实现。
#include <iostream>
#include<cmath>
using namespace std;
const int N=100;
double BMatrix[N];
class Matrix{
int size;//矩阵的大小
double matrix[N][N];//增广矩阵
double solution[N];//方程的解
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<<&#