Makine Müh. & Jeoloji Müh. MATLAB’ de Programlama 2012-13/ Bahar Makine Müh. & Jeoloji Müh. Matlab Ders Notları
KAYNAKLAR MATLAB ve Programlama, Dr. Aslan İnan, Papatya yayınları, 2004. MATLAB, Ömer Gündoğdu, Osman Kopmaz, M. Akif Ceviz, Paradigma Akademi, 2003. MATLAB 6.5, A. Emre Çetin, Alfa Yayınları, 2003. MATLAB ile Mühendislik Sistemlerinin Analizi ve Çözümü, İbrahim Yüksel, Vipaş, 2000. Her yönü ile MATLAB, Mehmet Uzunoğlu, Ömer Çağlar Onar, Ali Kızıl, Türkmen Kitabevi, 2003. MATLAB ile Mühendislik Sistemlerinin Analizi, Uğur Arifoğlu, Alfa Yayınları, 2003. Matlab Ders Notları
Konular: MATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) Geliştirme ortamı Komut penceresi Başlatma penceresi (launch pad) Workspace History Current directory MATLAB Ders Notları
MATLAB MATLAB, 1970' lerin sonunda, New Mexico ve Stanford Üniversiteleri tarafından geliştirilmiştir. Fortran ve C gibi gelenekselleşmiş dillerde program yazmaksızın, matrislere dayalı problemleri çözmede kullanılmak üzere bir sayısal hesaplama kütüphanesi sunmak amacıyla, MATris LABoratuvarı (MATrix LABoratory) programı olarak tasarlanmış, Fakat daha sonra, Optimization Toolbox ve Control System Toolbox gibi bazı toolbox’lar eklenerek geliştirilmiştir. Jack Little ve Steve Bangert birlikte 1984 MathWorks şirketini kurup ticari bir şirket haline getirmislerdir (Web sayfası: http://www.mathworks.com/) MATLAB bir yorumlayıcıdır (interpreter); yani sonuç, daha ziyade eltipi hesap makinelerine benzer tarzda ekranda yazılı bir metin olarak alınabilir. Neticede diğer dillerde olduğu gibi “derleme”ye (compiler) ihtiyaç yoktur; fakat programlamaya izin vermesinden dolayı da güçlü bir paket programdır. MATLAB Ders Notları
>> [x,y] = ndgrid(-2:.2:2, -2:.2:2); z(x,y) = x exp( - x^2 - y^2): >> [x,y] = ndgrid(-2:.2:2, -2:.2:2); >> z = x .* exp(-x.^2 - y.^2); >> mesh(z) MATLAB Ders Notları
MatLab Uygulama Alanları Algoritma geliştirme ve kod yazma, yani programlama Matematiksel (nümerik ve sembolik) hesaplama işlemleri. Lineer cebir, istatistik, Fourier analizi, filtreleme, optimizasyon, sayısal integrasyon vb. konularda matematik fonksiyonlar. 2D ve 3D grafiklerinin çizimi Modelleme ve benzetim Grafik oluşturma Veri analizi ve kontrolü Gerçek dünya şartlarında uygulama geliştirme Matlab programı kodu C/C++ diline dönüştürebilir, 20. dereceden bir denklemin köklerini bulabilir, 100x100 boyutlu bir matrisin tersi alınabilir, Bir elektrik motoru gerçek zamanda kontrol edilebilir, Bir otobüsün süspansiyon simülasyonunu yapılabir,
Matlab Toolbox
MATLAB dan Görünüm Gerekli pencereleri varsayılan düzende görüntülemek için: Desktop menüsünden Desktop Layout > Default seçilmelidir.
MATLAB dan Görünüm Matlab: File, Edit, Debug, Window ve help menülerinden oluşmaktadır. Matlab ortamı bir çok alt pencereden meydana gelmektedir. Komut penceresi (Command Window) : Kullanıcı matlab da komutlarını iki şekilde yazabilir. Command Window diğeri ise Editör ortamını kullanarak. Aktif Klasör (Current Directory): O anda aktif olarak çalışan klasör içindeki dosyalara ilişkin içeriğini görüntüleme, dosya açma, Çalışma alanı (Workspace): Komut 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. Bu alana çalısma alanı denir.
MATLAB dan Görünüm Geçmiş Komut listesi ( Command History) : Bu pencere yardımı ile daha önce kullanılmış olan komutlara ulaşılabilir. Başlatma penceresi (launch pad): Matlab kısayollarının bulunduğupenceredir.Bu pencereden Matlab uygulamalarına, simulink penceresine, araç kutularına ve blok setlerine ulasılabilir.Örneğin Matlab ile ilgili yapılabilecek olan islemler hakkında bilgi sahibi olmak için bu pencereden yararlanabiliriz.Örneğin Matlab ile ilgili yapılabilenleri, demo olarak izlemek istersek; MATLAB-Demos sekmesine tıklamalıyız.Karsımıza Desktop Environment, Matrices, Numerics, Graphics, Language ... gibi alt bölümler çıkar. Yardım Penceresi (Help Window) : Komut pencersinde help yazarak yardım pencerisini yada Menüden Help seçeğine tıklayarak ulaşabilirsiniz.
>> 4*25+6*52+2*99 ifadesini yazıp Enter tuşuna basılınca, ans= 1. Temel Bilgiler Komut Penceresi: MATLAB ile iletişim kurulan ana penceredir. MATLAB yorumlayıcısı kullanıcıdan gelecek komutları kabul etmeye hazır olduğunu gösteren “ >> ” biçiminde bir ileti görüntüler. Örneğin, 4*25+6*52+2*99 gibi basit matematiksel işlemi yapmak için >> 4*25+6*52+2*99 ifadesini yazıp Enter tuşuna basılınca, ans= 610 Komut satırında yanlışların düzeltilmesi: Klavyede yer alan ok tuşları komut satırında yapılan yanlışlıkları düzeltilmesine olanak tanır. Bunlar yukarı “↑” aşağı “↓” sol “←” sağ “→”. Yukarı tuşu kullanılarak bir önceki satır tekrar görüntülenerek sağ ve sol tuşları ile yanlış yazılı yere kursör taşınarak düzenleme gerçekleştirilir. Sonucun Ekranda Görüntülenmesini Gizleme: bir deyim yazıp, Enter tuşuna basılınca sonuçlar ekranda otomatik olarak görüntülenir. Buna karşılık, deyimin sonuna “ ; ” ilave edilecek olursa, bu deyim ile yapılan hesaplamalar ekranda görüntülenmez. MATLAB Ders Notları
2. MATLAB DEĞİŞKENLERİ VE KURALLAR Diğer programlama dillerinin pek çoğunda olduğu gibi MATLAB da matematik deyimler şart koşmakla beraber, diğer pek çok programlama dillerinden farklı olarak bu deyimler tümüyle matrisleri kapsar. Deyim oluşturma gurupları: Değişkenler, rakamlar, işletmenler ve fonksiyonlardır. MATLAB deyimleri ise komut ortamında yazılan her türlü komut satırlarıdır. Değişkenler: Degiskenler verileri tutmak icin kullanilir. Her tanımlanan bir değisken belirli bir yer ayrılmasına neden olur. MATLAB bir değişken ile karşı karşıya geldiğinde, otomatik olarak bu değişkeni oluşturulur ve yeteri kadar bellek ayrılır. Eğer değişken daha önceden tanımlı ise MATLAB onun içeriğini değiştirir ve gerekirse yeni bellek ayırır. Örneğin, >>x =50 yazıldığında “x” adı altında bir değişken oluşturur ve 50 değerini bu değişkene atar. Diğer bilgisayar dillerinde olduğu gibi MATLAB’ın da değişken isimleri konusunda bazı kuraları vardır. MATLAB Ders Notları
Belli Başlı Kurallar Aşağıda Olduğu Gibi Özetlenebilir. 1- Değişken isimleri küçük büyük harf kullanımına duyarlıdır. Buna göre aynı anlama gelen fakat farklı yazılan “orta”, “Orta”, “orTa” ve “ORTA” kelimeleri MATLAB için farklı değişkenlerdir. 2- Değişken isimleri en fazla 31 karakter içerebilir. Bundan fazla olanlar dikkate alınmaz 3- Değişken isimleri daima bir harf ile başlamalı ve bunu herhangi bir sayıda harfler, rakamlar veya alt çizgi ”_” izleyebilir. Noktalama işaretleri değişken isminde kullanılmaz. Çünkü bunların pek çoğunun MATLAB için bir anlamı vardır. 4- Değişken adı içinde Türkçe harfler olmamalıdır. 5- Matlab ortamında tanımlı olan komut adları değişken ismi olarak kullanılamaz. Not: isvarname değişkenismi komutun sonucu 0 ise değişken ismi olarak kullanılamaz, 1 ise kullanılabilinir. MATLAB Ders Notları
Rakamlar: MATLAB rakamlar için artı veya eksi işareti ve tercihli ondalık noktası ile birlikte alışagelmiş ondalık işaretler sistemi kullanır. Bilimsel işaretler sistemi 10 tabanına göre kuvvet belirlemek için “e” harfi kullanır. Sanal rakamlar son takı olarak “ i ” veya “ j ” harfi kullanır. 3, -100, 0.0005, 9.53564 1.456e10, 2.5e-5, 10i, -3.4j, 3e5i MATLAB Ders Notları
İşletmenler (Operatörler) : MATLAB deyimler içerisinde alışageldik aritmetik operatörler ve öncelik kuralları kullanır. İşlem Sembol Örnek Toplama, a+b + 2+3 Çıkarma, a-b - 5-2 Çarpma, a*b * 3*4 Bölme, a/b / 14/7 Üs alma, ab ^ 2^3 Parantez a*(b+c) ( ) 2*(3+5) Matematik işlemlerde öncelik hakkı: Tek bir matematiksel deyim içinde birden fazla işlem bir arada bulunabildiğine göre hangi işlemin öncelik hakkına sahip olduğunun bilinmesi yerinde olacaktır. Aşağıda MATLAB da kullanılan işlemlerde, işlemlerin öncelik listesi verilmiştir. MATLAB Ders Notları
2. Üst alma, soldan sağa doğru 3. Çarpma ve bölme, soldan sağa doğru Öncelik İşlem 1. Parantez 2. Üst alma, soldan sağa doğru 3. Çarpma ve bölme, soldan sağa doğru 4. Toplama ve çıkarma, soldan sağa doğru Fonksiyon: MATLAB sin, abs, sqrt, ve Log gibi çok önemli fonksiyonları da içine alan çok sayıda elemansal matematik fonksiyon sağlar. Bu fonksiyonların bazıları aşağıdaki Tablo’da listelenmiştir. Fonksiyon Sembol Örnek Sinüs, sin() sin sin(pi) Cosinüs, cos() cos cos(pi) Tanjant, tan() tan tan(pi) Arksinüs, arcsin() asin asin(0) Arkkosinüs, arccos() acos acos(0) Arktanjant, arctan() atan atan(1) Fonksiyon Sembol Örnek Eksponensiyal, ex exp exp(2) Doğal logaritma ln(x) log log(10) 10 tabanlı logaritma log10 log10(10) Kare kök, x sqrt sqrt(25) Mutlak değer, |x| abs abs(3) MATLAB Ders Notları
MATLAB’ DE DEĞİŞKEN TİPLERİ Double: Skaler veya vektörlerden oluşan sayısal değişkenleri ifade eder. Char: Tek bir karakter veya karakter grubundan oluşan skaler veya dizinleri ifade eder. MATLAB’ DE DEĞİŞKEN ATAMALARI Eşitlik İfadeleri ile Değişken Atamaları Bu şekildeki bir değişken atamasının genel hali, >> değişken = değer şeklindedir. Burada "değişken", herhangi bir karakter veya karakter grubu olabilir. "değer" ise, herhangi bir matematiksel ifade, bir karakter dizisi, bir sabit, bir matris veya bunların birden fazlasının matematiksel işlemler ile oluşturulmuş kombinasyonları olabilir. MATLAB Ders Notları
Örnek: >> a=5 Matris atama Vektör atama Skaler atama Bir değişkene bir değer atadıktan sonra aynı değişkene farklı bir değer atamak, o değişkenin ilk değerinin silinmesine, söz konusu değişkenin bundan sonraki işlemlerde yeni değeri ile işlem görmesine neden olmaktadır. Örnek: >> a=5 >>b=a+2 b = 7 >>a=10 >>b=a+2 b = 12 Matris atama >>C=[1 3; 2 1] C = 1 3 2 1 >> C=[1, 3; 2, 1] Vektör atama >>C=[1 3 2] C = 1 3 2 >> C= [1;3;2] 1 3 2 Skaler atama X = 3 A = 5-5i B = A / 5 MATLAB Ders Notları
Değişkenlerin içeriklerini Göstermesi Değişken atamalarında değişkenin değeri her zaman görüntelememiz gerekmez. Bunun için sonuna ; işareti konulur. Değişken Silme/Yok Etme clear değişkenadı (bir değişkeni) veya clear all (tümünü) >> clear x >> clear all (veya sadece clear)
Değişkenleri Listeme Değişkenlerin listesini görmek için Who komutu ile Değişkenlerimizin özelliklerini görmek için de whos ile
Değişkenleri Saklama ve Tekrar Çağırma Değişkenleri ya tek tek ASCII formatında yada tüm değişkenleri topluca ikili olarak .mat dosyar formatında saklayabiliriz. >>save dosyaadı değişken_adları –ascii >> save dosyaadı (ikiliformat) >>save diyerek dosya adı belirtmeden direk matlab.mat altında saklar. Saklanan değişkenleri başka bir oturumda geri getirmek için load komudu kullanılır >>load dosyaadı değişken_adları >>load dosyadı
BİR DEĞİŞKENE DIŞARIDAN BİR DEĞER ATANMASINI İSTEMEK “ input " fonksiyonu, komut penceresinde kullanıcıdan bir değişkene bir değer girmesini isteyen bir komut görüntüler ve kullanıcının bu değeri girmesini bekler, >> x=input('x değerini giriniz= ') x değerini giriniz= x = 10 Matlab' da Sabit değişkenler ans işleminin sonucu atar pi pi sayısını içerir bitmax matlab gösterebilecek maximum sayı intmax integer sayılardaki maximun değer inf sonsuz ….. . ….
Bilgisayarda yazılımı Örnekler: Matematiksel yazılım Bilgisayarda yazılımı ab-c+d-6+da a*b-c+d-6+d*a b+c3-d/8-b2c b+c^3-d/8-b^2*c ??? Ödev: İşlemini bilgisayar dilinde kodlayınız
ÖZEL DEĞERLER VE KALICI DEĞİŞKENLER MATLAB'ın yapısında önceden tanımlanmış, kullanılacakları zaman tekrar tanımlanmalarına gerek olmayan ve herhangi bir anda kullanılmaya hazır bazı özel değerler bulunur. Örneğin: yarıçapı 2 birim olan bir kürenin alanını >> r=2; >> alan = 4 * pi * r^2 >> alan = 50.2655 >> date ans = 19-Mar-2003 >> clock ans = 2003 3 19 18 47 7.828 MATLAB Ders Notları
Matlab ortamında sayıların tanımlanması Numeric format Oran Virgülden sonraki Hane Short 50.1234 4 Long 50.123415678901234 14 Short e 5.08333e+001 Long e 5.08333333333 Short g 50.833 Short veya short e den kısa gösterim Long g 50.8333333 Long veya long e den kısa gösterim Hex 4096aaaaaaab Bank 50.83 Dolar yada cent cinsinden gösterim Rational 5/10
Örnek:
BİR DEĞİŞKENE DIŞARIDAN BİR DEĞER ATANMASINI İSTEMEK “ input " fonksiyonu, komut penceresinde kullanıcıdan bir değişkene bir değer girmesini isteyen bir komut görüntüler ve kullanıcının bu değeri girmesini bekler, X=input('Bir değer giriniz= '); >> x=input('x değerini giriniz= ') x değerini giriniz= 10 x = 10 MATLAB Ders Notları
Uygulama Sorusu: Dışardan girilen 3 sayının ortalamasını bulan bir MATLAB programı yazınız. MATLAB Ders Notlari