![]() | |||||||
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 <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;
}
}
Makasih banget bro...
BalasHapusSetelah seharian baru bisa ngerti matriks kamu..
UTY MAJU!
Kagak bisa sama sekali
BalasHapusbanyak error nya gan..
BalasHapuskagak bisa gak broo erorr
BalasHapuserror terusss
BalasHapus