📄 高斯消去法.cpp
字号:
#include <iostream.h>
void main()
{
double a[10][10],b[10],d,t,m,sum;
int i,j,l,k,n;
cout<<"请输入方程的个数(n的值):";
cin>>n;
for(i=0;i<=n-1;i++)
{
cout<<"请输入b["<<i+1<<"]的值:";
cin>>m;
b[i]=m;
for(j=0;j<=n-1;j++)
{
cout<<"请输入a["<<i+1<<"]["<<j+1<<"]的值:";
cin>>m;
a[i][j]=m;
}
cout<<endl;
}
k=0;
while(k!=n)
{
d=a[k][k];
l=k;
i=k+1;
while(i!=n)
{
if((a[i][k]*a[i][k])>(d*d))
{
d=a[i][k];
l=i;
}
i=i+1;
}
if(d==0)
cout<<"$"<<endl;
if(l!=k)
{
for(j=k;j<=n-1;j++)
{
t=a[l][j];
a[l][j]=a[k][j];
a[k][j]=t;
}
t=b[k];
b[k]=b[l];
b[l]=t;
}
for(j=k+1;j<=n-1;j++)
{
a[k][j]=a[k][j]/a[k][k];
}
b[k]=b[k]/a[k][k];
for(i=k+1;i<=n-1;i++)
{
for(j=k+1;j<=n-1;j++)
a[i][j]=a[i][j]-a[i][k]*a[k][j];
}
for(i=k+1;i<=n-1;i++)
{
b[i]=b[i]-a[i][k]*b[k];
}
k=k+1;
}
for(i=n-1;i>=0;i--)
{
sum=0;
for(j=i+1;j<=n-1;j++)
sum=sum+a[i][j]*b[j];
b[i]=b[i]-sum;
}
for(i=0;i<=n-1;i++)
cout<<"b("<<i+1<<")的值为:"<<b[i]<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -