Tuesday, 15 April 2014

metode numerik LU decomposition menggunakan bahasa pemrograman c/c++

hasilnya
-------------------------------------------------------------------------------------------------------------------
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>

int main()
{
printf ("program untuk LU Decomposition\n\n");
int i,j,n,k,m,o,c;
float a[10][10],x[10],b[10],u[10][10],l[10][10],f[10][10],f32,d[10],q,w,e,r,t,y;
printf("masukan banyak persamaan yang diinginkan: ");
scanf("%d",&n);
printf("\nmasukan nilai2 koefisien matriks nya : \n\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("Baris[%d],Kolom[%d] = ",i,j);
scanf("%f",&a[i][j]);
}
printf("\n");
}
printf("\nmasukan nilai2 matriks B : \n\n");
for(i=1;i<2;i++)
{
for(j=1;j<=n;j++)
{
printf("nilai B [%d] = ",j);
scanf("%f",&b[j]);
}
printf("\n");
}
//cetak
printf("matrik A :\n");
for(i=1;i<=n;i++)
{
printf("|");
for(j=1;j<=n;j++)
{
printf("   %f   ",a[i][j]);
}
printf("|");
printf("\t|x%d|   =",i);
printf("\n");
}

printf("matrik B :\n");
for(i=1;i<2;i++)
{
for(j=1;j<=n;j++)
{
printf("|");
printf("   %f   ",b[j]);
printf("|");
printf("\n");
}
}
//U
printf("\n Matrik U :\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
u[i][j]=a[i][j];
if(i==1)
{
u[i][j]=a[i][j];
printf("   %f  ",u[i][j]);
}
else if (i>1)
{
k=1;
u[i][j]=a[i][j]-((a[i][k]/a[k][k])*a[k][j]);
f[i][j]=u[i][j];
//f32 untuk L
f32=f[3][2]/f[2][2];
if(i==2)
{
u[2][1]=0;
printf("   %f  ",u[i][j]);
}
else
{
m=3;
o=2;
u[m][j]=u[m][j]-((f[m][o]/f[o][o])*u[o][j]);
u[3][1]=0;
u[3][2]=0;
printf("   %f  ",u[i][j]);
}
}
}
printf("\n");
}
q=u[3][3];
w=u[2][3];
e=u[2][2];
r=u[1][2];
t=u[1][3];
y=u[1][1];
//L
printf("\n Matrik L :\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(j>i)
{
u[i][j]=0;
printf("   %f   ",u[i][j]);
}
else if(j==i)
{
u[i][j]=1;
printf("   %f   ",u[i][j]);
}
else
{
u[i][j]=a[i][j];
for(k=2;k<=n;k++)
{
if(j==1)
{
u[k][j]=a[k][j]/a[j][j];
}
u[3][2]=f32;

d[1]=b[1];
d[2]=b[2]-(u[2][1]*d[1]);
d[3]=b[3]-(u[3][1]*d[1])-(u[3][2]*d[2]);
}
printf("   %f   ",u[i][j]);
}
}
printf("\n");
}
//cari d1,d2,d3
printf("\n");
for(j=1;j<=n;j++)
{
printf(" nilai D%d = %f \n",j,d[j]);
}
x[3]=d[3]/q;
x[2]=(d[2]-(w*x[3]))/e;
x[1]=(d[1]-(r*x[2])-(t*x[3]))/y;
//cari x1,x2,x3
printf("\n");
for(j=1;j<=n;j++)
{
printf(" nilai X%d = %f \n",j,x[j]);
}
system("pause");
return 0;
}

hasilnya

No comments:

Post a Comment