#include <stdio.h>
#include <stdlib.h>
#define nd 20
int n;
double l[nd],d[nd],r[nd],x[nd],b[nd];
void Tridia()
{
int i;
double factor;
for(i=2;i<=n; ++i)
{
factor=l[i]/d[i-1];
d[i]=d[i]-factor*r[i-1];
b[i]=b[i]-factor*b[i-1];
}
x[n]=b[n]/d[n];
for(i=n-1;i>=1;i=i-1)
{
x[i]=(b[i]-r[i]*x[i+1])/d[i];
}
}
int main() {
int i;
printf("방정식 수n:");
scanf("%d",&n);
printf("계수행렬l(i) d(i) r(i)를 입력하시오\n");
printf("l(i) i=1,...,n:");
for(i=1;i<=n;i++) scanf("%lf",&l[i]);
printf("d(i) i=1,...,n:");
for(i=1;i<=n;i++) scanf("%lf",&d[i]);
printf("r(i) i=1,...,n:");
for(i=1;i<=n;i++) scanf("%lf",&r[i]);
printf("상수행렬 b(i)를 입력하시오\n");
printf("b(i) i=1,...,n:");
for(i=1;i<=n;i++) scanf("%lf",&b[i]);
Tridia();
printf("해는 다음과 같다. \n");
for(i=1;i<=n;i++)
{
printf("x(%d)=%f",i,x[i]);
printf("\n");
}
}
'언어 > Coding' 카테고리의 다른 글
Jacobi (0) | 2015.12.21 |
---|---|
GaussN (0) | 2015.12.21 |
Least(최소 제곱법) (0) | 2015.12.21 |
LUCrout (LU분해,해 구하기, 역행렬 구하기) (0) | 2015.12.21 |
Newton Raphson Method (0) | 2015.12.21 |