Matrix Operation on MATLAB

Waktu ikut kuliah MSL (Manajemen Sains Lanjut) pertama, sempet de javu pake MATLAB… kangen ma tools yang satu ini untuk perkuliahan… mau cerita dikit tentang beberapa kaidah dasar suatu matriks dan penggunaannya di MATLAB… sederhana banget, tapi kadang2 kita perlu tahu sesuatu yang sangat mendasar untuk bergerak lebih jauh bukan? Analoginya kayak bikin bangunan… kita harus tau dulu teknik sederhana bagaimana membuat campuran semen… sebelum memulai memasang bata dan memoles dengan semen tersebut… salah campuran semen? Dalam waktu yang tidak lama maka tembok tersebut bisa dipastikan mengalami keretakan… apabila semen itu dipake buat memasang tegel dirumah juga tidak akan bagus hasilnya… dasar itu penting… karena dasar adalah pondasi kita untuk bergerak lebih jauh lagi…

 

Ok, lets start…

 

Ada beberapa kaidah untuk operasi Matriks di MATLAB… mari kita perhatikan satu persatu… berdasarkan contoh langsung penggunaannya di MATLAB…

 

  1. Operasi Penjumlahan Matriks

 

>> A = [1 2 3 ; 4 5 6 ; 7 8 9]

 

A =

 

     1     2     3

     4     5     6

     7     8     9

 

>> B = [ 10 11 12 ; 13 14 15 ; 16 17 18 ]

 

B =

 

    10    11    12

    13    14    15

    16    17    18

 

>> A + B

 

ans =

 

    11    13    15

    17    19    21

    23    25    27

 

>> C = [19 20 21]

 

C =

 

    19    20    21

 

>> A + C

??? Error using ==> plus

Matrix dimensions must agree.

 

Pesan kesalahan yang menunjukkan bahwa dimensi dari penjumlahan matriks tersebut tidak sesuai.

 

  1. Operasi Perkalian Dua Buah Matriks

 

>> A = [1 2 3 ; 4 5 6 ; 7 8 9]

 

A =

 

     1     2     3

     4     5     6

     7     8     9

 

>> B = [ 10 11 12 ; 13 14 15 ; 16 17 18 ]

 

B =

 

    10    11    12

    13    14    15

    16    17    18

 

>> A*B

 

ans =

 

    84    90    96

   201   216   231

   318   342   366

 

>> C = [19 20 21]

 

C =

 

    19    20    21

 

>> C*A

 

ans =

 

   246   306   366

 

>> A*C

??? Error using ==> mtimes

Inner matrix dimensions must agree.

Pesan kesalahan karena matriks A berdimensi 3 x 3 sedangkan matriks C berdimensi 1 x 3

 

  1. Perkalian Matriks dan Skalar

 

>> A

 

A =

 

     1     2     3

     4     5     6

     7     8     9

 

>> D = 4

 

D =

 

     4

 

>> D*A

 

ans =

 

     4     8    12

    16    20    24

    28    32    36

 

>> A*D

 

ans =

 

     4     8    12

    16    20    24

    28    32    36

 

  1. Operasi Perpangkatan Matriks

 

Ada dua operator yang digunakan untuk memangkatkan matriks, yaitu:

1.  ‘^’

2. ‘.^”

Apa bedanya?

# A^n, maka berarti An, yaitu A*A*A*… *A sebanyak n buah kali. Untuk melakukan operasi perpangkatan matriks, syaratnya adalah matriks harus persegi (baris dan kolom memiliki ukuran yang sama).

# A.^n, berarti masing-masing elemen matriks A dipangkatkan n. Operator bentuk kedua tidak memerlukan syarat matriks persegi.

 

>> A

 

A =

 

     1     2     3

     4     5     6

     7     8     9

 

>> A^2

 

ans =

 

    30    36    42

    66    81    96

   102   126   150

 

>> A.^3

 

ans =

 

     1     8    27

    64   125   216

   343   512   729

 

