📄 gaussian_row.c
字号:
#include "math.h"
#include "stdio.h"
#define N 10
main()
{ double a[N][N]={0};
double x[N],b[N],y[N],sum,max,m,n;
int i=0,j=0,k=0,h=0,c=0;
int z[N];
sum=0;max=0;
for(i=0;i<N;i++)
{
a[i][i]=3;
a[i][i+1]=1;
a[i+1][i]=9;
}
b[0]=4;
for(i=1;i<N-1;i++)
{
b[i]=13;
}
b[N-1]=12;
for(i=0;i<N;i++)
{for(k=0;k<N;k++)
if(fabs(a[k][k])>max)
{max=fabs(a[k][k]);z[i]=k;
for(h=0;h<N;h++)
{m=a[i][h];n=b[i];
a[i][h]=a[k][h];a[k][h]=m;
b[i]=b[k];b[k]=n;
}
}
else z[i]=i;
for(j=i;j<N;j++)
a[i][j]=a[i][j]/a[i][i];
b[i]=b[i]/a[i][i];
for(k=i+1;k<N;k++)
{for(j=i;j<N;j++)
a[k][j]=a[k][j]-a[i][j]*a[k][i];
b[k]=b[k]-b[i]*a[k][i];
}
}
for(i=N-1;i>=0;i--)
{for(k=N-1;k>i;k--)
sum=sum+a[i][k]*x[k];
x[i]=(b[i]-sum)/a[i][i];
sum=0;
}
for(i=0;i<N;i++)
{c=z[i];
y[c]=x[i];
}
printf("\nA\n");
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%4f ",a[i][j]);
printf("\n");
}
getchar();
printf("\nX\n");
for(i=0;i<N;i++)
{
printf("%4f\n",y[i]);
}
getchar();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -