Berikut ini merupakan tampilan program menggunakan bahasa C yang telah saya buat :
Untuk Source kodenya tinggal di copas sj gan !!!!
int n,i,j,k;
float kali[50],perkalian[50],A[50][50],U[50][50],jumlah,sigma,L[50][50],B[50];
main()
{
kembali:
printf("KELOMPOK 14 [ FAKTORISASI LU ]: \n");
printf(" MUH. HATTA \n\n");
printf("Faktorisasi LU Dengan Menggunakan Metode Doolittle Dengan persamaan berbentuk : \n\n");
printf("A11X1 + A12X2 + ..... + A1nXn = B1\n");
printf("A21X1 + A22X2 + ..... + A2nXn = B2\n");
printf(":\n:\n");
printf("An1x1 + An2x2 + ..... + Annxn = Bn\n\n");
printf("=================================================\n\n");
printf("Jumlah Baris Matriks = ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("Elemen matriks A baris ke-%d kolom ke-%d = ",i+1,j+1);
scanf("%f",&A[i][j]);
}
printf("\n");
}
printf("Masukkan Komponen Vektor B \n");
for(i=0;i<n;i++)
{
printf("Komponen vektor ke-%d = ",i+1);
scanf("%f",&B[i]);
}
if(A[0][0]==0)
{
printf("\nPersamaan tidak dapat diselesaikan karena pembagi = 0 tidak terdefenisi\n\n");
goto kembali;
}
printf("\n============================================\n\n");
printf("\n\n");
//bagian penyelesain
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
U[0][j]=A[0][j];
L[j][0]=A[j][0]/A[0][0];
}
}
for(i=1;i<n;i++)
{
for(j=i;j<=n;j++)
{
jumlah=0;
sigma=0;
for(k=0;k<i;k++)
{
kali[k]=L[i][k]*U[k][j];
perkalian[k]=L[j][k]*U[k][i];
jumlah=jumlah+kali[k];
sigma=sigma+perkalian[k];
}
U[i][j]=A[i][j]-jumlah;
if(U[i][i]==0)
{
printf("\n\n Persamaan tidak dapat diselesaikan karena pembagi = 0 tidak terdefenisi\n\n");
goto kembali;
}
L[j][i]=(A[j][i]-sigma)/U[i][i];
kali[j+1]=0;
perkalian[j+1]=0;
}
}
printf("Nilai Matriks L = \n\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%4.1f ",L[i][j]);
}
printf("\n\n");
}
printf("============================================\n\n");
printf("Nilai Matriks U = \n\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%4.1f ",U[i][j]);
}
printf("\n\n");
}
// substitusi kedepan
for(i=1;i<n;i++)
{
for(j=0;j<i;j++)
{
B[i]=B[i]-L[i][j]*B[j];
}
}
// substitusi kebelakang
B[n-1]=B[n-1]/U[n-1][n-1];
for(i=n-2;i>=0;i--)
{
for(j=i+1;j<n;j++)
{
B[i]=B[i]-U[i][j]*B[j];
}
B[i]=B[i]/U[i][i];
}
printf("Jadi, Hasil akhirnya Adalah\n");
for(i=0;i<n;i++)
{
printf("X[%2d] = %g\n",i+1,B[i]);
}
getch();
}
float kali[50],perkalian[50],A[50][50],U[50][50],jumlah,sigma,L[50][50],B[50];
main()
{
kembali:
printf("KELOMPOK 14 [ FAKTORISASI LU ]: \n");
printf(" MUH. HATTA \n\n");
printf("Faktorisasi LU Dengan Menggunakan Metode Doolittle Dengan persamaan berbentuk : \n\n");
printf("A11X1 + A12X2 + ..... + A1nXn = B1\n");
printf("A21X1 + A22X2 + ..... + A2nXn = B2\n");
printf(":\n:\n");
printf("An1x1 + An2x2 + ..... + Annxn = Bn\n\n");
printf("=================================================\n\n");
printf("Jumlah Baris Matriks = ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("Elemen matriks A baris ke-%d kolom ke-%d = ",i+1,j+1);
scanf("%f",&A[i][j]);
}
printf("\n");
}
printf("Masukkan Komponen Vektor B \n");
for(i=0;i<n;i++)
{
printf("Komponen vektor ke-%d = ",i+1);
scanf("%f",&B[i]);
}
if(A[0][0]==0)
{
printf("\nPersamaan tidak dapat diselesaikan karena pembagi = 0 tidak terdefenisi\n\n");
goto kembali;
}
printf("\n============================================\n\n");
printf("\n\n");
//bagian penyelesain
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
U[0][j]=A[0][j];
L[j][0]=A[j][0]/A[0][0];
}
}
for(i=1;i<n;i++)
{
for(j=i;j<=n;j++)
{
jumlah=0;
sigma=0;
for(k=0;k<i;k++)
{
kali[k]=L[i][k]*U[k][j];
perkalian[k]=L[j][k]*U[k][i];
jumlah=jumlah+kali[k];
sigma=sigma+perkalian[k];
}
U[i][j]=A[i][j]-jumlah;
if(U[i][i]==0)
{
printf("\n\n Persamaan tidak dapat diselesaikan karena pembagi = 0 tidak terdefenisi\n\n");
goto kembali;
}
L[j][i]=(A[j][i]-sigma)/U[i][i];
kali[j+1]=0;
perkalian[j+1]=0;
}
}
printf("Nilai Matriks L = \n\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%4.1f ",L[i][j]);
}
printf("\n\n");
}
printf("============================================\n\n");
printf("Nilai Matriks U = \n\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%4.1f ",U[i][j]);
}
printf("\n\n");
}
// substitusi kedepan
for(i=1;i<n;i++)
{
for(j=0;j<i;j++)
{
B[i]=B[i]-L[i][j]*B[j];
}
}
// substitusi kebelakang
B[n-1]=B[n-1]/U[n-1][n-1];
for(i=n-2;i>=0;i--)
{
for(j=i+1;j<n;j++)
{
B[i]=B[i]-U[i][j]*B[j];
}
B[i]=B[i]/U[i][i];
}
printf("Jadi, Hasil akhirnya Adalah\n");
for(i=0;i<n;i++)
{
printf("X[%2d] = %g\n",i+1,B[i]);
}
getch();
}
No comments:
Post a Comment