• Tidak ada hasil yang ditemukan

Perkalian matrik dan vektor

Dalam dokumen Modul Python 2 (Halaman 48-54)

2.5 Penutup

3.2.2 Perkalian matrik dan vektor

Sekarang kita akan membuat function untuk perkalian matrik dan vektor. Berdasarkan source-code yang lalu (di bab sebelumnya) perkalian matrik dan vektor adalah sebagai berikut

1 from numpy import array, zeros

2 A = array([[3.,8.,5.],\

3 [6.,4.,7.]]) # matrik A berukuran 2x3

4 x = array([[2.],\

5 [3.],\

6 [4.]]) # vektor x berukuran 3x1

7 n=2 # jumlah baris matrik A

8 m=3 # jumlah kolom matrik A sekaligus jumlah baris vektor x

9 E = zeros((n,1))

10 for i in range(0,n):

11 for k in range(0,m):

12 E[i][0]=E[i][0]+A[i][k]*x[k][0]

Source-code ini memiliki dua bagian utama, yaitu bagian inisialisasi dan bagian operasi perkalian. Bagian operasi perkalian akan dipisah menjadi sebuah function bernama matxvek yang dikhususkan untuk melayani operasi perkalian matrik dan vektor.

1 from numpy import zeros

2

3 def matxvek (A,x):

4 n=2 # jumlah baris matrik A

5 m=3 # jumlah kolom matrik A sekaligus jumlah baris vektor x

6 E = zeros((n,1))

7 for i in range(0,n):

8 for k in range(0,m):

9 E[i][0]=E[i][0]+A[i][k]*x[k][0]

10 return E

Simpanlah file ini dengan nama komputasi.py, lalu di-run. Kemudian ketikan code berikut pada python-shell

>>> from numpy import array

3.2. FUNCTION 35 >>> A = array([[3.,8.,5.],\ [6.,4.,7.]]) >>> x = array([[2.],\ [3.],\ [4.]]) >>> E = matxvek(A,x) >>> print E [[ 50.] [ 52.]]

Berhasil! Function matxvek bekerja sempurna.

Sebelum dilanjut, ada sedikit modifikasi yang diperlukan pada function matxvek yang ter-simpan pada file komputasi.py, yaitu yang menyangkut inisialisasi nilai n dan m. Perhatikan perubahannya berikut ini (saya harap anda mengerti tanpa harus saya jelaskan).

1 from numpy import zeros, transpose

2

3 def matxvek (A,x):

4 n=len(A) # cara lain untuk menghitung jumlah baris matrik A

5 m=len(transpose(A)) # cara lain untuk menghitung jumlah kolom matrik A dan baris vektor x

6 E = zeros((n,1))

7 for i in range(0,n):

8 for k in range(0,m):

9 E[i][0]=E[i][0]+A[i][k]*x[k][0]

10 return E

Simpanlah file ini, lalu di-run kembali. Ulangi lagi ketikan code berikut pada python-shell >>> from numpy import array

>>> A = array([[3.,8.,5.],\ [6.,4.,7.]]) >>> x = array([[2.],\ [3.],\ [4.]]) >>> E = matxvek(A,x) >>> print E [[ 50.] [ 52.]]

Modifikasi pada function matxvek bertujuan agar function matxvek bisa berlaku pada matrik A yang ukurannya bukan 2× 3 saja. Contohnya

>>> A = array([[3.,8.,5.],\ [6.,4.,7.],\ [2.,1.,9.]]) >>> x = array([[2.],\

36 BAB 3. MEMBUAT FUNCTION DAN MODULE [4.]]) >>> E = matxvek(A,x) >>> print E [[ 50.] [ 52.] [ 43.]]

Jelas terlihat disini bahwa function matxvek bisa digunakan untuk ukuran matrik A yang bervari-asi.

3.3 Module

Sebelum mendiskusikan module, silakan buka lagi file kungfu.py yang menyimpan function ru-mus_abc yang lalu

1 def rumus_abc (a,b,c):

2 y = a*a+2*b+c

3 return y

Function rumus_abc akan saya letakkan di dalam komputasi.py

1 from numpy import zeros, transpose

2

3 def matxvek (A,x):

4 n=len(A) 5 m=len(transpose(A)) 6 E = zeros((n,1)) 7 for i in range(0,n): 8 for k in range(0,m): 9 E[i][0]=E[i][0]+A[i][k]*x[k][0] 10 return E 11

12 def rumus_abc (a,b,c):

13 y = a*a+2*b+c

14 x = a*b*c

15 return y,x

Kemudian function akarx1x2 juga digabung ke dalam komputasi.py. Perhatikan perubahan yang terjadi di source-code, khususnya pada statemen awal

1 from __future__ import division

2 from numpy import zeros, transpose, sqrt,complex

3

4 def matxvek (A,x):

5 n=len(A) 6 m=len(transpose(A)) 7 E = zeros((n,1)) 8 for i in range(0,n): 9 for k in range(0,m): 10 E[i][0]=E[i][0]+A[i][k]*x[k][0] 11 return E 12

3.3. MODULE 37

13 def rumus_abc (a,b,c):

