Laporan Akhir 3.docx

  • Uploaded by: Lingga Endar
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Laporan Akhir 3.docx as PDF for free.

More details

  • Words: 1,699
  • Pages: 15
METODE KOMPUTASI DAN LISTING PROGRAM ALGORITME PROGRAM a. Perhitungan tegangan dengan Metode Perkalian Diagonal 1. Memulai program dengan memasukkan fungsi #include<stdio.h> dan fungsi #include<math.h>. 2. Menginput jc, pv, i, j, k, jbA. 3. Memasukkan data matriks A serta jumlah baris atau kolom. 4. Memasukkan matriks A untuk i = 0 dimana i < jbA dan untuk j = 0 dimana j < jbA. 5. Pengoperasian OBE untuk membuat matrik segitiga atas, dimana sebelum dioperasikan persamaan dipivot dahulu (pv = k). 6. Untuk jc = 0 dimana jc < jbA+1 makan proses pertukaran data. Syarat jika komponen diagonalnya = 0 maka det = 0. 7. Menghitung determinan matrik. 8. Mencetak isi matriks A dan mencetak matriks OBE. 9. Menampilkan hasil operasi. 10. Menampilkan hasil arus matriks. 11. Mengakhiri program. b. Metode matriks LU untuk 1 Kolom Matriks Hasil 1. Memulai program dengan memasukkan fungsi #include<math.h> dan fungsi #include<stdio.h>. 2. Menampilkan daftar veriabel matriks segi empat dari nilai koefisien persamaan loop A [], matriks dekomposisi L [] dan U [] dimana I adalah matriks hasil. 3. Menginput i, j, k, jbA, pv, tm, jc, tb. 4. Memasukkan data matriks A beserta jumlah baris c (< 5). 5. Membandingkan dengan yang lebih besar. 6. Proses pertukaran data (jc = 0 dimana jc < jbA+1. 7. Menampilkan dekomposisi matriks dan mencetak isi matriks A. 8. Menampilkan matriks L dan matriks U. 9. Mensubtitusikan ke depan. 10. Hasil akhir.

11. Mengakhiri program. c. Metode Gauss Seidel 1. Memulai program dengan memasukkan fungsi #include<stdio.h> dan fungsi #include<math.h>. 2. Menginput jc, pv, i, j, k, jbA. 3. Memasukkan data matriks A serta jumlah baris atau kolom. 4. Memasukkan matriks A untuk i = 0 dimana i < jbA dan untuk j = 0 dimana j < jbA. 5. Memasukkan tebakan awal perhitungan 6. Memasukkan nilai error yang diharapkan 7. Menampilkan hasil operasi. 8. Menampilkan hasil arus matriks 9. Mengakhiri program.

d. Metode Iterasi Jacobi 1. Memulai program dengan memasukkan fungsi #include<stdio.h> dan fungsi #include<math.h>. 2. Menginput jc, pv, i, j, k, jbA. 3. Memasukkan data matriks A serta jumlah baris atau kolom. 4. Memasukkan matriks A untuk i = 0 dimana i < jbA dan untuk j = 0 dimana j < jbA. 5. Memasukkan elemen matriks b 6. Menampilkan hasil operasi. 7. Mengakhiri program.

FLOWCHART 1. Perhitungan Tegangan dengan Metode Perkalian Diagonal START

Masukkan jumlah baris/kolom

Masukkan nilai setiap elemen-elemen matriks perbaris

Membuat matriks segitiga atas dengan Operasi Baris Elementer (OBE)

Menghitung determinan matriks

Menampilkan hasil operasi dan determinan matriks

END

2. Metode matriks LU untuk 1 Kolom Matriks Hasil START

Masukkan jumlah baris

Masukkan nilai setiap elemen-elemen matriks perbaris untuk matriks A

Masukkan nilai setiap elemen-elemen matriks B

Membuat matriks L dan matriks U

Membuat invers matriks A

Mencari nilai I dari perkalian invers matriks A dengan matriks B (I= A-1B)

- Menampilkan matriks L dan matriks U - Menampilkan nilai I

END

3. Metode Gauss Seidel START

++) Input elemen matriks i=1; i<= n; j++ i=1; i <=n; i++

Masukkan (j=1; j <= n*2; j++) (i=1; i <= n; i (j=1; j <= n*2; j++) (i=1; i <= n; i++) (j=n+1; j <= n*2; j++)

Memasukkan elemen matriks b

Masukkan nilai error yang diharapkan

Menampilkan hasil

END

4. Metode Iterasi Jacobi START

++) Input elemen matriks i=1; i<= n; j++ i=1; i <=n; i++

Masukkan (j=1; j <= n*2; j++) (i=1; i <= n; i (j=1; j <= n*2; j++) (i=1; i <= n; i++) (j=n+1; j <= n*2; j++)

Memasukkan elemen matriks b

Masukkan nilai error yang diharapkan

Menampilkan hasil

END

LISTING PROGRAM a. Perhitungan Determinan dengan Metode Perkalian Diagonal #include #include <stdio.h> #include <math.h> int main() { int jc, pv, i, j, k, jbA; float tm, det, mat, A[15][15], B[15][15]; printf(" \n Masukkan data matriks A"); printf(" \n jumlah baris / kolom (<15) : "); scanf(" %i", &jbA); for (i=0;i<jbA;i++)

{ for (j=0;j<jbA;j++) { printf(" input A[%i][%i]: ", i+1, j+1); fflush(stdin); scanf("%f", &A[i][j]); B[i][j]=A[i][j]; } printf(" \n"); } for (k=0;k<jbA;k++) { pv=k; for (j=k+1;j<jbA;j++) { if (sqrt(pow(B[pv][k],2))< sqrt(pow(B[j][k],2))) { pv=j; } } if (pv!=k) { for (jc=0;jc<jbA+1;jc++) { tm=B[k][jc]; B[k][jc] = B [pv][jc]; B[pv][jc] = tm; } } if (B[k][k]==0) { goto det0; } for

(i=k+1;i<jbA;i++)

{ mat=B[i][k]/ B[k][k]; for(j=k;j<jbA;j++) { B[i][j]=B[i][j] - B[k][j]*mat;

} } } det = 1; for (i=0;i<jbA;i++) { det=det*B[i][i]; } printf(" \n\n"); printf("matriks A = \n"); for (i=0;i<jbA;i++) { for (j=0;j<jbA;j++) { printf(" %f ", A[i][j]); printf(" "); } printf("\n"); } printf("\n hasil operasi \n"); for(i=0;i<jbA;i++) { for (j=0;j<jbA;j++) { printf("%f",B[i][j]); printf(" "); } printf("\n"); } printf("\n"); printf(" \n determinan matriks = %f ", det); if (det==0) { det0: printf("\n matriks singular "); } getch(); return 0; }

b. Metode matriks LU untuk 1 Kolom Matriks Hasil #include <math.h> #include <stdio.h> #include /*daftar variabel A[]

:

matriks

segi

empat

dari

nilai

persamaan Loop L[],U[]

: mtriks dekomposisi