Kelihatan kan bedanya?

 

  1. Determinan Matriks

 

>> A

 

A =

 

     1     2     3

     4     5     6

     7     8     9

 

>> det(A)

 

ans =

 

     0

 

>> B

 

B =

 

    10    11    12

    13    14    15

    16    17    18

 

>> det(B)

 

ans =

 

     0

 

>> C

 

C =

 

    19    20    21

 

>> det(C)

??? Error using ==> det

Matrix must be square.

 

Pesan kesalahan yang menyatakan matriks harus berbentuk persegi agar bisa didapatkan determinannya.

 

  1. Invers Matriks

 

Sebuah Matriks persegi A dikatakan mempunyai invers jika terdapat matriks X sedemikian rupa sehingga BX = XB = I, dimana I adalah matriks identitas dan X = B-1 sebagai invers matriks B. Syarat lain adalah determinan B tidak boleh nol.

>> A

 

A =

 

     1     2     3

     4     5     6

     7     8     9

 

>> inv(A)

Warning: Matrix is close to singular or badly scaled.

         Results may be inaccurate. RCOND = 1.541976e-018.

 

ans =

 

  1.0e+016 *

 

   -0.4504    0.9007   -0.4504

    0.9007   -1.8014    0.9007

   -0.4504    0.9007   -0.4504

 

>> B

 

B =

 

    10    11    12

    13    14    15

    16    17    18

 

>> inv(B)

Warning: Matrix is singular to working precision.

 

ans =

 

   Inf   Inf   Inf

   Inf   Inf   Inf

   Inf   Inf   Inf

 

>> C

 

C =

 

    19    20    21

 

>> inv(C)

??? Error using ==> inv

Matrix must be square.

 

Hasil dari invers suatu matriks, dan hasil inversnya kita inverskan lagi, maka tidak akan didapat matriks semula

 

>> A

 

A =

 

     1     2     3

     4     5     6

     7     8     9

 

>> inv(A)

Warning: Matrix is close to singular or badly scaled.

         Results may be inaccurate. RCOND = 1.541976e-018.

 

ans =

 

  1.0e+016 *

 

   -0.4504    0.9007   -0.4504

    0.9007   -1.8014    0.9007

   -0.4504    0.9007   -0.4504

 

>> inv(inv(A))

Warning: Matrix is close to singular or badly scaled.

         Results may be inaccurate. RCOND = 1.541976e-018.

Warning: Matrix is singular to working precision.

 

ans =

 

   Inf   Inf   Inf

   Inf   Inf   Inf

   Inf   Inf   Inf

 

  1. Tranpose Matriks

 

Tranpose suatu Matriks A adalah sebuah matriks yang diperoleh dengan mengubah baris menjadi kolom atau sebaliknya

 

>> A

 

A =

 

     1     2     3

     4     5     6

     7     8     9

 

>> A’

 

ans =

 

     1     4     7

     2     5     8

     3     6     9

 

>> B

 

B =

 

    10    11    12

    13    14    15

    16    17    18

 

>> B’

 

ans =

 

    10    13    16

    11    14    17

    12    15    18

 

>> C

 

C =

 

    19    20    21

 

>> C’

 

ans =

 

    19

    20

    21

 

Apabila kita melakukan dua kali transpose pada suatu matrik, maka hasil yang didapat adalah matriks asalnya.

 

>> A

 

A =

 

     1     2     3

     4     5     6

     7     8     9

 

>> A’

 

ans =

 

     1     4     7

     2     5     8

     3     6     9

 

>> A”

 

ans =

 

     1     2     3

     4     5     6

     7     8     9

 

Yang sederhana gini jangan sampe salah… 🙂

 

Wassalam

Advertisements

