20 Ekim 2012

MATLAB'da Matrisler ve Matris İşlemleri 1

Merhabalar;

MATLAB yazı dizimin devamı olarak bu yazıda sizlere matrisler ve matris işlemlerinden bahsedeceğim.

İlk olarak vektör nasıl tanımlanır ile başlamak istiyorum:

A=[1:2:14] yazarsak elemanları 1'den başlayan 14'e kadar 2 aralıkla devam eden satır vektör oluştururuz.
A=1:2:14 de bunun eşdeğeridir.


>> A=[1:2:14]

A =

     1     3     5     7     9    11    13

>> A=1:2:14

A =

     1     3     5     7     9    11    13

Bir diğer yol da:


>> B=linspace(1,14,7)

B =

    1.0000    3.1667    5.3333    7.5000    9.6667   11.8333   14.0000

Burada 1'den 14'e kadar eşit aralıklarla artan 7 tane sayıdan oluşan satır vektör oluşturulur.


Vektörün içinden herhangi bir elemana ulaşmak için B(satır veya sütun no) yazılabilir:


>> B(3)

ans =

    5.3333

Matris tanımlamak içinse:

A=[1 8 5 19;2 3 6 7] ile 2x4 boyutlu A matrisini tanımlayabiliriz. Sütun değiştirmek için noktalı virgül kullanmak şarttır. Buna eşdeğer bir tanımlama ise;
A=[1,8,5,19;2,3,6,7]'dir. A matrisi hafızada şu şekilde tutulacaktır:

A =

     1     8     5    19
     2     3     6     7

Bu matrisin içinden herhangi bir elemana ulaşmak istenildiğinde A(satır no, sütun no) yazmak yeterlidir. Örneğin A matrisindeki 2. satır 4. sütun elemanına ulaşmak için A(2,4) yazılmalıdır. Cevap 7 olacaktır.

Daha kompleks bir örnek vermek gerekirse, örneğin bir değil de birden fazla elemana ulaşılmak istenirse ne yapılmalıdır buna değineyim. Mesela A matrisinde 2. satırda 2,3,4 numaralı sütunlara ulaşılmak isteniyor. Bunun için A(2,2:1:4) veya A(2,2:4) yazmak gerekir. İlk kullanımda 2. sütundan başlayıp, 4. sütuna kadar 1'er adımla seç olarak düşünülmeli. İkincide ise Matlab, bahsettiğimiz 1'er adımı yazmamızı zorunlu tutmadığı için adım sayısını yazmadım. Cevap:

ans =

     3     6     7

Başka bir örnekle pekiştirmek gerekiyorsa, eğer 2. satırın tüm sütunları istenilseydi A(2,:) yazmak yeterli olacaktır. Cevap:

ans =

     2     3     6     7


Matris İşlemleri

Toplama işlemi: Matrislerde toplama işlemi yapılabilmesi için toplanan matrislerin aynı boyutta olması gerekir. Örneğin:


>> a=[22,3,4,13;21,5,7,10;90,4,1,3]

a =

    22     3     4    13
    21     5     7    10
    90     4     1     3

>> b=[4,4,6,89;4,5,20,3;3,6,8,0]

b =

     4     4     6    89
     4     5    20     3
     3     6     8     0

olarak tanımlanmış iki matrisi toplayalım:


>> a+b

ans =

    26     7    10   102
    25    10    27    13
    93    10     9     3

Eğer bir matris bir sayı ile toplanmak istenirse, o zaman matrisin her elemanı tek tek o sayı ile toplanır. Örneğin:


>> a

a =

    22     3     4    13
    21     5     7    10
    90     4     1     3

>> a+1

ans =

    23     4     5    14
    22     6     8    11
    91     5     2     4

Çıkarma işlemi: Toplama işleminde olduğu gibi çıkarma işlemi uygulanacak matrisler aynı boyutta olmalıdır. Örneğin:

>> a

a =

    22     3     4    13
    21     5     7    10
    90     4     1     3

>> b

b =

     4     4     6    89
     4     5    20     3
     3     6     8     0

>> a-b

ans =

    18    -1    -2   -76
    17     0   -13     7
    87    -2    -7     3

Bir sayıdan bir matris çıkarılacaksa veya matrsisten bir sayı çıkarılacaksa eleman eleman işlem yapılır. Örneğin:

>> b

b =

     4     4     6    89
     4     5    20     3
     3     6     8     0

>> a-b

ans =

    18    -1    -2   -76
    17     0   -13     7
    87    -2    -7     3

>> 1-b

ans =

    -3    -3    -5   -88
    -3    -4   -19    -2
    -2    -5    -7     1

Çarpma işlemi: Çarpma işlemi iki anlamda ele alınmalıdır. Birincisi eleman elemana çarpımdır. Yani mertebeleri aynı olan elamanları çarpıp aynı mertebeye yazmaktır. Bunun için eşit boyutlu matrisler gereklidir. Örneğin:

>> a

a =

    22     3     4    13
    21     5     7    10
    90     4     1     3

>> b

b =

     4     4     6    89
     4     5    20     3
     3     6     8     0

>> a.*b

ans =

          88          12          24        1157
          84          25         140          30
         270          24           8           0

İkinci anlam ise matematiksel anlamdır. Yani çarpılacak iki matrisin boyutlarının uygun olması gerekir. İlk matrisin sütun sayısı ile ikinci matrisin satır sayısı aynı olmalıdır. Örneğin:

>> c=[1,3,5;7,2,4]      % 2x3 boyutlu

c =

     1     3     5
     7     2     4

>> d=[2,3,4,1;2,3,6,7;4,4,5,0]       % 3x4 boyutlu

d =

     2     3     4     1
     2     3     6     7
     4     4     5     0

>> c*d       % sonucun 2x4 boyutlu olması gerekir

ans =

    28    32    47    22
    34    43    60    21

Üs alma işlemi: Yine çarpma işlemi gibi iki şekilde yapılır. Bir a matrisinin  her bir elemanının n. kuvvetlerinden oluşan matrisi bulmak için a.^n işlemi kullanılır. Satır ve sütun sayıları eşit bir kare matrisi ardışık olarak n defa kendisiyle çarparak, a matrisinin n. kuvvetini bulabiliriz.Örneğin a matrisinin karesi için a*a veya a^2, kübünü buldurmak için a*a*a veya a^3, dördüncü kuvvetini buldurmak için a*a*a*a veya a^4 işlemiyle buldurabilirz.Ancak 2005 nci kuvvetini buldurmak için  a^2005 yazmak yeterlidir. Örneğin:

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

a =

     1     2     3
     4     5     6
     7     8     9

>> a.^3

ans =

     1     8    27
    64   125   216
   343   512   729

>> a^3

ans =

         468         576         684
        1062        1305        1548
        1656        2034        2412

Burada ilk olarak eleman elemana işlem yapıldı. Yani a.^3 yazarak tüm elemanların ayrı ayrı 3. kuvvetleri bulundu ve o metrebeye yazıldı. İkinci yapılan ise matrisi kendisiyle 3 defa çarpmakla eşdeğerdir. Yani matrisin tamanının 3. kuvvetini almaktır. Bunu yapabilmek içinse kare matris olması şarttır. Eğer kare değilse hata alırsınız:

??? Error using ==> mpower
Inputs must be a scalar and a square matrix.

MATLAB'da matris işlemleri böyledir. Örnekler çeşitlendirilebilir. Bir sonraki yazımda matris işlemlerinde kullanılan fonksiyonlara değineceğim.

Hoşçakalın.


Hiç yorum yok:

Yorum Gönder