📄 doolittle.c
字号:
#include "iostream.h"
#include "stdio.h"
#define max 20
main()
{
int i,k,n,j,r;
double x,v,y;
double a[max][max],u[max][max],l[max][max];
double b[max],Y[max],X[max];
/*输入*/
printf("Input n:");
scanf("%d",&n);
printf("Input a[%d][%d]:\n",n,n);
for(i=1;i<n+1;i++)
for(j=1;j<n+1;j++)
{
scanf("%lf",&x);
a[i][j]=x;
}
printf("b[i]:");
for(i=1;i<n+1;i++)
{ scanf("%lf",&y); b[i]=y; }
/*计算*/
for(r=1;r<n+1;r++)
{
for(i=r;i<n+1;i++)
{ v=0;
for(k=1;k<r;k++)
v=l[r][k]*u[k][i]+v;
u[r][i]=a[r][i]-v; printf("u[%d][%d]=%f\n",r,i,u[r][i]);
}
for(i=r+1;i<n+1;i++)
{ v=0;
for(k=1;k<r;k++)
v=v+l[i][k]*u[k][k];
l[i][r]=(a[i][r]-v)/u[r][r]; printf("l[%d][%d]=%f\n",i,r,l[i][r]);
}
}
for(i=1;i<n+1;i++)
{
v=0;
for(k=1;k<i;k++)
v=v+l[i][k]*Y[k];
Y[i]=b[i]-v;
}
for(i=n;i>0;i--)
{
v=0;
for(k=i+1;k<n+1;k++)
v=v+u[i][k]*X[k];
X[i]=(Y[i]-v)/u[i][i];
}
printf("\n");
for(i=1;i<n+1;i++)
printf("x[%d]=%f\n",i,X[i]);
printf("\n");
for(i=1;i<n+1;i++)
printf("y[%d]=%f\n",i,Y[i]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -