约当消去法解方程组如图:
程序流程图如图:
/*------------解线性方程组----------------
***************约当消去法******************
*-------------Analysis---------------------
*1.a存放方程组系数,b存放方程组值
*
**********************************/
#include<iostream>
//#include<vector>
using namespace std;
int main()
{
unsigned k=0;
//unsigned v_num=3;//变量的个数/方程的个数
int i=0;
int j=0;
//vector<vector<double> >a;
double a[4][4]={{0,0,0,0},{0,2,-1,3},{0,4,2,5},{0,1,2,0}};
double b[4]={0,1,4,7};
//vector<double>b;
//cout<<"Please input the number of variables:"<<endl;
/*
cin>>v_num;
for (int i = 0; i < numRows; i++) {
vec[i].resize(zone);
}
a.resize(v_num+1 );
b.resize(v_num+1);
cout<<"Please input coefficients of equations from first to last:"<<endl;
for(i=1;i<=v_num;i++)
{
for(j=1;j<=v_num;j++)
cin>>a[i][j];
}
cout<<"Please input the values of equations from first to last:"<<endl;
for(i=1;i<=v_num;i++)
{
cin>>b[i];
}
*/
unsigned n=3;
for(k=1;k<=n;k++)
{
for(j=k+1;j<=n;j++)
{
a[k][j]=a[k][j]/a[k][k];
}
b[k]=b[k]/a[k][k];
for(i=1;i<=n;i++)
{
if(i!=k)
{
for(j=k+1;j<=n;j++)
{
a[i][j]=a[i][j]-a[i][k]*a[k][j];
}
b[i]=b[i]-a[i][k]*b[k];
}
}
}
cout<<"Eliminating successfully..."<<endl;
cout<<"--------------------"<<endl;
cout<<"b[1]:"<<b[1]<<" b[2]:"<<b[2]<<" b[3]:"<<b[3]<<endl;
cout<<"Hello,Boker"<<endl;
system("pause");
return 0;
}
运行结果如下: