Pengikut

Minggu, 09 Desember 2012

C++ Metode Eliminasi Gauss & Gauss Jordan

Soal       



















Jawaban Menggunakan C++

Metode Gauss














Syntak :
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
float a[6][6]={{4,3,5,-6,8,-2},{-9,-2,-3,10,4,-3},{2,4,6,-3,-2,2},{5,-7,8,3,9,3},{0,5,-2,10,6,-7},{-10,2,8,5,9,2}};
float k[6][6];
float b[6]={30,50,-32,-24,28,60};
float l[6];
float temp,x[6];
int n,i,j;
void TampilPersamaanK(int i);
void TampilPersamaanA(int i);
void main(){
cout<<"==================================================================\n";
cout<<"             PENYELESAIAN SISTEM PERSAMAAN LINIER\n";
cout<<"                        METODE GAUSS\n";
cout<<"==================================================================\n";
cout<<endl;

cout<<"Dik. persamaan Liniernya sebagai berikut : \n";
cout<<"==================================================================\n";
for (i=0;i<6;i++){
cout<<(i+1)<<".) ";
TampilPersamaanA(i);
}
for (n=0;n<(6-1);n++){
temp = a[n][n];
//penormalan
for (j=0;j<6;j++){
k[n][j]=a[n][j];
a[n][j]=a[n][j]/temp;
}
l[n]=b[n];
b[n]=b[n]/temp;
//proses penghilangan variabel
for (i=(n+1);i<6;i++){
temp = a[i][n];
for (j=n;j<6;j++){
a[i][j]=a[i][j]-(a[n][j]*temp);
}
b[i]=b[i]-(b[n]*temp);
}
}
cout<<"==================================================================\n";
cout<<"\nSetelah dilakukan penormalan dan penghilangan variabel,\n";
cout<<"maka didapat persamaan baru yaitu \n";
for (i=0;i<6;i++){
cout<<(i+1)<<".) ";
if (i<(6-1))
TampilPersamaanK(i);
else
TampilPersamaanA(i);
}
//penghitungan x
temp=a[5][5];
x[5]=b[5]/temp;
for (i=(6-2);i>=0;i--){
temp=k[i][i];
for (j=i+1;j<6;j++){
l[i]=l[i]-(k[i][j]*x[j]);
}
x[i]=l[i]/temp;
}
cout<<"\nSetelah dilakukan eliminasi dan substitusi pada persamaan diatas,\n";
cout<<"maka didapat nilai masing-masing x yaitu \n";
cout<<"*********************************\n";
for (i=0;i<6;i++){
printf("X%d = %3.4f \n",(i+1),x[i]);
cout<<"=================================\n";
}
getch();
}
void TampilPersamaanA(int i){
for (j=0;j<6;j++){
if (j==0){
cout<<(a[i][j])<<"x"<<(j+1)<<" ";
}else{
if (a[i][j]<0){
cout<<"- "<<(a[i][j]*-1)<<"x"<<(j+1)<<" ";
}else if (a[i][j]>=0){
cout<<"+ "<<(a[i][j])<<"x"<<(j+1)<<" ";
}
}
}
cout<<"\t = "<<b[i];
cout<<endl;
}
void TampilPersamaanK(int i){
for (j=0;j<6;j++){
if (j==0){
cout<<(k[i][j])<<"x"<<(j+1)<<" ";
}else{
if (k[i][j]<0){
cout<<"- "<<(k[i][j]*-1)<<"x"<<(j+1)<<" ";
}else if (k[i][j]>=0){
cout<<"+ "<<(k[i][j])<<"x"<<(j+1)<<" ";
}
}
}
cout<<"\t = "<<l[i];
cout<<endl;
}








Metode Gauss-Jordan












 














Syntak :
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
float a[6][6]={{4,3,5,-6,8,-2},{-9,-2,-3,10,4,-3},{2,4,6,-3,-2,2},{5,-7,8,3,9,3},{0,5,-2,10,6,-7},{-10,2,8,5,9,2}};
float b[6]={30,50,-32,-24,28,60};
float temp;
int n,i,j;
void TampilMatriks();
void main(){
cout<<"==================================================================\n";
cout<<"             PENYELESAIAN SISTEM PERSAMAAN LINIER\n";
cout<<"                    METODE GAUSS-JORDAN\n";
cout<<"==================================================================\n";
cout<<endl;
cout<<"Dik. Persamaan Liniernya   : \n";
cout<<"==================================================================\n";
for (i=0;i<6;i++){
cout<<(i+1)<<".) ";
for (j=0;j<6;j++){
if (j==0){
cout<<(a[i][j])<<"x"<<(j+1)<<" ";
}else{
if (a[i][j]<0){
cout<<"- "<<(a[i][j]*-1)<<"x"<<(j+1)<<" ";
}else if (a[i][j]>=0){
cout<<"+ "<<(a[i][j])<<"x"<<(j+1)<<" ";
}
}
}
cout<<"\t = "<<b[i];
cout<<endl;
}
cout<<"==================================================================\n";
cout<<"\nMaka Bentuk Matriksnya : \n";
TampilMatriks();
//tahap2 penyelesaian menggunakan metode Gauss-Jordan
cout<<"\nPENYELESAIAN : \n";
cout<<"--------------------------------------------------------\n";
for (n=0;n<6;n++) {
cout<<"\nTahap "<<(n+1)<<endl;
temp=a[n][n];
for (j=0;j<6;j++){
a[n][j]=a[n][j]/temp;
}
b[n]=b[n]/temp;
for (i=0;i<6;i++){
if (i!=n){
temp=a[i][n];
for (j=n;j<6;j++){
a[i][j]=a[i][j]-(temp*a[n][j]);
}
b[i]=b[i]-(temp*b[n]);
}
}
//menampilkan matriks
TampilMatriks();
}
//tahap pembuktian
cout<<"\nDari penyelesaian diatas diperoleh nilai x1 sampai x6 yaitu : \n";
for (i=0;i<6;i++){
printf("X%d = %3.4f \n",(i+1),b[i]);
}
getch();
}
void TampilMatriks(){
for (i=0;i<6;i++){
cout<<" |  ";
for (j=0;j<6;j++){
if (a[i][j]>=0)
printf(" %3.4f ",a[i][j]);
else
printf("%3.4f ",a[i][j]);
}
cout<<"|  |x"<<(i+1)<<"|";
if (i==3)
cout<<" = ";
else
cout<<"   ";
printf("| %3.4f |",b[i]);
cout<<endl;
}
}

5 komentar:

Monggo dikoment.. :)