BİLGİSAYAR PROGRAMLAMA DERSİ Yrd. Doç. Dr. Fatih TOSUNOĞLU Erzurum Teknik Üniversitesi Mühendislik Fakültesi İnşaat Mühendisliği Bölümü
DERS NOTU 5 KONU: Matlab de Diziler ve Matrisler
İÇ İÇE FOR DÖNGÜSÜ Çarpım tablosunu ekrana yazdıracak bir MATLAB programını yazınız?????
for i=1:10 for j=1:10 carpim=i*j; fprintf('%d*%d=%d\n', i, j, carpim); end end
Matlab de Dizi Kavramı Bir değişken içerisinde birden çok veri numaralandırılarak tek bir isim altında saklanmasına DİZİ denir. Tanımlanan bir Dizi altında bir veya birden fazla sayıda veri olduğu için bunları birbirinden ayırt etmek için İNDİS adı verilen bir bilgiye ihtiyaç duyulmaktadır. Tek Boyutlu Bir Dizi
İki veya daha fazla boyuta sahip olan dizilere ise Matris adı verilmektedir. B Matrisi 1. sütun 2. sütun 3. sütun 4. sütun 1. Satır 2. Satır 3. Satır 23 12 75 48 3 36 15 12 45 4 55 13 B matrisinin 1. satır, 1 sütun elemanı; B(1,1)=23 B matrisinin 1. satır, 2 sütun elemanı; B(1,2)=12 B matrisinin 1. satır, 3 sütun elemanı; B(1,3)=75 B matrisinin 1. satır, 4 sütun elemanı; B(1,4)=48 B matrisinin 2. satır, 1 sütun elemanı; B(2,1)=3 B matrisinin 2. satır, 2 sütun elemanı; B(2,2)=36 B matrisinin 2. satır, 3 sütun elemanı; B(2,3)=15 B matrisinin 2. satır, 4 sütun elemanı; B(2,4)=12 B matrisinin 3. satır, 1 sütun elemanı; B(3,1)=45 B matrisinin 3. satır, 2 sütun elemanı; B(3,2)=4 B matrisinin 3. satır, 3 sütun elemanı; B(3,3)=55 B matrisinin 3. satır, 4 sütun elemanı; B(3,4)=13 Oluşturulan bu B matrisinin boyutu; (Satır Sayısı X sütun Sayısı), 3X4
Matlab de Dizi Oluşturma Matlab de Otomatik Dizi Oluşturma Matlab de Döngülerle Dizi Oluşturma
Matlab de Dizi Oluşturma Matlab de Döngülerle Matris Oluşturma
Matlab de Dizi Oluşturma Uygulama: N elemanlı tek satırlı bir dizinin N değeri ve elemanları dışardan girilecek ve oluşan bu dizinin (vektörün) normunun karesi (yani dizi elemanlarının karelerinin toplamı) bulacak bir Matlab algoritması geliştiriniz.
Önceden oluşturulmuş bir matrisin veya vektörün boyutlarını tespit etmek için Matlab de size(matris İsmi) komutu kullanılır.
Uygulama; Aşağıda verilen A matrisin 2 ile çarpımı sonucunu veren bir Matlab algoritması geliştiriniz. Matematiksel Çözüm 2 A = 2 2 3 1 4 = 2 2 2 3 2 1 2 4 = 4 6 2 8
Bu Uygulamanın Matlab e Doğrudan Yaptırılması Bu Uygulamanın Matlab de Algoritma Geliştirilerek Yapılması
Uygulama; Aşağıda verilen 2x2 lik bir matrisin 2. sütununu 3 ile çarpıp yeni bir matris elde eden bir MATLAB algoritması geliştiriniz. Matematiksel Çözüm; A = 2 3 3 1 3 4 = 2 9 1 12
Uygulama: Aşağıda tanımlanan iki matrisin toplamını bulan bir Matlab algoritması geliştiriniz. Matematiksel Açıklama; İki matrisin toplanabilmesi veya çıkarabilmesi için boyutlarının yani satır ve sütun sayılarının eşit olması gerekmektedir. A = 2 3 1 4, B = 3 6 4 5 A + B = C = 2 + 3 3 + 6 1 + 4 4 + 5 = 5 9 5 9
Uygulama: Kullanıcı tarafından girilen iki matrisin çarpımını bulan bir Matlab algoritması geliştiriniz. Matematiksel Açıklama; A ve B gibi iki matrisin çarpılabilmesi için A matrisinin sütun sayısının B matrisinin satır sayısının eşit olması gerekmektedir. A matrisi mxn boyutunda, B matrisi nxk boyutunda olmak üzere; bu çarpma işlemi sonucunda elde edilecek yeni C matrisinin boyutu mxk olacaktır. Aşağıdaki matris çarpımı inceleyiniz; A 2x3 = a 11 a 12 a 13 a 21 a 22 a 23, B 3x2 = m n n k b 11 b 12 b 21 b 22 C = A B = a 11 a 12 a 13 a 21 a 22 a 23 b 31 b 23 b 11 b 12 b 21 b 22 = b 31 b 32 C 22 = c 11 c 12 c 21 c 22 = (a 11 b 11 + a 12 b 21 + a 13 b 31 ) (a 11 b 12 + a 12 b 22 + a 13 b 32 ) (a 21 b 11 + a 22 b 21 + a 23 b 31 ) (a 21 b 12 + a 22 b 22 + a 23 b 32 )
A matrisinin satır indisinin değeri 1 ve bu değer çarpım esnasında değişmiyor (m=1) A matrisinin sütun indisi çarpım esnasında birer adımlarla artıyor yani n=1,2,3. B matrisinin satır indisi çarpım esnasında birer adımlarla artıyor yani n=1,2,3. B matrisinin sütun indisinin değeri 1 ve bu değer çarpım esnasında değişmiyor (k=1) A matrisinin satır indisinin değeri 1 ve bu değer çarpım esnasında değişmiyor (m=1) A matrisinin sütun indisi çarpım esnasında birer adımlarla artıyor yani n=1,2,3. B matrisinin satır indisi çarpım esnasında birer adımlarla artıyor yani n=1,2,3. B matrisinin sütun indisi bir önceki adıma göre değeri bir arttı ve bu değer çarpım esnasında değişmiyor (k=2)
A matrisinin satır indisi bir önceki adıma göre bir değeri arttı ve bu değer çarpım esnasında değişmiyor (m=2) A matrisinin sütun indisi çarpım esnasında birer adımlarla artıyor yani n=1,2,3. B matrisinin satır indisi çarpım esnasında birer adımlarla artıyor yani n=1,2,3. B matrisinin sütun indisi bir önceki adıma göre değeri bir azaldı ve bu değer çarpım esnasında değişmiyor (k=1) A matrisinin satır indisinin değeri bir önceki adıma göre değeri değişmedi bu değer çarpım esnasında değişmiyor (m=2) A matrisinin sütun indisi çarpım esnasında birer adımlarla artıyor yani n=1,2,3. B matrisinin satır indisi çarpım esnasında birer adımlarla artıyor yani n=1,2,3. B matrisinin sütun indisi bir önceki adıma göre değeri bir artı ve bu değer çarpım esnasında değişmiyor (k=2)
Özetle; 1 adım ; m=1, k=1 n=1,2,3 2 adım; m=1, k=2 n=1,2,3 3 adım; m=2, k=1 n=1,2,3 4 adım; m=2, k=2 n=1,2,3
Matlab de Sıklıkla Kullanılan Vektör İşlem Komutları max(a); Tanımlanan A vektörün en büyük elemanını bulma komutudur. min(a); Tanımlanan A vektörün en küçük elemanını bulma komutudur. sum(a); Tanımlanan A vektörün elemanları toplamını bulma komutudur. mean(a); Tanımlanan A vektörün elemanlarının ortalamasını bulma komutudur. length(a); Tanımlanan A vektörünün eleman sayını bulma komutudur. size(a); Tanımlanan A matrisinin sırasıyla satır ve sütun sayısını bulma komutudur. A(:,sütun numarası); A matrisinin girilen sütun numarasındaki tüm elemanlarını gösterir. A(satır numarası,:); A matrisinin girilen satır numarasındaki tüm elemanlarını gösterir. A ; A matrisinin tranpozunu alır. (Satır Sütun yer değiştirme işlemi) inv(a); A matrisinin tersini alır.
Ödev; Kullanıcı tarafından girilen keyfi bir boyutdaki matrisin tranpozunu alan bir Matlab algoritması geliştiriniz. Not; Matlab in A komutu kullanılmayacaktır. Matematiksel Açıklama: Transpoz, matrislerde satır ile sütunun yer değiştirilmesi işlemidir. Örneği; A=3x2 boyutundaki bir matrisin transpozu alındığı zaman B=A T =2x3 lük bir matris elde edilir.
Teşekkür Bilgisayar programlama dersi konu sunumlarının hazırlanmasında emeği geçen değerli meslektaşlarım Yrd. Doç. Dr. Ahmet DUMLU ve Yrd. Dr. Doç. Deniz DAL a teşekkürlerimi bir borç bilirim. Yrd. Doç. Dr. Fatih TOSUNOĞLU