12 Responses to “Matrix Operation on MATLAB”

  1. Arif Says:

    Kalo tentang transformasi linear itu kayak gmn???

    Di M-File, algoritmanya seperti apa???

    Saya diberika proyek untuk membuat tentang :
    Proyeksi
    Rotasi
    Pada matriks 2×2

    Mohon bantuannya…
    Trimakasih…

  2. parvian Says:

    @Arif: hmmm… sori baru bales, baru tau kalo ada pesen disini :)… eh, mending kamu bikin di m file, jadi ntar user tinggal manggil aja m-filenya dari matlab… kamu punya email? ntar saya kirim ke emailmu aja

  3. Arif Says:

    Email saya “arif_blue@plasa.com”

    Agak bingung juga sih sebenenya…

    Makasih sudah mau mengirim…

  4. allif Says:

    Assalamu’alaykum wr.wb

    parvian, sorry mau sharing boleh? kebetulan lagi search ttg MATLAB masuk ke blognya. mau nanya ttg operasi MATLAB unuk image dgn format JPEG (RGB), bener gak matrik utk RGB itu m x n x 3… nah kalo di matlab khan gak bisa matriks 3D (bisa gak sich?) terus operasi untuk merubah menjadi matriks 2D (m.n)x3 atau apa bgm caranya? kasih penjelasan yang details ya. karena saya baru belajar. terimakasih banyak sebelumnya. kalo jawabannya panjang bisa di kirim via email. syukran

    wassalamu’alaykum wr.wb

  5. barend cornelis Says:

    mas…
    sayakan menggunakan matlab untuk metode elemn hingga, dimana penyelesaiannya itu d=k\f

    dalam suatu kasus dengan matriks yang besar (765×765) menghasilkan nilai NaN, begitu juga dengan determinan matrik k-nya bernilai NaN

    apa penyebab dan gimana ya mas solusinya? soalnya ngejar dateline Tugas Akhir

    thanks sebelumnya

    wasalam

    barend cornelis

  6. imel Says:

    Mas Parvian, makasih atas arahannya…
    ku mo nanya,klo mo nentuin adjoin ama rank matriks dalam matlab gmn??mohon bantuannya….

  7. parvian Says:

    @Imel : Kebetulan saya pernah jadi asisten dosen mata kuliah aljabar linier, saya punya data lengkap cara nentuinnya ( adjoin dan rank )… bagaimana kalau saya kirim via email? email saya segera dan add YM! saya, nanti saya segera saya balas.

  8. Abi Says:

    saya sedang menyelesaikan permasalahan MADM dengan algoritma gentika,dengan pedoman buku Srikusumadewi dengan judul Optimasi Masalah dengan Teknik2 Heuristic,nah diditu ada coding yang harus di input dalam matlab,kebanyakan berbentuk function,sya mau bertanya: setelah diketikan melalui m-file,disimpan,lalu di eksekusinya seperti apa?? atau sya harus memasukkannyua dalam toolbox matlab nya??

    @Abi
    Akses function gampang kok, tinggal panggil nama functionnya dan parameternya saja. nggak perlu masukin m-file dalam toolboxnya matlab, saran saya : kamu bikin direktori sendiri berisi m-file yang kamu butuhkan saja tapi path untuk m-filenya jangan lupa diganti ya (current directory). Semoga bisa membantu

  9. hany Says:

    saya binggung banget ma array 2 dimensi pa lg perkalian matriks..
    gimana cara buat koding perkaliannya??

    @hany
    Nah loh, di atas tuh kan udah ada contoh kodingnya mengalikan 2 matriks?

  10. antHo Says:

    haiiiii…..
    Q mw nanya???????????????????
    gimana sich cara save di m-file?????????????????????????
    apa sich itu m file????????????

    @antHo
    Ya save biasa kayak kamu save notepad gimana? hehehehe untuk apa itu m-file coba kamu baca tulisan aku disini : https://parvian.wordpress.com/2008/02/17/m-file-on-matlab/ semoga membantu 🙂

  11. Fredi Says:

    Makasih ya….

  12. Lauren Says:

    saya mau tanya gmn caranya bikin rotasi matrix 45 n 90 derajat. trus klo matrix asal dikurangin matrix hasil rotasi 45 derajat itu bagaimana caranya? bisa ga sih dikurangin?
    thx b4..


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: