0% menganggap dokumen ini bermanfaat (0 suara)
460 tayangan

Kode Python Metode LU Decomposition

Dokumen tersebut merupakan laporan tugas mengenai penerapan metode LU Decomposition untuk mencari matriks invers dari suatu matriks 5x5. Program yang dibuat menggunakan bahasa pemrograman Python dengan modul NumPy untuk membuat dan mengolah matriks. Langkah-langkah algoritmanya meliputi inisialisasi matriks, membentuk matriks L dan U, subtitusi maju dan mundur untuk mendapatkan nilai matriks invers.

Diunggah oleh

Adhijaya Muhammad
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
460 tayangan

Kode Python Metode LU Decomposition

Dokumen tersebut merupakan laporan tugas mengenai penerapan metode LU Decomposition untuk mencari matriks invers dari suatu matriks 5x5. Program yang dibuat menggunakan bahasa pemrograman Python dengan modul NumPy untuk membuat dan mengolah matriks. Langkah-langkah algoritmanya meliputi inisialisasi matriks, membentuk matriks L dan U, subtitusi maju dan mundur untuk mendapatkan nilai matriks invers.

Diunggah oleh

Adhijaya Muhammad
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 6

SEPULUH NOPEMBER INSTITUTE OF TECHNOLOGY

[Metode Numerik dan Komputasi]


[Membuat program untuk invers matriks 5X5 dengan metode LU Decomposition]
Electrical Engineering Departement

Tugas 2

M UHAMMAD

ADHIJAY A SAPUTRA-2211100113

[MUHAMMAD ADHIJAYA S.] Tugas 2 A. Sekilas Tentang Metode Iterasi LU Decomposition Merupakan metode pemfaktoran yang memodifikasi dari metode eliminasi-Gauss. Pada metode LU-decomposition, matrik A difaktorkan menjadi matrik L dan matrik U, dimana dimensi atau ukuran matrik L dan U harus sama dengan dimensi matrik A. matriks L dan U harus memenuhi = . Langkah penyelesaian system persamaan linear dengan LU Decomposition diawali dengan menghadirkan vector dimana = . vector sendiri didapat dari = . Secara garis besar, langkah-langkah penyelesaiannya ada 3, yaitu: 1. Membentuk Matriks L dan matriks U dari matriks A sehingga memenuhi persamaan = . 2. Melakukan proses subtitusi maju yaitu memperoleh vector dari = . 3. Melakukan proses subtitusi mundur yaitu memperoleh nilai x yang dicari melalui persamaan = . B. Metode LU-Decomposition untuk mencari matriks invers Sebagaimana metode penyelesaian persamaan linear yang lain seperti eliminasi-Gauss dan lain-lain, LU-Decomposition juga dapat digunakan untuk mencari matriks invers karena kita tahu bahwa: = 1 = 1 maka, = 1 Sehingga untuk mendapatkan matriks invers, kita hanya perlu mengeksekusi matriks A dengan metode LU-Decomposition biasa namun matriks B nya adalah matriks identitas. C. Algoritma Program 1. Melakukan inisisasi matriks A dan menginisiasi matriks identitas B sesuai dengan dimensi matriks A. 2. Melakukan perombakan per kolom untuk matriks B menjadi B0,B1,.Bn. 3. Membuat pengulangan i dari 0 sampai n untuk inisiasi b=bi 4. Membuat matriks L ( terdapat proses pivot dan triangularisasi ). 5. Membuat matriks U. 6. Melakukan proses subtitusi maju untuk mendapatkan vector dengan persamaan = .
Sepuluh Nopember Institute of Technology |Metode Numerik Kelas C Bapak Reza Fuad 2

[MUHAMMAD ADHIJAYA S.] Tugas 2 7. Melakukan subtitusi mundur untuk mendapatkan vector ( matrikss invers ) dengan persamaan = . 8. Print nilai x yang didapatkan menjadi matriks 1X5. 9. Kembali ke langkah 3 dengan b=bi+1. D. Kode Program from numpy import array,zeros #Langkah 1 : inisialisasi matriks A = array([[4.,-2.,1.,3.,-2.],\ [-1.,2.,3.,-4.,5.],\ [1.,-2.,4.,-2.,1.],\ [5.,-4.,4.,2.,-1.],\ [-2.,3.,1.,-2.,4.]]) print A b = array([[1.,0.,0.,0.,0.],\ [0.,1.,0.,0.,0.],\ [0.,0.,1.,0.,0.],\ [0.,0.,0.,1.,0.],\ [0.,0.,0.,0.,1.]]) #Langkah 2 : memecah matriks b menjadi b1,b2 dan b3 n=len(A) bl=zeros((n,1)) #Langkah 3 : melakukan pengulangan for w in range(n): for q in range(n): bl[q][0]=b[q][w] A = array([[4.,-2.,1.,3.,-2.],\ [-1.,2.,3.,-4.,5.],\ [1.,-2.,4.,-2.,1.],\ [5.,-4.,4.,2.,-1.],\ [-2.,3.,1.,-2.,4.]]) #Langkah 4 : memulai matriks L L=zeros((n,n)) for i in range(0,n): L[i][i]=1 #proses triangularisasi for k in range(0,n-1): #memulai pivot if A[k][k]==0:
Sepuluh Nopember Institute of Technology |Metode Numerik Kelas C Bapak Reza Fuad 3

[MUHAMMAD ADHIJAYA S.] Tugas 2 for s in range(0,n): v=A[k][s] u=A[k+1][s] A[k][s]=u A[k+1][s]=v #proses pivot selesai for j in range(k+1,n): m=A[j][k]/A[k][k] L[j][k]=m # nilai m disimpan di matrik L for i in range(0,n): A[j][i]=A[j][i]-m*A[k][i] #matriks L selesai #Langkah 5 : memulai matriks U U=zeros((n,n)) for i in range(0,n): for j in range(0,n): U[i][j]=A[i][j] #matriks U selesai #Langkah 6 : proses subtitusi maju (LY=B) y=zeros((n,1)) y[0][0]=bl[0][0]/L[0][0] for j in range(1,n): S=0 for i in range(0,j): S=S+y[i][0]*L[j][i] y[j][0]=bl[j][0]-S #Langkah 7 : proses subtitusi mundur (UX=Y) x=zeros((1,n)) x[0][n-1]=y[n-1][0]/U[n-1][n-1] for j in range(n-2,-1,-1): S=0 for i in range(j+1,n): S=S+U[j][i]*x[0][i] x[0][j]=(y[j][0]-S)/U[j][j] #langkah 8 : mencetak nilai x print x

Sepuluh Nopember Institute of Technology |Metode Numerik Kelas C Bapak Reza Fuad

[MUHAMMAD ADHIJAYA S.] Tugas 2

Penjelasan : Pada program yang saya buat, terdapat tambahan modul untuk python yaitu NumPy berisi persamaan-persamaan dan fungsi-fungsi numeric yang biasa digunakan dalam perhitungan. Dalam hal ini, penulis menggunakannya untuk memudahkan dalam membuat matriks saja dengan meng-import array dan zeros. 4 1 Matriks A yang akan dicari inversnya adalah = 1 5 2 1 0 0 1 kemudian matriks identitas B di inisiasikan yaitu = 0 0 0 0 0 0 2 1 3 2 2 3 4 5 2 3 2 1 4 4 2 1 4 3 1 2 0 0 0 0 0 0 1 0 0 setelah 0 1 0 0 0 1 1 0 itu matriks B akan dipecah per kolomnya menjadi 0 = 0 , kemudian 0 0 dicari matriks L dan matriks U nya. Setelah itu dilakukan proses subtitusi maju dan subtitusi mundur sehingga didapatkan nilai matriks x kolom pertama yaitu: 0.44444444 1.33333333 0.66666667 0.33333333 1.11111111 Kemudian diulangi langkah tersebut dengan nilai B yang lain yaitu 0 0 0 0 1 0 0 0 1 = 0 , 2 = 1 , 3 = 0 , 4 = 0 0 0 1 0 0 0 0 1

E. Tampilan Hasil Running Program Setelah kode program diatas di running pada python, maka hasil yang keluar pada python shell adalah sebagai berikut :
Sepuluh Nopember Institute of Technology |Metode Numerik Kelas C Bapak Reza Fuad 5

[MUHAMMAD ADHIJAYA S.] Tugas 2

Penjelasan : Pada gambar tersebut tampak ada dua buah matriks 5X5. Matriks yang pertama adalah matriks A dan matriks yang kedua adalah matriks inverse dari A (1 ). Catatan`: Dimensi matriks A dapat diubah sesuai keinginan menjadi nXn dengan syarat matriks B juga harus diubah dimensinya menjadi nXn.

~TERIMA KASIH~

Sepuluh Nopember Institute of Technology |Metode Numerik Kelas C Bapak Reza Fuad

Anda mungkin juga menyukai