14 y = a*a+2*b+c 15 x = a*b*c 16 return y,x 17 18 def akarx1x2(a,b,c): 19 D = b*b-4*a*c 20 if D > 0.0: 21 x1 = (-b+sqrt(D))/(2*a) 22 x2 = (-b-sqrt(D))/(2*a) 23 elif D == 0.0: 24 x1 = -b/(2*a) 25 x2 = -b/(2*a) 26 else: 27 D = -D 28 x1r = -b/(2*a) 29 x1i = sqrt(D)/(2*a) 30 x1 = complex(x1r,x1i) 31 x2r = x1r 32 x2i = -x1i 33 x2 = complex(x2r,x2i) 34 return x1,x2

jangan lupa di-save dan di-run. Kemudian buatlah sebuah file x.py yang isinya sebagai berikut

1 from numpy import array

2 from komputasi import matxvek

3 4 A = array([[3.,8.,5.],\ 5 [2.,1.,9.],\ 6 [6.,4.,7.]]) # matrik A berukuran 3x3 7 x = array([[2.],\ 8 [3.],\ 9 [4.]]) # vektor x berukuran 3x1 10 hasil = matxvek(A,x) 11 print hasil

silakan anda save dan run. Inilah hasilnya >>>

[[ 50.] [ 43.] [ 52.]]

Sampai disini anda telah berhasil membuat module pribadi, yaitu module komputasi. Sekarang saatnya membahas module. Module adalah kumpulan function. Kita baru saja membuat module yang diberi nama komputasi. Didalamnya baru terdapat 2 buah function yaitu matxvek dan rumus_abc. Untuk melihat seluruh function yang ada di module komputasi, ketikkan code berikut ini

>>> import komputasi >>> dir(komputasi)

38 BAB 3. MEMBUAT FUNCTION DAN MODULE ’complex’, ’division’, ’matxvek’, ’rumus_abc’, ’sqrt’,

’transpose’, ’zeros’]

Yup, disana sudah ada matxvek, rumus_abc dan akarx1x2. Tapi mengapa transpose dan zeros bisa tersimpan juga di module komputasi?

3.4 Latihan

1. Buatlah sebuah source-code untuk sebuah module yang berisi function matxvek, function matxmat (untuk operasi perkalian 2 matrik), function matplusmat (untuk operasi pen-jumlahan 2 matrik), function rumus_abc dan function akarx1x2. Nama module harus dis-esuaikan dengan nomor pokok mahasiswa (NPM) masing-masing.

2. Buatlah source-code untuk menyelesaikan penjumlahan matrik A dan matrik B dengan memanfaatkan module yang selesai dibuat pada nomor sebelumnya.

3. Buatlah source-code untuk menyelesaikan perkalian matrik A dan matrik B dengan me-manfaatkan module yang selesai dibuat pada nomor sebelumnya.

4. Buatlah source-code untuk menyelesaikan perkalian matrik A dan vektor x dengan me-manfaatkan module yang selesai dibuat pada nomor sebelumnya.

5. Buatlah source-code untuk menyelesaikan perkalian matrik B dan vektor x dengan me-manfaatkan module yang selesai dibuat pada nomor sebelumnya.

Berikut ini adalah matrik A, matrik B, dan vektor x yang digunakan untuk menyelesaikan soal latihan di atas A =       0.1 2.3 −9.6 −2.7 21.5 2.9 1.7 5.6 2.13 4.29 8.72 −1.02 −2.3 1.24 −0.18 7.3       B =       8.3 1.6 4.8 21.2 3.4 10.5 5.2 0.1 7.8 −2.7 9.4 −5.1 2.7 −12.3 −18.9 50.7       x =       23.78 −7.97 8.369 4.112      

Bab 4

Metode Eliminasi Gauss

✍ Objektif :

⊲ Mengenalkan sistem persamaan linear.

⊲ Mengenalkan teknik triangularisasi dan substitusi mundur. ⊲ Aplikasi metode Eliminasi Gauss menggunakan matrik. ⊲ Membuat algoritma metode Eliminasi Gauss.

⊲ Menghitung invers matrik menggunakan metode Eliminasi Gauss.

4.1 Sistem persamaan linear

Secara umum, sistem persamaan linear dinyatakan sebagai berikut

Pn: an1x0+ an2x1+ ... + annxn= bn (4.1) dimana a dan b merupakan konstanta, x adalah variable, sementara nilai n = 1, 2, 3, ....

Misalnya ada sistem persamaan linear yang terdiri dari empat buah persamaan yaitu P1, P2, P3, dan P4seperti berikut ini:

P1: x0 + x1 + 3x3 = 4

P2: 2x0 + x1 − x2 + x3 = 1

P3: 3x0 − x1 − x2 + 2x3 = -3 P4: −x0 + 2x1 + 3x2 − x3 = 4

Problem dari sistem persamaan linear adalah bagaimana mencari angka-angka yang tepat untuk menggantikan variabel x0, x1, x2, dan x3sehingga semua persamaan di atas menjadi be-nar. Untuk mendapatkan solusi tersebut, diperlukan langkah-langkah penyederhanaan sistem persamaan linear.

40 BAB 4. METODE ELIMINASI GAUSS

Dalam dokumen Modul Python 2 (Halaman 48-54)

Dokumen terkait