Anda di halaman 1dari 6

Tugas Math Program

Pengganti UAS

Nama : Hendra Mars Setiawan


NIM : 2051180028
Class : 1E MTTE-POLIBAN

Tugas :
Buatlah perhitungan menggunakan Metode GAUSS, GAUSS SIEDEL dan GAUS JORDAN dalam
program c++

Jawab :
Metode Gauss
#include<stdio.h>
#include<math.h>

int n,i,j,k,l;
double c,sigma;
double A[50][51],x[50];
double b[50];
void input(){
printf("Gauss\n");
printf("Hendra Mars Setiawan\n");
printf("NIM. 205118002, MTTE-POLIBAN\n\n");

printf("Input ordo:");
scanf("%d",&n);
for(i=0;i<n;i++){
for(j=0;j<n+1;j++){
printf("matrik A[%d][%d]:",i+1,j+1);
scanf("%lf",&A[i][j]);
}
printf("\n");
}

printf("Matrik Inputan(A):\n");
for(i=0;i<n;i++){
for(j=0;j<=n;j++){
printf("%g ",A[i][j]);
}
printf("\n");
}

}
void hitung(){
x[n-1]=b[n-1]/A[n-1][n-1];
for(k=n-2;k>=0;k--){
sigma=0;
for(j=k+1;j<n;j++)
sigma = sigma + A[k][j] * x[j];

x[k] = (b[k] - sigma) / A[k][k];


}
printf("hasil akar:\n");
for(i=0;i<n;i++){
printf("akar[%d]:%g ",i+1,x[i]);
printf("\n");}
}
void obe(){

puts("\nProses OBE augmented matrik ");


for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){

c=A[j][i]/A[i][i];
for(k=0;k<n+1;k++){
A[j][k]=A[j][k]-c*A[i][k];
}
puts("");
for(k=0;k<n;k++)
{
for(l=0;l<n;l++)
{
printf("%.2g\t", A[k][l]);
}
printf("%.2g\t", A[k][n]);
puts("");
}

}
}
for(i=0;i<n;i++){
b[i]=A[i][n];
}
}
main(){

input();
obe();
hitung();
}

Hasil dari kompilasinya adalah sebagai berikut :


Metode Gauss SIEDEL
#include<stdio.h>
#include <iostream>
using namespace std;
int main ()
{
int a,b,c,as,bs,cs,nomor,T;
T=0;
nomor=0;
a=18; b=-7; c=12;
printf("==========================\n");
printf("Hendra Mars Setiawan\n");
printf("NIM. 2051180028\n");
printf("Gaus Siedel\n");
printf("==========================\n");

cout<<" iterasi "<<"a "<<"b "<<"c "<<endl;


cout<<" "<<nomor<<" "<<a<<" "<<b<<" "<<c<<endl;
do {
nomor++;
a=(24-b-c)/3;
b=(32-(3*a)-(4*c))/6;
c=(52-a-(3*b))/3;
cout<<" "<<nomor<<" "<<a<<" "<<b<<" "<<c<<endl;
if (a==as&&b==bs&&c==cs) {
T=1;
}
as=a; bs=b; cs=c;
}
while (T!=1);
cout<<endl;
cout<<" nilai a= "<<a<<endl;
cout<<" nilai b= "<<b<<endl;
cout<<" nilai c= "<<c<<endl;
cout<<" =========================="<<endl;
}

Hasil dari kompilasinya adalah sebagai berikut :


Metode Gauss Jordan
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int i, j, k, ordo;
float pivot, M[20][20], x[10];

printf("Carilah nilai x, y dan z dalam persamaan dibawah ini : \n");


printf(" 2x + 4y - z = -6\n ");
printf(" 5x + 3y + 2z = 28\n ");
printf(" 5x - 6y + 2z = 43\n ");

printf("\nMasukkan Ordo Matriks (Jumlah variabel): "); scanf("%d", &ordo);


printf("\nMasukkan elemen matriks: \n");
for (i=1; i<=ordo; i++){
for (j=1; j<=(ordo+1); j++){
printf("Elemen baris ke -%d kolom ke -%d\t: ", i, j); scanf("%f", &M[i][j]);
}
}
for (j=1; j<=ordo; j++){
for (i=1; i<=ordo; i++){
if(i !=j){
pivot = M[i][j] / M[j][j];
for(k=1; k<=ordo+1; k++){
M[i][k] = M[i][k] - pivot*M[j][k];
}
}
}
}
for (i=1; i<=ordo; i++){
x[i] = M[i][ordo+1] / M[i][i];
}
printf("\nHimpunan Penyelesaian: \n");
printf("x = %f\n", x[1]);
printf("y = %f\n", x[2]);
printf("z = %f\n", x[3]);

return 0;
}

Hasil dari kompilasinya adalah sebagai berikut :

Anda mungkin juga menyukai