C++语言解多元一次方程组
余年寄山水
509次浏览
2020年07月29日 00:32
最佳经验
本文由作者推荐
惊慌失措-什么词滥
#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;i
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;i
for(int i=0;i
for(int i=0;i
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;i
}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<<"请输入方程组的元数:"<
cout<<"请输入输入方程组的系数矩阵:"<
cout<<"输入方程组等号右边值矩阵:
";
for(i=0;i
for(i=0;i
hlsz=det(a,m);
for(i=0;i
for(int b=0;b
for(int b=0;b
if(belse if(b=j) ZJ[b][c]=a[b][c+1];
else if(b>=i&&c
}
for(int b=0;b
A[i][j]=pow(k,i+j)*det(a,m-1);
}
for(i=0;i
for(i=0;i
for(i=0;i
double sum=0;
for(j=0;j
sum+=BS[i][j]*B[j];
}
x[i]=sum;
}
cout<<"方程组的解为:
";
for(i=0;i
}