Matlab Matlab SAYISAL ANAL İZ Matlab’a Giriş Derleme Ders Notları Ö ğr. Gör. Arzu ERENER email:ae76@hotmail.com.tr2 1. Kaynakça Sayısal Analiz 1. Octave http://www.gnu.org/software/octave/download.html 2. Matlab http://www.mathworks.com/products/matlab/ 3. Excel 4. Steven T. Karris, Numerical Analysis Using MATLAB and Excel, Third Edition, 2007, Orchard Publications 5. MATLAB, The Language of Technical Computing, Getting Started with MATLAB, Version 5 6. Mehmet Uzuno ğlu- Ömer Ça ğlar Onar, Her Yönü ile Matlab, 2003 Baskı 7. MATLAB PROGRAMLAMAYA G İRİŞ, http://www.tugrulaktas.com/dersnotlari/Matlap/matlab[2].pdf 8. Ali Yazıcı ders notları, Matlab 7.0, hızlı ö ğrenme Klavuzu, Sayısal Yöntemler Derleyen: A.Gün, Denetleyen: A.Karamancıo ğlu, OGU-EE.003, A ğustos 2002, MATLAB’E GiR İŞ 9. CORS-TR, Ders 2 : MATLAB ile Matris İşlemleri Eğitim,Seminerleri Serisi : MATLAB’e Giri ş 10. http://www.mathworks.com/matlabcentral/3 1. Kapsam Sayısal Analiz o 1. Matlab'ın Genel Yapısı o 2. Matlab Kullanımında Temel Kurallar o 3.1. İfadeler o 3.2.De ği şlenler o 3.3. Sayılar o 3.4 Operatörler(sayısal işlemciler) o 3.5. Fonksyonlar o 3.6. Özel Sabitler o 4. Vektörler o 5. Matlab'da Dizi (Matris) İşlemleri o 5.1. Matrislerde Elemanlar o 5.2. Genel Matrisler o 6. Matrisler ve İşlemler4 Matlab; yüksek performanslı bir teknik programlama dilidir. Matlab açılımı ingilizce “MATrix LABoratory” den gelmektedir. Ba şlangıçta MATLAB özellikle mühendislik alanında, iyi grafik özelliklere sahip daha çok sayısal hesaplamalarda kullanılmak amacı ile geli ştirilmi ş bir paket programlama dili olarak ortaya çıkmı ştır. Matlab; matrix esaslı matematik ortamında kullanılmak üzere geliştirilmi ş etkile şimli bir paket programlama dilidir. İlk sürümleri Fortran diliyle hazırlanmı ş olmakla beraber son ürümleri (2000 yılı itibari ile 5.1) C dilinde yazılmı ştır. 1. MATLAB Sayısal Analiz5 MATLAB mühendislik alanında; •Matematik ve hesaplama i şleri, algoritma geli ştirme. •Verilerin analizi, incelenmesi ve görüntülenmesi. •veri çözümleri ve •grafik i şlemlerinde •Modelleme, benzetim ve prototipleme. kullanılabilecek genel amaçlı bir program olmakla beraber özel amaçlı modüler paketlerede sahiptir. Fortran ve C dili gibi yüksek seviyeli programlama dili ile yapılabilen hesaplamaların pek ço ğunu MATLAB ile yapmak mümkündür. 1. MATLAB Sayısal Analiz6 1970’lerin sonunda Cleve Moler tarafından yazılan Matlab programının tipik kullanım alanları: Matematiksel hesaplama i şlemleri Algoritma geli ştirme ve kod yazma Lineer cebir,istatistik,Fourier analizi,filtreleme,optimizasyon,sayısal integrasyon vb. konularda matematik fonksiyonlar 2D ve 3D grafiklerinin çizimi Modelleme ve simülasyon (benzetim) Grafiksel arayüz olu şturma Veri analizi ve kontrolü Gerçek dünya şartlarında uygulama geli ştirme şeklinde özetlenebilir. 1. MATLAB Sayısal Analiz7 oMatlab'ın resmi sitesi: http://www.mathworks.com, oörnek uygulama ve teknik literatür için: www.mathworks.com/applications/tech_comp...nicalliterature.html Ayrıca http://www.mathworks.com/matlabcentral/ : kod payla şımı oMatlab’in Türkiye temsilcisi Bursa merkezli Figes firmasıdır. oWeb adresi: http://www.figes.com.tr oHaber grubu: matlabturk@yahoogroups.com 1. MATLAB Sayısal Analiz8 1. MATLAB Sayısal Analiz Matlab matrix tabanlı bir dildir. Matlabda ilk ba şlangıçta herşeyi matris olarak dü şünmek yararlı olacaktır.9 1. MATLAB Sayısal Analiz oAraç kutuları,özel sorunların çözümü için MATLABa uyarlanan MATLAB i şlevlerinin bir tür kitaplıklarıdır. oAraç kutuları, açık ve eklenebilir olup; kendi algoritmalarını ve ekini görebilirsiniz. oSimulink : oBlok diyagram arayüzü ile do ğrusal olmayan simulasyonu ve “canlı” simulasyon yetenekleriyle öz sayıları, MATLAB’ın grafiklerini ve dil fonksiyonlarını birleştiren bir sistemdir. 10 oMatlaba başlamanın en iyi yolu matrislerin nasıl ele alınması gerekti ğini ö ğrenmektir. oMATLAB da bir matrix, dikdörtgen sayılar dizisidir. o1x1 matris scaler sayı, omx1 matris sütun matrisi o1xn matris satır matrisi omxn matris m satırlık ,n sütunluk matristir. 1. MATLAB Sayısal Analiz11 1. Program Nasıl Başlatılır? Ba şlat -->Tüm Programlar-->Matlab veya Command Window: Matlab 2. Program Nasıl Sonlandırılır? MATLAB Programlama dilini sonlandırmak için >> quit yada >> exit komutları kullanılır. 1. Matlab'ın Genel Yapısı MATLAB12 MASA ÜSTÜ KOMUT PENCERESİ Çalı şma Dizini Çalı şma Alanı Komut Geçmi şi Komut Satırı MATLAB programını ilk çalı ştırdı ğınızda karşınıza çıkacak ekran a şa ğıdaki gibidir. 1. Matlab'ın Genel Yapısı MATLAB13 Matlabı çalıstırdı ğımızda, karsımıza ana pencere gelir. Bu pencerede File, Edit, Debug, Parallel, Desktop, Window ve Help ana baslıkları vardır. Bu baslıklar altından, di ğer Windows programlarında alısılagelmis benzer islemler 1. Matlab'ın Genel Yapısı MATLAB14 Burada Desktop Desktop Layout ile Matlabın masaüstü yerlesimini düzenleyebilirsiniz. Örneğin; Default ile varsayılan görünümünü, Command Window Only ile sadece klasik komut penceresini 1. Matlab'ın Genel Yapısı MATLAB15 Command Window: Bu pencere komut penceresidir Bu pencereden Matlab ile ilgili komutları klavyeden girer, komutun islemesini sa ğlamak için de Enter tusuna basılır. Komutları girdi ğimiz satır >> ile baslar ki bu satıra komut satırı denir Eg.Yarıçapı 3.6 olan bir daire alanı hesaplayalım 1. Matlab'ın Genel Yapısı MATLAB16 Bu pencere o ana kadar komut satırından girilen komutları gösterir. İstersek bunların birini fareyle seçer, ya da bir kaçını veya tümünü fare ve asağı-yukarı yön tusları yardımıyla seçer ve delete tusuna basarak silebiliriz Command History 1. Matlab'ın Genel Yapısı MATLAB17 oKomut satırından ya da çalıstırılan bir dosya ya da fonksiyon ile hafızada olusturulan de ğiskenlerin adlarının, tiplerinin ve özelliklerinin görüntülendi ği penceredir. oÇalı şma Alanı MATLAB’da i şletilen fonksyonların veya komutların oluşturdu ğu deği şkenlerin depolandı ğı bir merkezdir. oBöylelikle tüm de ği şkenlere belli bir kaynaktan ula şılabilmektedir, bu da programlama sırasında de ği şkenlerin yerini, belirtmeden, bu de ği şkenleri kullanma imkanı sa ğlamaktadır. Workspace Üstüne sa ğ tu ş yapıp özellikler eklenebilir eg.size 1. Matlab'ın Genel Yapısı MATLAB18 Workspace Örneğin: c değiskeni 1x1 boyutunda bir matris yani sayı, b de ğiskeninin ise 3x2 boyutunda bir matris, yani üç satır ve 2 sütundan olusan bir matris, nasılsın adlı değisken de 6 karakterden olusan bir karakter zinciri (string) oldu ğu görülür. 1. Matlab'ın Genel Yapısı MATLAB Örnek : Command Window’a alttaki de ğerleri yazıp inceleyin: a = 4; b = 5; c = a*b nasılsın=‘iyidir’19 Matlab Dizi Editörü oA de ği şkenine çift tıklandı ğında Matlab Dizi Editörü açılır. oBurda deği şkenlerin içerikleri görüntülenir ve de ği ştirilebilir. 1. Matlab'ın Genel Yapısı MATLAB20 who : çalı şma alanında hangi de ği şkenler oldu ğu whos: bu deği şkenlerin yapıları görülmektedir. what; komutu kullanıcı diskinin halihazır dizininde mevcut M- dosyaları listesini verir. 1. Matlab'ın Genel Yapısı MATLAB21 clc: Komut penceresindeki satırları silmeye yarar clear: Hafızadaki de ği şkenler silinir 1. Matlab'ın Genel Yapısı MATLAB22 Matlab Çalı şma Dizini penceresindeki “ a şa ğı ok” basılarak çalı şma dizini seçilebilir. Current Folder’da çalı şmak istenilern directory yönlendirilerek hızlı ulaşım sa ğlanır. 1. Matlab'ın Genel Yapısı MATLAB23 Current Folder: Matlab dosyalarının kaydedildi ği, yüklendi ği dosyaların bulundu ğu klasörü (dizin), varsayılan klasör olarak belirlemeye yarar. Aksi belirtilmedikçe bu klasör C:\Matlab6p5\work gibi bir klasördür. Yada : save F:\MATLAB_UYG\katsayilar a katsayilar.mat olarak kaydedilen a matrisininmatlab kapatılıp açıldıktan sonra herhangi bir zamanda geri ça ğrılmasıiçin; load F:\MATLAB_UYG\katsayilar komut dizisi kullanılır. Command Windowa : save yazılırsa deği şkenler “matlab.mat” veri dosyasına kaydedilmi ş olur. Matlabı kapatıp açalım ve matlab.mat’ı ça ğıralım. (File open matlab.mat) . 1. Matlab'ın Genel Yapısı MATLAB Örnek: >> a=[1,2,3; 5,7,9] a = 1 2 3 5 7 924 MATLAB Yardım 1. Komut satırına “help”yaz ılır. Bu yardım sunulabilecek konuların listesini sunar. 2. help fonksyon-adı fonksyon için yardım metnini görüntüler. 1. Matlab'ın Genel Yapısı MATLAB25 Matlab MasaÜstü Yeni M- Dosyası Dosya Aç Help Desk Kayıtlı Matlab Fonksyonu, kayıt dosyası(mat), modeli, figürü ve GUI arayüzlü fonksyonları açar Veri dosyalarını açar Çalı şma ortamını kaydeder Farklı çalı şma dizinini Matlaba tanıtır Matlab arayüzünü ayarlar 1. Matlab'ın Genel Yapısı MATLAB26 Ba şlat Dü ğmesi Matlab araç kutuları, Matlab uygulamalarına eklenti olarak hazırlanan ve hazır fonksyonları içeren paketlerdir. 1. Matlab'ın Genel Yapısı MATLAB27 Ba şlat Dü ğmesi Start Dü ğmesi tüm matlab uygulamalarına açılan kısayolları içermektedir. Matlab Uygulamaları için kısa yol Araç kutuları SimulinkUy gulaması Demolar Veri Sihirbazı GUI Hazırlayıcı 1. Matlab'ın Genel Yapısı MATLAB28 Matlaba Veri Alma Programa dı şarıdan resim, film, veri, ses dosyalarını matris formatına çevirerek bir de ği şken olarak atamada kullanılır File Import Data Örnek: Exel dosyası alma Exelde bir matrix olu şturup matlabdan import ile alınız. 1. Matlab'ın Genel Yapısı MATLAB29 Matlab'da Temel Kavramlar: Tüm programlama dillerinde oldu ğu gibi (Fortran, C, Pascal, Basic vs..) Matlab'ın da özel anlam tasıyan bazı kelimeleri vardır ki, bu kelimeler de ğisken olarak kullanılamazlar. Bu tür kelimelere anahtar kelime (keywords) denir. Bu kelimelerin bir listesini almak için komut satırına; iskeyword komutunu yazarak elde edebiliriz. Bu kelimeler; 'break‘ 'case' 'catch' 'continue' 'else' 'elseif' 'end‘ 'for' 'function' 'global' 'if' 'otherwise‘ 'persistent' 'return' 'switch' 'try' 'while. 1. Matlab'ın Genel Yapısı MATLAB30 Programın dili ve yardım bilgileri tamamen ingilizcedir. Küçük-büyük harf ayrımı vardır. Örneğin dscrite, DSCRITE ve Dscrite atamaları farklı şekilde algılanır Eğer istenirse “casesen off”komutu ile bu durum sona erdirilebilir. »i şareti komut prompt’udur. Komutlar Enter ile yürütülür. 2. Matlab Kullanımında Temel Kurallar: Matlab31 Genel komutların isimleri ve açıklamaları 2. Matlab Kullanımında Temel Kurallar: MATLAB32 2. Matlab Kullanımında Temel Kurallar: MATLAB MATLAB kontrolünü kullanabilmeniz için özel karakterlere sahiptir. Bu karakterlerin bir özeti :33 2. Matlab Kullanımında Temel Kurallar: Matlab34 2. Matlab Kullanımında Temel Kurallar: Matlab35 İFADELER : Matematiksel ve metinsel gösterimler ile i şlemler ifadelerle sa ğlanır. Sayılar (Numbers) Deği şkenler (Variables) İşleçler (Operators) Fonksiyonlar (Functions) Matlab’de ifadeler genellikle de ği şken = ifade veya sadece ifade formundadır. Sayısal Analiz x = 4 * sqrt(5) İfade deği şken sayı i şleç fonksiyon Bir ifade = i şareti ile bir de ği şkene atanmamı ş ise Matlab otomatik olarak sonucu, ans (answer) adı verilen özel bir de ği şkende saklar. 3. MATR İSLER36 o Birden fazla ifade tek satırda aralarına , ya da ; koyarak yazılabilir. o Yazımda bo şluk sayısı etkisizdir. o Sadece ilgili de ğişken adını yazarak o de ğişkeni ça ğırabilirsiniz. MATR İSLER 3.1. İFADELER 37 o MATLAB’da, herhangi bir tip tanımlaması veya boyut ifadesine gerek yoktur. o MATLAB, yeni bir de ği şken ismi ile karşılaştı ğında, otomatik olarak ans isminde bir deği şken oluşturur ve uygun bir bellek miktarı ayırır. oEğer de ği şken zaten varsa, MATLAB gerekli bir bellek ayırdı ğında içeri ği de ği şir. Örneğin, o ogrenci_sayı=51 3.2. Deği şlenler Matlab Değisken: değeri de ğisebilen bellek alanına isaret eden de ğerlere,38 MATLAB deği şken giri şleri için çe şitli kurallara sahiptir. Her de ği şken bir harfle ba şlamak zorundadır. Program büyük küçük harf duyarlıdır. X ve x farklı deği şkenleri ifade eder. Program 31 basama ğa kadar duyarlıdır. Bu basamaktan sonrasını yok sayar. Dolayısıyla 31 basamaktan uzun de ği şken isimleri karı şıklık yaratabilir. 3.2. De ği şlenler Matlab39 Değiskenlere Değer Atama: Her hangi bir programlama dilinde oldu ğu gibi, Matlab’da da bir de ğiskene değer verme islemine ”de ğer atamak” denir. Bir değiskene atanan değer, de ğistirilmedi ği sürece aynı kalır. Değer atamanın genel kullanımı asağıdaki biçiminde olur: =; 3.2. Deği şlenler Matlab40 Örnek 2: A=6i-7; %A: de ği şkenine skaler bir de ğer atar B=A /7; %B de ği şkenine A de ği şkeninin 1/7 si atanmı ştır C=[3 4 5 6]; % 4 elemanlı bir satır vektörü atanmı ştır NOT: Dizi girişinde herhangi bir satıra ait elemanlar aralarına boşluk veya virgül “,” konularak ayrılır Dizinin di ğer bir satırına ba şlamak için biten satır sonuna ; konulur. 3.2. Deği şlenler Matlab41 oMATLAB’da sayılar yaygın olarak kullanılan onluk tabanda ifade edilirler. o Bunun yanısıra onluk tabanda üstel olarak veya i veya j olarak kompleks sayı biçimlerinde de ifade edilebilirler. oÖrnek olarak, 3.3. Sayılar Matlab da i ve j başka türlü tanımlanmamı şsa kompleks i sayısını gösterir. 3e 5 sayısıda 3*10 5 anlamındadır MATR İSLER42 o Ondalık sayılar Türkçemizdeki 3,5 yerine 3.5 şeklinde gösterilir (0.0001 veya 9.63, 0.65 yerine .65). o Bilimsel notasyon gösterimi olan e (veya E) harfi 10’nun kuvvetini temsil eder. o 2e 4 =2.10 4 =2000 veya 1.65e -20 =1.65.10 -20 demektir. o Kompleks sayılarda imajiner (sanal) kısımlar i veya j ekini alır. i veya j ile gosterimlerinde bir fark yoktur. o (1+3i veya 1+3*i veya 1+i*3) / 1+sqrt(3)*j / -5i o Matlab’de tüm sayılar, yakla şık 2.10308 ve 2.10-308 arasında de ğişir. 3.3. Sayılar MATR İSLER43 Sayı Formatları: 3.3. Sayılar Matlab MATR İSLER44 oMatlab'da bir çok eylem, dört islem ve matematiksel bazı islemler yaptırabiliriz. oBunun için, ya ilgili komutları komut penceresinden teker teker girerek veya ilgili komutları bir dosyaya yazıp, o dosyayı ça ğırarak çalıstırabiliriz. o İşlemleri yaptırırken, sayıları reel sayı ya da karmasık sayı olarak alabiliriz. 3.4 Operatörler(sayısal işlemciler): MATR İSLER45 Matematiksel ifadeleri olu şturmak için operatörler ve önceden tanımlanmı ş sembolleri kullanabilirsiniz. oOperatörler özetle şunlardır: oMatrislerle yapılan i şlemlerde bölme i şlemi için iki farklı sembol kullanılmaktadır. oBunun yanında eğer sayılar skaler ise iki bölme i şleminin sonucu da aynı değeri gösterecektir. oÖrneğin 3/2 ile 2\3 ifadelerinin sonuçları aynı olup 1.5’dir » 4+8*3–2 ans = 26 3.4 Operatörler(sayısal işlemciler): MATR İSLER46 3.4 Operatörler(sayısal işlemciler): MATR İSLER x=a + b Bu ifadede a ve b nin toplandı ğı ve x deği şkeni içinde saklandı ğı belirtilmektedir. 47 Aritmetiksel İşlemlerde Öncelik Durumu: oTek bir aritmetiksel durum içinde birden fazla durum bir arada bulunabildi ğine göre hangi i şlemin öncelik hakkına sahip olundu ğunun bilinmelidir. oMATLAB’da kullanılan i şlemlerde i şlemlerin öncelik listesi: 3.4 Operatörler(sayısal işlemciler): MATR İSLER bazı temel matematiksel fonksiyonların açıklamaları48 o MATLAB’ da i şlemler soldan sa ğa i şlerler. o İşlemler arası öncelik sırası a şa ğıdaki gibidir: 1. ^ (Yüksek) 2. *, / v 3. +, - (Düşük) » 3^(2–5)-6/3*2 » 3^2–5–6/3*2 ans = ans = —3.9630 0 3.4 Operatörler(sayısal işlemciler): MATR İSLER49 3.5. Fonksyonlar MATR İSLER o MATLAB’ın çok güçlü ve çok kapsamlı bir fonksiyon yapısı vardır. oMATLAB’da bazı fonksiyonlar daha önceden yerle ştirilmi ş bazıları ise sonradan dı şarıdan yerle ştirilmi ş M-dosyalarından olu şan MATLAB kütüphanelerinde tanımlanmı şlardır. oBunun yanında özel uygulamalar için kullanıcıların kendi fonksiyonlarını yazarak kendi kütüphanelerini olu şturması mümkündür. MATLAB’da mevcut analitik fonksiyonları genel olarak a şa ğıdaki kategorilere ayırabiliriz. oTemel matematiksel fonksiyonlar oÖzel fonksiyonlar oTemel matrisler ve matris i şlemleri oMatrisleri çarpanlarına ayırma oVeri analizleri oPolinomlar oDiferansiyel denklem çözümleri oLineer olmayan denklemler ve optimizasyon oSayısal integral hesaplamaları oSinyal i şleme50 Matematiksel Fonksiyonlar: bazı temel matematiksel fonksiyonların açıklamaları 3.5. Fonksyonlar MATR İSLER Örnek: >>exp(1) ans=2.7183 >>fix(3.5) ans=3 >>ceil(3.5) ans=4 >>round(3.5) ans=4 51 Matlab'da önceden tanımlanmıs bazı sabitlerdir. Bunlar a şa ğıdaki tabloda gösterilmistir. 3.6. Özel Sabitler Matlab52 Örnekler: 1) a=1; 2) a=’ İstanbul’ 3) a=5;b=7;c=a+b; 4) a=5;b=-3;c=a+2*b;a=a+b; 5) num=2*3-5^2; x=num/2, y=x+10; 7. Sabitler, De ğiskenler ve Metin Katarları Matlab53 Örnek: Komut satırına a) sin(30) b) sin(30*pi/180) yazınız sonuçları inceleyiniz. 3.5. Fonksyonlar MATR İSLER Cevap: a) -0.9880 sonucu görülür ki bu 30° nin sinüsünde n farklıdır. Çünkü bu 30° derece değil 30 radyanın sinüsüdür. b) 0.5000 sonucu görülür ki bu da 30° nin sinüsüd ür. O halde bir sayının trigonometrik de ğerini buldurmak için, önce pi ile çarpıp 180 e bölerek açıyı radyan çevirip sonra trigonometrik de ğerini hesaplatabiliriz.54 oVektörler tek boyutlu sayı dizileridir. oElemanlarının sıralanma yönlerine göre sütun veya satır vektörü adlarını alırlar. ovektörler [ ] kö şeli parantezleri ile tanımlanır ofarklı yolla tanımlanabilirler 4. Vektörler Matlab A = [4, 12, -8, 6]; A = [4 12 -8 6]; B = [1; 2; 4; 6]; Satır Vektörü Sütun Vektörü >> b=[1 2 4 6 ]55 4. Vektörler Matlab ovektör boyutları büyüdükçe, manuel olarak tanıtım i şlemi oldukça zorla şmaktadır. oÖzellikle belli bir artıma sahip vektörlerin olu şturulmasında (:) operatörü kullanılmaktadır. C = [-1:0.5:150]; Son de ğer Ba şlangıçde ğeri Artı ş miktarı D’ = [30:-10:-30] Sütun Vektörü56 Vektör indisleri 4. Vektörler Matlab Bir vektörün elemanlarına atanılan de ğer de ği şkenler editörü veya eleman adresi vasıtasıyla de ği ştirilebilir. Örnek: A = [4 12 -8 6]; 1. A vektörünün 3. elemanını 27 ile de ği ştiriniz. 2. Benzer şekilde A vektörünün 2. elemanını siliniz. 3. A(9) = 12 Çözüm: 1. A(3) = 27 2. Vektörün elemanına [ ] de ğeri atandı ğında eleman silinir. A(2) = [ ] 3. >> A(9) = 12 A= [ 4 27 6] A =[ 2 27 7 0 0 0 0 0 12]57 » x=[17 8 61 83 56]; Şeklindeki bir matrisin üçüncü elemanına eri şmek istenirse »c= x(3) c = 61 Eğer bir blok şeklinde veriye eri şilmek istenirse; »x(2: 4) ans = 8 61 83 Her matristeki herhangi bir elman grubuna eri şilmek istenirse; » x([3 1 4]) ans = 61 17 83 5. Matlab'da Dizi (Matris) İşlemleri: Matlab58 Bir diziye düzenli artıs (veya azalıs) kuralıyla de ğerler atanmak isteniyorsa bunu; ilk_de ğer:artıs:son de ğer veya ilk_de ğer:artıs:son de ğer biçiminde yapabiliriz. Ancak artıs 1 ise belirtilmeyebilir. Örnek: ortalama adlı bir diziye 0 dan 5 e kadar 0.5 er artısla elde edilen sayı dizisini atayan; ortalama=[0:0.5:5]; Siz: 1. satır 7 den den 17 ye kadar olan tam sayılar, 2. satırı 99 dan 89 a kadar azalan tam sayılardan olusan 2 boyutlu m dizisine atayan islemleri yazınız?? Dizilerin Değerlerinin Değistirilmesi ve Düzenlenmesi: 4. Vektörler Matlab59 4. Vektörler Matlab60 Sayılardan olusan satır ve sütun yapısına matris (dizi) denir. Örneğin; d1=[5] 1x1 lik, d2=[ 2 -7] 1x2 lik, d3= [1 0 -3 ] [ 5 3 1 ] 2x3 lük bir dizidir. Örnek: x=[1; 7; 18; 5] Ya da »x= [ 1 7 18 5 ] Biçimlerinde girilebilir. 5. Matlab'da Dizi (Matris) İşlemleri: Matlab61 Dizilerin Değerlerinin De ğistirilmesi ve Düzenlenmesi: Bir dizinin herhangi bir elemanını belirlemek için dizi adından hemen sonra parantez içinde elemanın bulundu ğu satır ve sütun sayısı yazılmalıdır. Örnek: 1. d2=[2 -7] d2 dizisinin -7 elemanını görüntülemek için: d2(1,2) 2. d3=[1 0 -3;5 3 1] d3 dizisinin 2. satır, 1. sütununda bulunan 5 in de ğerinin, -7.5 olması için: d3(2,1)=-7.5; Not:1) Bir dizinin bir çok elemanını yeniden de ğer atamak gerekirse, komut satırından atama yapmak uzun zaman alabilir. Bu durumda dizi de ğiskeninin üzerine çift tıklayarak açılan dizi editörü (array edit) yardımıyla de ğisiklikleri daha kolay yapabiliriz. 5. Matlab'da Dizi (Matris) İşlemleri: Matlab62 8. Matrisler(Dizi) Matlab Bir matrisi girerken , o1. Elemanlar, ba ştan ve sondan kö şeli parantezlerle kapatılır. o2. Elemanların arasına bo şluk veya virgül konulur. o3. Matris satırlarını ayırmak için de noktalı virgül kullanılır. okurallarına dikkate alınmalıdır. Örneğin, A = [1 2 3; 4 5 6]; A = 1 2 3 4 5 6 şeklinde veriler matrisler biçiminde tanımlanır. MATLAB daha sonra kullanılmak üzere verileri A matrisinde saklar.63 Matris elemanları rasgele rakamlardan olu şabilece ği gibi MATLAB’ın deyimlerinden de olu şabilir. 5.1. Matrislerde Elemanlar Matlab Örneğin. a=[-1.3 sqrt(3) (1+2+3)*475] a= -1.3000 1.7321 4.8000 Küçük matrisleri eleman olarak kullanıp daha büyük matrisler olu şturmak mümkündür. Örneğin, M=[1 3 5 7 8 9] matrisine a şa ğıda gösterildi ği şekilde bir satır eklemesi yapabilir. M=[M;[10 13 15]] Bu durumda M matrisi M=[1 3 5 7 8 9 10 13 15] durumunu alır. 64 İki nokta üst üste (:) kullanarak büyük matrislerin belli bir kısmını kullanabiliriz ya da di ğer ifade ile bu matrisi küçültebiliriz. Örneğin, M=M(1:2,:) bildirimi M matrisinin ilk iki satırını alarak M matrisi olarak saklar. Örnek: M=[8 -4 7; 66 -7 8 9; 4 5 134] ise: M=M(1:2,:) =? 8. 1. Matrislerde Elemanlar Matlab65 MATLAB’da kullanıcı verileri kendi olu şturaca ğı matrisler ile tanımlayabilece ği gibi MATLAB’ın kendi özel matrislerinden de istifade edilebilir. 5.2. Genel Matrisler: Matlab66 Özel Dizi (Matris) Olusturan Bazı Fonksiyonlar: a) Sıfır Matrisi Olusturan Fonksiyon: Her elemanı sıfır olan mxn boyutunda bir matrise sıfır matrisi denir. Böyle bir dizi olusturmak için zeros fonksiyonu kullanılır. Kullanımı; matris_adı=zeros(m,n); biçimindedir. Örnek: 3x5 boyutunda s adlı sıfır matrisi için: s=zeros(3,5); 5.2. Genel Matrisler: Matlab67 b) 1 lerden Olusan Matris: Her elemanı 1 olan mxn boyutunda bir matrisi olusturmak için ones fonksiyonu kullanılır. Kullanımı; matria_adı=ones(m,n); biçimindedir. Örnek: 2x3 boyutunda b adlı tüm elemanları 1 olan matrisi olusturalım. b=ones(2,3); Özel Dizi (Matris) Olusturan Bazı Fonksiyonlar: 5.2. Genel Matrisler: Matlab68 c) Birim Matrisi Olusturan Fonksiyon: Esas kösegeni 1 lerden di ğer elemanları 0 lardan olusan kare matrise (satır ve sütun sayısı esit olan ) birim matrisi, kare olmayan matrise de diyagonal matris denir. Böyle matrisleri olusturmak için eye fonksiyonu kullanılır. Kullanımı; matris_adı=eye(m,n); biçimindedir. Örnek: a) 3x3 lük birim matris; b) 4x3 llük diyagonal matris olusturalım. Çözüm:a) i=eye(3,3); b) d=eye(4,3); Özel Dizi (Matris) Olusturan Bazı Fonksiyonlar: 5.2. Genel Matrisler: Matlab69 d) Rastgele Sayılardan Olusan Matris ve Fonksiyonu: Elemanları 0 ile 1 arasındaki rastgele sayılardan olusan bir matris için rand fonksiyonu kullanılır. Kullanımı; matris_adı=rand(m,n); biçimindedir.(m:satır,n:sütun) Not 1) Üretilen matrisin tüm elemanlarını k gibi bir sayı ile çarparak, sayıları 0 ile k arasına çekebiliriz. Not 2) Ondalıklı sayılardan olusmus bir matrisin elemanlarını yuvarlayıp tam sayı yapmak için round fonksiyonunu kullanırız. Özel Dizi (Matris) Olusturan Bazı Fonksiyonlar: 5.2. Genel Matrisler: Matlab70 Örnek: a) 0 ile 1 arasında rastgele sayılardan olusan 10 elemanlı a adında bir satır matrisi olusturalım. b) Elemanları 10 ile 50 arasında sayılardan olusan 5x3 tipinde b matrisini olusturalım. c) Elemanları 50 ile 300 arasındaki tamsayılardan olusan 3x4 tipinde c matrisini olusturalım. Özel Dizi (Matris) Olusturan Bazı Fonksiyonlar: d) Rastgele Sayılardan Olusan Matris ve Fonksiyonu: 5.2. Genel Matrisler: Matlab71 Çözüm: a) a=rand(1,10); b) b=10+rand(5,3)*40; c) c=round(50+rand(3,4)*250); 5.2. Genel Matrisler: Matlab72 e) Rastgele Sayılardan Olusan Normal Da ğılımlı Matris ve Fonksiyonu: Elemanları rasstgele sayılardan olusan bir normal da ğılımlı bir matris için randn fonksiyonu kullanılır. Kullanımı; matris_adı=randn(m,n); biçimindedir. Örnek: Rastgele sayılardan olusan normal da ğılımlı 2x3 lük bir n matrisini olusturalım. Çözüm: n=randn(2,3); 5.2. Genel Matrisler: Matlab73 f) Lineer Aralıklı (Aritmetik) Dizi ve Fonksiyonu: Baslangıç ve biis de ğerleri ve kaç elemandan olusaca ğı belirlenen diziyi olusturmak için linspace fonksiyonu kullanılır. Kullanımı; dizi_adı=linspace(ilk_de ğer,son_de ğer,eleman_sayısı); biçimindedir. 5.2. Genel Matrisler: Matlab74 Örnek: 10 ile 30 arasına 9 tane daha sayı koyarak a adında bir aritmetik dizi olusturalım. f) Lineer Aralıklı (Aritmetik) Dizi ve Fonksiyonu: 5.2. Genel Matrisler: Matlab Cevap: a=linspace(10,30,11); 75 Elimizdeki grubun her elemanı için bir matematik i şlemi yapıp bunu yeni bir diziye atarken herhangi bir sorun yoktur. Fakat iki farklı grupla i şlemler yaparken dikkat etmemiz gereken genel kurallar vardır. Örneğin toplama ve çıkarma yaparken iki dizinin de büyüklü ğünün eşit olması gerekmektedir. Ayrıca iki farklı dizinin elemanları arasında birebir i şlem yapmak için matematik operatörünün ba şına nokta(.) koymak gerekir. Bu durumda her bir elemanı di ğer dizinin o sıradaki elmanı ile işleme sokacaktır. 6. MATR İSLER VE İŞLEMLER İ Matlab76 Birden fazla satır ve sütuna sahip vektörlere matris denir. Noktalı virgül (;) i şareti ile kolonları ve virgüle i şareti ya da bo şluk bırakarak da bir sıradaki elemanları ayırabiliriz Örnek: » x=[ 3 4 5 6; 7 8 9 10; 11 12 13 14] x = 3 4 5 6 7 8 9 10 11 12 13 14 Yukarıdaki 3x4 boyutunda bir matristir. MATLAB programına a şa ğıdaki gibi de sunulabilir. » x=[ 3 4 5 6 7 8 9 10 11 12 13 14] x = 3 4 5 6 7 8 9 10 11 12 13 14 6. MATR İSLER VE İŞLEMLER İ Matlab77 Matristeki herhangi bir elemana direk ula şmak için a şa ğıdaki gösterim yeterlidir. » x(2,3)=9 Eğer iste ğimiz eri şti ğimiz bir elemanı deği ştirmek veya yeni bir satır eklemek ise aşa ğıdaki gösterim yeterlidir. . » x(4,1)=1 x = 3 4 5 6 7 8 9 10 11 12 13 14 1 0 0 0 Bu durumda dördüncü satır ilk elemanını biz 1 de ğerini atadık ve di ğer elemanları kendili ğinden “0” olarak atadı. 6. MATR İSLER VE İŞLEMLER İ Matlab78 İki nokta üst üste (:) kullanılarak belirli aralıkta deği şen matrisler yaratılabilir. » x=[1:2:7; 3:-1:0; -1:2] x = 1 3 5 7 3 2 1 0 -1 0 1 2 Bir matrisin herhangi bir bölümünü seçmek için ise a şa ğıdaki gösterim kullanılır; » z=x(2:3, 1:2) z = 3 2 -1 0 Bu durumda z matris x matrisinin 2 ve 3 no’ lu satırlarından 1 ve 2 no’ lu sütunlarını almı ş oluyor. Herhangi bir satır veya sütunu tamamen silmek istersek o satır ve sütunu seçip “[]” ifadesine e şitleriz. » z(:,2)=[ ] z = 3 -1 6. MATR İSLER VE İŞLEMLER İ Matlab79 Matlab, size ve length komutları yardımı ile size matrisinizin boyutlarını söyler. » a=[ 2 3 4 5 6 7 8 9 10 11]; » s=size(a) s = 2 5 » b=[ 17 11 0 30 40 50]; » k=length(b) k = 6 6. MATR İSLER VE İŞLEMLER İ Matlab80 a) Toplama-Çıkarma Bir Sayı ile Çarpma İşlemi: İki matrisi toplamak (veya çıkarmak) demek, matrislerin aynı mertebedeki elemanları teker teker toplayıp (veya çıkarıp ) aynı mertebeye yazmak demektir. Bu durumda iki matrisin de aynı mertebeden olması gere ği açıktır. Bir matrisi sabit bir sayıyla ile toplamak (veya çıkarmak) demek, matrisin elemanlarınının tümünü teker teker o sayıyla toplamak (veya çıkarmak )demektir. Bir matrisi sabit bir sayıyla ile çarpmak demek ise, matrisin elemanlarınının tümünü teker teker o sayıyla çarpmak demektir. 6. MATR İSLER VE İŞLEMLER İ Matlab8182 Örnek: » a=[1 2 3; 4 5 6]; » b=[7 8 9; 10 11 12]; a ve b toplamı: » sum=a+b sum = 8 10 12 14 16 18 a’ yı b’ den çıkarmak; » diff=a-b diff = -6 -6 -6 -6 -6 -6 6. MATR İSLER VE İŞLEMLER İ Matlab83 Örnek: a=[-1 3 5;2 1 7] ve b=[3 -3 -4;1 1 5] matrisleri veriliyor. a) c=a+b toplam matrisini b) d=a-b matrisini c) amatrisinin her elemanınının 5 eksi ğine karsılık gelen e matrisini d) f=2a-3b matrisini bulduran islemleri yazalım. 6. MATR İSLER VE İŞLEMLER İ Matlab Çözüm: a) c=a+b b) d=a-b c) e=a-5 d) f=a+a-b-b-b veya f=2*a-3*b84 İki matrisin çarpım islemi iki biçimde anlasılır. 1) Aynı mertebeden iki matrisin elemanlarını teker teker , çarpıp, aynı mertebeye yazmak demektir. Bunu .* islemi ile gerçeklestiririz. 2) Matematiksel anlamda iki matrisi çarpmak istedi ğimizde; birinci matris mxn türünde ve ikinci matris mutlaka nxp türünde olmalıdır; yani birinci matrisin sütun sayısı ikinci matrisin satır sayısına eşit olmalıdır. Bu durumda birinci matrisin i. sütun elemanları ile, ikinci matrisin j. satırındaki elemanlar karılıklı olarak çarpılır ve sonuçlar toplanır ve bu toplam çarpım matrisinin (i,j) inci mertebeye yazılır. Matrisler arası çarpma isleminin sembolü de * dır. b) İki Matrisin Çarpımı, Bir Matrisin Kuvvetleri ve Çarpma İslemi: 6. MATR İSLER VE İŞLEMLER İ Matlab85 3) Bir a matrisinin her bir elemanının n. Kuvvetlerinden olusan matrisi bulmak için a.^n islemi kullanılır. 4) Satır ve sütun sayıları esit bir kare matrisi ardısı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 Not) Bir a matrisinin eleman -elemana çarpma islemine benzer mantıkla, bir matrisin tüm elemanlarının kareleri, kübleri, sinüsleri, kosinüsleri, logaritmalarından olusan matris bulunmak istenirse; bunu sırayla a.*a (veya a.^2), a.*a.*a, (veya a.^3), sin(a), cos(a), e tabanında logaritması için log(a), 10 tabanında logaritmaları için log10(a) ... Biçiminde gerçeklestirebiliriz. 6. MATR İSLER VE İŞLEMLER İ Matlab86 a) a matrisinin elemanları ile b matrisinin elemanlarını karsılıklı çarpımlarından olusan c1 matrisi varsa bulalım. b) a matrisi ile b matrisinin çarpım matrisi olan c2 varsa bulalım. c) a matrisinin elemanları ile c matrisinin elemanlarını karsılıklı çarpımlarından olusan c3 matrisi varsa bulalım. d) a matrisi ile c matrisinin çarpım matrisi olan c4 varsa bulalım. e) a matrisinin elemanlarının karelerinden olusan matris ile b matrisinin kosinüslerinden olusan matrisler toplamını bulalım. f) x=[1 0;0 3] matrisinin i) Karesini ii) Kübünü iii) 10. kuvvetini bulalım. Örnek: a=[-1 3 5;2 1 7] , b=[3 -3 -4;1 1 5] ve c=[1 0;-1 2;3 3] matrisleri veriliyor. 6. MATR İSLER VE İŞLEMLER İ Matlab87 Çözüm: a) iki matrisin karsılıklı elemanlarının çarpımından olusan matrisin tanımlı olabilmesi için aynı mertebeli olması gerekir.Bu durumda c1 matrisi tanımlıdır ve bunu c1=a.*b islemi ile gerçeklestirebiliriz. b) iki matrisin çarpılabilmesi için birinci matrisin sütun sayısı ikinci matrisin satır sayısına esit olmalıdır.Halbuki a matrisi 2x3 b matrisi de 2x3 oldu ğundan bu iki matris çarpılamaz. c) İki matrisin karsılıklı elemanlarının çarpımından olusan matrisin tanımlı olabilmesi için aynı mertebeli olması gerekir.Halbuki bu matrisler aynı mertebeden olmadı ğından bu iki matris eleman-elemana çarpma islemi gerçeklemez. d) İki matrisin çarpılabilmesi için birinci matrisin sütun sayısı ikinci matrisin satır sayısına esit olmalıdır.a matrisi 2x3 lük, c matrisi de 3x2 lik olduğundan bu iki matris çarpılabilir ve c4 çarpım matrisi 2x2 lik bir matris olur.c4 çarpım matrisini c4=a*c islemi ile buluruz. e) a.^2+cos(b) f) i) x^2 ii) x^3 iii) x^10 6. MATR İSLER VE İŞLEMLER İ Matlab88 c) Bir Matrisin Devri ğini (Transpozesi) Bulma İslemi: Bir matrisin satırlarını sütun, sütunlarını satır olarak yazılmasıyla bulunan matrise, bu matrisin devri ği (transpozesi) denir. Bir matrisin devri ğini .' islemi ile bulabiliriz. Örnek: a=[-1 3 5;2 1 7] nın devri ğini buldurup d matrisine atayalım. Çözüm: d=a.'; 6. MATR İSLER VE İŞLEMLER İ Matlab89 Örnek: b=[7 8 9; 10 11 12]; matrisinin transpozesini bulabilirmisiniz? 6. MATR İSLER VE İŞLEMLER İ Matlab Çözüm: c=b' c = 7 10 8 11 9 1290 SORU: a=[1 2 3; 4 5 6]; c= [7,10;8,11;9,12]; ise a ve c’nin çarpım matrisi kaçtır? 6. MATR İSLER VE İŞLEMLER İ Matlab ÇÖZÜM: Çarpma i şlemi: k=a*c k= 50 68 122 16791 SORU : a=[1 2 3; 4 5 6]; b=[7 8 9; 10 11 12]; ise a matrisinin elemanları ile b matrisinin elemanlarını karsılıklı çarpımlarından olusan x matrisini bulalım? 6. MATR İSLER VE İŞLEMLER İ Matlab ÇÖZÜM: x=a.*b x = 7 16 27 40 55 7292 d) İki Matrisin Bölümü, Birim Matris ve Bir Matrisin Tersi : Aynı mertebeden iki matrisin elemanlarını teker teker, bölerek, aynı mertebeye yazılmasına iki matrisin sol bölmesi denir ve bu ./ islemi ile yapılır. a, b ve c aynı mertebeden kare matrisler olmak üzere; c=a*b ise a matrisine c nin b matrisine bölümü denir. c bölüm matrisi / islemi ile yapılır. 6. MATR İSLER VE İŞLEMLER İ Matlab93 HATIRLATMA: 2x2 lik i2 adlı birim matrisi i2=eye(2,2); 3x lük i3 adlı birim matrisi i2=eye(3,3); islemi ile olusturabiiriz. Aynı mertebeden a ve b kare matrisleri için a ile b nin çarpımı birim matris ise b matrisi a matrisinin (aynı biçimde a matrisi de b matrisinin) ters matrisidir. Örnek: 3x3 lük bir a kare matrisinin tersini bulmak için: d) İki Matrisin Bölümü, Birim Matris ve Bir Matrisin Tersi : eye(3,3)/a veya inv(a) islemini kullanırız. 6. MATR İSLER VE İŞLEMLER İ Matlab94 Bir Matrisin Determinantı Determinant, kare matrisleri bir sayıya e şleyen fonksiyondur. Determinant fonksiyonunun, kare matrisi eşledi ği o sayıya matrisin determinantı denir. A matrisinin determinantı, detA veya |A| biçiminde gösterilir. |A|, matrislerde mutlak de ğer anlamına gelmez. |A| sıfır veya negatif de olabilir. det(x) 6. MATR İSLER VE İŞLEMLER İ Matlab95 KURAL: 6. MATR İSLER VE İŞLEMLER İ Matlab96 Örnek: Verilen bir x matrisi için: » x=[ 2 -1; 5 8] Determinant: » deter=det(x) deter = 21 6. MATR İSLER VE İŞLEMLER İ Matlab97 Örnek Inverse i şlemi: Verilen bir x matrisi için: » x=[ 2 -1; 5 8] Detx=det(x)=21 ise; »y= i n v(x ) y = 8/21 1/21 -5/21 2/21 6. MATR İSLER VE İŞLEMLER İ Matlab98 SORU: a=[2 -10 0;1 2 4;3 0 1] matrisi ile b=[1 5 4;1 -1 2;0 1 -1] matrisleri veriliyor. a) a matrisinin elemanlarını sırasıyla b matrisinin elemanlarına bölerek elde edilen matrisi b1 matrisine atayalım. b) a matrisinin ta ters matrisini bulalım. c) a ile ta matrisinin çarpımının 3x3 lük birim matris oldu ğunu gösterelim. d) a matrisinin b matrisine bölümünü b2 matrisine atayalım. 6. MATR İSLER VE İŞLEMLER İ Matlab99 Çözüm: a) b1=a./b b) ta1=eye(3,3)/a veya ta2=inv(a) c) a*ta ==eye(3,3) d) b2=a/b 6. MATR İSLER VE İŞLEMLER İ Matlab