i : matrik hasil*/ float A[5][5]; float B[5][5]; float L[5][5],U[5][5]; float b[5]; float x1[5]; int i,j,k,jbA,pv,tm,jc,tb; int main () { printf ("\nMasukkan Data matriks A:"); printf("\nJumlah Baris c(<5):"); scanf("%i",&jbA); for (i=0;i<jbA;i++) { for (j=0;j<jbA;j++) { printf("Input A[%i][%i]:",i+1,j+1); fflush (stdin); scanf("%f",&A[i][j]); } } for (i=0;i<jbA;i++) { printf("Input B[%i]:",i+1); fflush (stdin); scanf("%f",&b[i]); } for (i=0;i<jbA;i++) { for(j=0;j<jbA;j++) {

koefisien

B[i][j]=A[i][j]; } } //pivot pv=k; for (j=k+1;j<jbA;j++) { if(sqrt(pow(B[pv][k],2))<sqrt(pow(B[j][k],2))) //membandingkan yang lebih besar { pv=j; } } if (pv!=k) { for(jc=0;jc<jbA+1;jc++) //proses penukaran data { tm=B[k][jc]; B[k][jc]=B[pv][jc]; B[pv][jc]=tm; } tb=b[k]; b[k]=b[pv]; b[pv]=tb; } for (i=0;i<jbA;i++) { for (j=0;j<jbA;j++) { A[i][j]=B[i][j]; } } //dekomposisi matriks for

(i=0;i<jbA;i++)

U[i][j]=A[i][j]; for (i=0;i<jbA;i++) L[i][i]=1.0; for (k=0;k<jbA-1;k++) for (j=k+1;j<jbA;j++)

for

(j=0;j<jbA;j++)

{ L[j][k]=U[j][k]/U[k][k]; for(i=k;i<jbA;i++)

U[j][i]=U[j][i]-

L[j][k]*U[k][i]; } /**Cetak isi matriks A**/ printf("

\n\n");

printf("Matriks A

= \n\n");

for(i=0;i<jbA;i++) { for(j=0;j<jbA;j++) { printf("%f",A[i][j]); printf("

");

} printf("\n"); } printf("matriks [L]\n"); for (i=0;i<jbA;i++) { for(j=0;j<jbA;j++) printf("%10.4f",L[i][j]); printf("\n"); } printf("matriks [U]\n"); for (i=0;i<jbA;i++) { for(j=0;j<jbA;j++) printf("%10.4f",U[i][j]); printf("\n"); } //substirusi ke depan for (i=0;i<jbA;i++) for(j=0;j
b[i]=b[i]-L[i][j]*b[j];

//substitusi ke belakang b[jbA-1]=b[jbA-1]/U[jbA-1][jbA-1]; for(i=jbA-2;i>=0;i--) { for(j=i+1;j<jbA;j++)b[i]=b[i]-U[i][j]*b[j]; b[i]=b[i]/U[i][i]; }

printf ("Hasil akhir\n"); for(i=0;i<jbA;i++) printf("i[%2d] = %g\n",i,b[i]); getch();

HASIL DAN PEMBAHASAN 1. Menghitung nilai tegangan setiap resistor yang ada pada rangkaian. Persamaan dari rangkain pada tugas praktikum 1 adalah: Loop 1: 7I1 + 3I2 = 7 Loop 2: 3I1 + 20I2 -7I4 = -5 Loop 3: 10I3 = -4,3 Loop 4: 27I4 -7I2= 0 Sehingga matriksnya 7 3 [ 0 0

3 0 0 I1 7 20 0 −7 I2 5 ][ ] = [ ] 0 10 0 I3 4,3 0 −7 0 27 I4 1. Menggunakan metode gauss seidel Arus I1 = 0,9486

I3 =0,4300

I2 =0,1186

I4 =0,0307

Tegangan V1=I1xR1= 0,9486x4=3,7944

V4=(I2+I3)xR4= 0,4300x10=4,3

V2=I2xR2=0,1186x3=0,3558

V5=I4xR5=0,0307x20=0,614

V3=I2xR3=0,1186x7=0,8302 2. Menggunakan metode iterasi jacobi Hasil menggunakan iterasi jacobi nilai I1,I2,I3, dan I4 adalah error 3. Menggunakan metode invers Invers matriks 0,153726 −0,0253601 [ 0 −0,00657483 0,9492815 0,11834698 =[ ] 0,43 0,03068269

−0,0253601 0,0591735 0 0,0153413

0 −0,00657483 7 0 0,0153413 5 ]𝑥[ ] 0,1 0 4,3 0 0,0410144 0

Sehingga didapatkan Arus I1 = 0,9492815

I3 =0,43

I2 =0,11834698

I4 =0,03068269

Tegangan V1=I1xR1=0.9492815x4=3,797126 V2=I2xR2=0.1183468x3=0,3550404 V3=I2xR3=0.1183468 x7=0,8284276 V4=(I2+I3)xR4= 0,43x10=4,3 V5=I4xR5=0.03068269x20=0,613738 4. Menggunakan metode LU Arus I1 = 0,94928

I3 =0,43

I2 =0,118347

I4 =0,0306825

Tegangan V1=I1xR1= 0,94928x4=3,79712 V2=I2xR2=0,118347x3=0,355041 V3=I2xR3=0,118347x7=0,828429 V4=(I2+I3)xR4= 0,4300x10=4,3 V5=I4xR5=0,0306825x20=0,61365

2. Titik 1

: -F1 cos 450 – F2 = 0.....(1) 20 + F1 cos 45 = 0.....(2)

Titik II

: 5 – F3 = 0 F3=5

Titik III

: 15 – F3 – F1 cos 450=0.....(3) -F3-F1 cos 450 – F6 cos 450 -F4=0......(4)

Titik IV

: 5 – F7 – F6 cos 450=0.....(5)

Titik V

: 10 - F7 –F9 cos 450=0.....(6) -F7 – F9 cos 450 – F4=0.......(7)

Titik VI

: 20 + F9 cos 450=0......(8)

-F9 cos 450-F8=0......(9) Cos 450= 0,707 −0,707 −1 0 0 0 0,707 0 0 0 0 −0,707 0 −1 0 0 −0,707 0 −1 −1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 −1 0 0 0 0 0 0 [ 0 0 0 0 0

0 0 0 −0,707 −0,707 0 0 0 0

0 0 0 𝐹1 0 0 0 0 𝐹2 −20 0 0 0 𝐹3 −15 0 0 0 𝐹4 0 −1 0 0 𝐹5 = −5 −1 0 −0,707 𝐹6 −10 −1 0 −0,707 𝐹7 0 0 0 0,707 𝐹8 −20 0 −1 −0,707] [𝐹9] [ 0 ]

Menggunakan metode metode Iterasi jacobi didapatkan nilai F yaitu: F1 = nan F2 = -inf F3 = -inf F4 = nan F5 = -inf F6 = 14,1443 F7 = -0 F8 = -28,2885 F9 = nan

Pada tugas eksperimen 1, yaitu menghitung tegangan setiap resistor yang ada pada rangkaian pada Gambar 1 dan menyelesaikannya dengan metode gauss seidel, iterasi Jacobi, invers, dan LU. Pada gambar rangkaian, di lakukan analisis Loop yang kemudian akan di bagi menjadi tiga bagian Loop yaitu Loop I, Loop II, Loop III dan Loop IV. Dari masing-masing Loop tersebut akan dihasilkan empat bentuk

persamaan, yaitu persamaan (1), (2), (3), dan (4) yang kemudian akan dimasukkan ke dalam bentuk matriks. Bentuk matriks tersebut kemudian diselesaikan sehingga di peroleh nilai Arus (I). Nilai tegangan pada masing-masing resistor akan didapatkan dengan menggunakan rumus V = R I. Nilai pada V1 = 3,7944 volt, V2 = 0,3558 volt, V3 = 0,8302 volt, V4 = 4,3 volt, V5 = 0,614. Namun terjadi perbedaan hasil antara perhitungan manual dengan perhitungan program. Mungkin dikarenakan ada kesalahan dalam perhitungan manual yang dilakukan oleh praktikan. Pada tugas eksperimen 2 yaitu menuliskan persamaan matematis untuk 6 titik rangkaian baja 2D pada Gambar 2. Rangkaian baja 2D tersebut dirancang untuk dapat kuat menahan gaya-gaya yang mengenainya, setiap batang rangka mempunyai panjang 1 m untuk yang berposisi horizontal dan vertical, sedangkan untuk yang miring panjangnya adalah m. Analisis matematis untuk rangka yang ditunjukkan oleh Gambar 2 bertujuan untuk mengetahui besar nilai-nilai gaya yang terdapat pada setiap penopangnya dengan di tambah pengaruh gaya dari luar. Untuk menganalisis system ini hanya memerlukan hokum Newton 1, yaitu analisis matematis Gambar 2 hubungan antara F1 dan F2 pada titik yang ditunjukkan oleh panah.

KESIMPULAN Kesimpulan yang dapat di tarik dari praktikum penyelesaian persamaan linier ini adalah determinan matriks dapat diselesaikan dengan begitu banyak variasi cara dan metode. Seperti pada praktikum ini, persamaan linier diselesaikan dengan menggunakan metode matriks segitiga atas atau bawah. Selain itu, persamaan linier juga dapat diselesaiakan dengan menggunakan metode dekomposisi LU, Gauss, dan Gauss Jordan.

Related Documents


More Documents from "Muhammad Aulia Habib"

Laporan Praktikum 5.docx
April 2020 26
Eksperimen 7.docx
April 2020 26
Laporan Akhir 3.docx
December 2019 32
Eksperimen 6.docx
April 2020 16
Globalindo Group.docx
December 2019 26