C++语言解多元一次方程组

余年寄山水
509次浏览
2020年07月29日 00:32
最佳经验
本文由作者推荐

惊慌失措-什么词滥

#include //注意:不能使系数矩阵的行列式为0
#include
#define N 20
using namespace std;
int power(int m,int n)
{
int sum=1;
if(n==0&&m!=0)
return 1;
else
{
for(int i=0;isum*=m;
return sum;
}
}
double det(double a[N][N],int n)
{
double A;
double b[N];
if(n==1)
{
A=a[0][0];
return A;
}
else if(n==2)
{
A=a[0][0]*a[1][1]-a[0][1]*a[1][0];
return A;
}
else if(n==3)
{
A=a[0][0]*a[1][1]*a[2][2]+a[0][1]*a[1][2]*a[2][0]+a[0][2]*a[1][0]*a[2][1]-a[0][2]*a[1][1]*a[2][0]-a[0][1]*a[1][0]*a[2][2]-a[0][0]*a[1][2]*a[2][1];
return A;
}
else
{
A=0;
double c[N][N];
for(int i=0;ib[i]=a[i][0]*power(-1,i+1+1);
for(int i=0;ifor(int j=0;ja[i][j]=a[i][j+1];
for(int i=0;ifor(int j=0;jc[i][j]=a[i][j];
for(int i=0;i{
for(int j=i;j{
for(int k=0;k{
a[j][k]=a[j+1][k];
}
}
A+=b[i]*det(a,n-1);
for(int i=0;ifor(int j=0;ja[i][j]=c[i][j];
}t
return A;
}
}
void main()
{
double a[N][N],B[N],xs[N][N],ZJ[N][N],A[N][N],BS[N][N],x[N],hlsz,k=-1;
int m,i,j;
cout<<"请输入方程组的元数:"<cin>>m;
cout<<"请输入输入方程组的系数矩阵:"<for(i=0;ifor(j=0;jcin>>xs[i][j];
cout<<"输入方程组等号右边值矩阵:
";
for(i=0;icin>>B[i];
for(i=0;ifor(j=0;ja[i][j]=xs[i][j];
hlsz=det(a,m);
for(i=0;ifor(j=0;j{
for(int b=0;bfor(int c=0;ca[b][c]=xs[b][c];
for(int b=0;bfor(int c=0;c{
if(belse if(b=j) ZJ[b][c]=a[b][c+1];
else if(b>=i&&celse ZJ[b][c]=a[b+1][c+1];
}
for(int b=0;bfor(int c=0;ca[b][c]=ZJ[b][c];
A[i][j]=pow(k,i+j)*det(a,m-1);
}
for(i=0;ifor(j=0;jBS[j][i]=A[i][j];
for(i=0;ifor(j=0;jBS[i][j]/=hlsz;
for(i=0;i{
double sum=0;
for(j=0;j{
sum+=BS[i][j]*B[j];
}
x[i]=sum;
}
cout<<"方程组的解为:
";
for(i=0;icout<<'x'<';
}

形容甜的成语-丛怎么读


身亡所寄-斥怎么读


麦克斯韦关系式-膘怎么读


风流的意思-所以然


中点坐标公式-世故什么意思


知己知彼的意思-兕觥


相对是什么意思-务必的意思


形容好学的成语-磋商