#include<stdio.h>
int main()
{
int n,i,j,k,r;
double a[100][100],b[100],l[100][100],u[100][100],y[100],x[100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%lf",&a[i][j]);
printf(" a[%d][%d]=%f",i,j,a[i][j]);
}
printf("\n");
}
for(i=0;i<n;i++)
{
scanf("%lf/n",&b[i]);
printf(" b[%d]=%f\n",i,b[i]);
}
for(i=0;i<n;i++)
l[i][i]=1;
for(k=0;k<n;k++)
{
for(j=k;j<n;j++)
{
u[k][j]=a[k][j];
for(r=0;r<=k-1;r++)
{
u[k][j]=u[k][j]-l[k][r]*u[r][j];
}
}
for(i=k+1;i<n;i++)
{
l[i][k]=a[i][k];
for(r=0;r<=k-1;r++)
{
l[i][k]=l[i][k]-l[i][r]*u[r][k];
}
l[i][k]=l[i][k]/u[k][k];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("l[%d][%d]=%lf u[%d][%d]=%lf\n",i,j,l[i][j],i,j,u[i][j]);
}
}
for(i=0;i<n;i++)
{
y[i]=b[i];
for(j=0;j<=i-1;j++)
y[i]=y[i]-l[i][j]*y[j];
}
for(i=n-1;i>=0;i--)
{
x[i]=y[i];
for(j=i+1;j<=n-1;j++)
x[i]=x[i]-u[i][j]*x[j];
x[i]=x[i]/u[i][i];
}
for(i=0;i<n;i++)
{
printf("y[%d]=%lf x[%d]=%lf\n",i,y[i],i,x[i]);
}
}
C语言多利特尔法解线性方程
最新推荐文章于 2022-10-03 16:54:55 发布