C++语言解多元一次方程组
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#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
}
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<<"输入方程组等号右边值矩阵:\n";
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<<"方程组的解为:\n";
for(i=0;i