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

📄 gsandly.cpp

📁 高斯消去和列主元消元法.20个字
💻 CPP
字号:
#include<iostream>
using namespace std;

void main(){
double a[100][100];

int xline=0;
int xnumber=0;
int xn;
int n=2;
cout<<"1.高斯消去法\n2.列主元消元法\n";
cin>>n;


cout<<"输入增广矩阵的行数:";
cin>>xline;
cout<<"输入增广矩阵的列数:";
cin>>xn;
xnumber=xn-1;
cout<<"输入增广矩阵:";
cout<<"(例:求方程组:5x^2+4x=4和4X^2+2=1的解,输入:";
cout<<"5 4 4 4 2 1) \n";

for(int ii=0;ii<xline;ii++){
	for(int jj=0;jj<=xnumber;jj++){
		cin>>a[ii][jj];
	}
}



int temp;
double maxtemp;


for(int i1=0;i1<xnumber-1;i1++){
if(n==2){
	 temp=i1;
     maxtemp=a[i1][i1];
	for(int k=i1+1;k<xline;k++){
		if(a[k][i1]*a[k][i1]>maxtemp*maxtemp){
		maxtemp=a[k][i1];
		temp=k;
		}
	}

	if(temp!=i1){
		for(int k1=0;k1<xnumber+1;k1++){
        maxtemp=a[i1][k1];
		a[i1][k1]=a[temp][k1];
		a[temp][k1]=maxtemp;
		}
}
}

cout<<"begin----------"<<endl;
for(int i=0;i<xline;i++){
for(int j=0;j<=xnumber;j++)
cout<<a[i][j]<<"\t";
cout<<endl;
}
cout<<"---------------"<<endl;


	for(int i2=i1+1;i2<xline;i2++){

/*
for(int i=0;i<xline;i++){
for(int j=0;j<=xnumber;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
*/




if(a[i1][i1]!=0&&a[i2][i1]!=0){

    double d=a[i2][i1];

//cout<<"d:"<<d<<endl;

    for(int i3=i1;i3<=xnumber;i3++){

    a[i2][i3]=a[i2][i3]-d*a[i1][i3]/a[i1][i1];}

/*
for(int i4=0;i4<xline;i4++){
	for(int j4=0;j4<=xnumber;j4++)
    cout<<a[i4][j4]<<" ";
cout<<endl;
}
*/

}
	
	
		}
cout<<"----------"<<endl;
for(int ii=0;ii<xline;ii++){
for(int jj=0;jj<=xnumber;jj++)
cout<<a[ii][jj]<<"\t";
cout<<endl;
}
cout<<"----------"<<endl;
}


double x[100];

for(int j6=xline-1;j6>=0;j6--){

	for(int j5=j6+1;j5<xnumber;j5++){
   
		a[j6][xnumber]=a[j6][xnumber]-a[j6][j5]*x[j5];
	}

	x[j6]=a[j6][xnumber]/a[j6][j6];
}
for(int j7=0;j7<xline;j7++)
cout<<"x["<<j7+1<<"]:"<<x[j7 ]<<endl;

double pp=a[0][0];
for(int p=1;p<xline;p++){
pp=pp*a[p][p];
}
cout<<"\n行列式:"<<pp<<endl;



}

⌨️ 快捷键说明

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