BİLGİSAYAR PROGRAMLAMA MATLAB Arş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi
Bu hafta? 1. Matlab ve Programlama Ortamı 2. Matlab Komut Penceresi 3. Matlab de değişken tanımlama 4. Matematiksel Operatörler ve İşlem Önceliği 5. Bazı hazır matematiksel fonksiyonlar 6. "input" komutuyla MATLAB ortamına dışarıdan veri girişi 7. Uygulamalar 2
Matlab Matlab, bilim adamları ve mühendislere, 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ıştır. Fakat daha sonra, Optimization Toolbox ve Control SystemToolbox gibi bazı toolbox lar eklenerek geliştirilmiştir. MATLAB bir yorumlayıcıdır(interpreter); yani sonuç, daha ziyade el tipi hesap makinelerine benzer tarzda ekranda yazılı bir metin olarak alınabilir. Netice de diğer dillerde olduğu gibi derleme ye (compilation) ihtiyaç yoktur; fakat programlamaya izin vermesinden dolayı da güçlü bir paket programdır. 3
Matlab Matlab kelimesi, MATrix LABoratory kelimelerinin kısaltılmasından türetilmiştir. MATLAB, teknik hesaplama dilidir, MATLAB ile algoritma geliştirme, veri analizi, görüntüleme ve sayısal hesaplamalar yapabilirisiniz. MATLAB; a. Kullanışlı bir ara yüze sahiptir, b. Çok sayıda bilimsel ve matematiksel fonksiyona sahiptir, c. Grafikler ile veri görüntülemek için çok çeşitli teknikler sunmaktadır. 4
Matlab i Çalıştıralım Nasıl açılır? Matlab simgesine tıklayınız. Command window (komut penceresi) ve matlab prompt (>>) prompt, komut penceresinde bulunan simgedir ve Matlab in veri girişi için hazır olduğunu gösterir. Matlab Help Window Matlab dili ve kullanımı ile ilgili çok geniş ve faydalı bilgiler içermektedir. Ayrıca çok sayıda örnek program ve eğitimlere de ulaşabilirsiniz. Nasıl kapatılır? 1. Prompt a quit veya exit yazınız veya 2. File menüsünden exit i seçiniz. 5
1. Geliştirme Ortamı 2. Komut Penceresi 3. Başlatma Penceresi 4. Workspace 5. History 6. Current Directory Matlab ve Programlama Ortamı 6
Current Directory -Klasörleri ve m- dosyalarını görmek için Matlab Arayüzü Workspace -Program değişkenlerini görmek için -Değişkenlere çift tıklandığında Array Editör de görülebilir. Command Window -Komutlar yazılır -MATLAB ile iletişim kurulan penceredir. Command History -Eski komutları görmek için 7
Matlab Komut Penceresi Komutlarınızı >> işaretinin yanına yazınız ve ardından enter tuşuna basınız. Sonuçlar hesaplanacak ve ans adıyla komut penceresine basılacaktır. Burada sayıları ve +, -, *, /, ^, sin, cos, exp, abs gibi işaret ve fonksiyonları kullanabilirsiniz. >>2+5 >>3^2 >>sin(pi/4) >>2*(2+3) 8
Matlab de Değişkenler Değişkenler hafızada bulunan ve program çalışırken rakam, karakter ve diğer veri elemanlarının depolanabildiği isimli yerlerdir. Değişken isimleri, bir işlemin sonucunu bir değişkene atamak için kullanılır. Tek eşittir (=) simgesi, değer atama için kullanılır. LHS (sol taraf) = RHS (sağ taraf) -İfadeler sağ tarafa yazılır, ifadenin sonucu ise sol tarafa yazılan değişkene atanır. (Sol tarafta yalnızca değişken ismi bulunmalıdır). 9
Değişkenlere isim verirken.. Değişken isimleri rakam, harf veya hem rakam hem harf olabilir ancak mutlaka harf ile başlamalıdır. Değişken isimlerinde noktalama işareti kullanılamaz, alt simge ( _ ) hariç. Değişken isminin herhangi bir yerinde boşluk olamaz, gerekli ise alt simge kullanınız. Matlab da büyük küçük harf duyarlılığı olduğu için yeniden kullanımlarda değişken adının tam olarak yazıldığından emin oldunuz. Matlab da büyük ve küçük harfler farklıdır, bundan dolayı A ve a aynı değişken değildir. Matlab fonksiyonları değişken adı olarak kullanılamaz.(sin, abs, sqrt ) Hazır fonksiyonları değişken adı olarak atadığınızda fonksiyonun yapısı bozulur. (sin, cos, length, sqrt gibi.) Örneğin cos=5 şeklinde değişken atandığında cos fonksiyonu artık çalışmaz. 10
Değişkenlere isim verirken.. Uygun >> X = 5; >> A = sqrt(13); >> B = exp(2); >> A = 2*B >> A = A + 1 >> C = tan(pi/4) Uygun değil (farklı sebeplerden) >> D = sqrt(e) + 1; >> 3 = E >> 3*A = 14 >> F = 2 3 11
Matematiksel Operatörler ve İşlem Önceliği İş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, a b ^ 2^3 Parantez, a*(b+c) ( ) 2*(3+5) Öncelik İşlem 1 Parantez 2 Üs 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 12
Matematiksel Operatörler ve İşlem Önceliği- Örnek ab-c+d-6+da b+c 3 -d/8-b 2 c a b + c3 bd 2 + 2ab b 2 4ac a + b + c2. 3f 3 e f d + 3a (a*b)-c+d-6+(d*a) b+(c^3)-(d/8)-(b^2*c) (a/b)+c^(3/2)-(b*(d^2))+((2*a*b)/(b^2-4*a*c))??? 13
Bazı hazır matematiksel fonksiyonlar 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 Eksponansiyal, e x exp exp(2) Doğal logaritma, ln(x) log log10 10 tabanında logaritma, log 10 100 = (log100) log10 log10(100) Kare kök, x sqrt sqrt(25) Mutlak değer, x abs abs(3) 14
Bir değişkene dışarıdan değer atanmasını istemek ( input komutu) 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 15
Örnek 1 Dışarıdan girilen 3 sayının ortalamasını bulan bir matlab programı yazınız. Çözüm: >> x=input( ilk sayıyı giriniz: ); ilk sayıyı giriniz: 20 >> y=input( ikinci sayıyı giriniz: ); ikinci sayıyı giriniz: 5 >> x=input( üçüncü sayıyı giriniz: ); üçüncü sayıyı giriniz: 15 ortalama=(x+y+z)/3 16
Örnek 2 Dairenin yarıçapını (r) dışarıdan isteyen ve bu değere göre dairenin alan ve çevresini hesaplayan bir Matlab programı yazınız. Çözüm: R= input( Dairenin yarıçapını giriniz : ); alan=pi*r^2; cevre=2*pi*r; alan cevre % alan ve cevre değişkenlerinin sonuna ; işareti konulmadığına dikkat ediniz 17
Örnek 3 Klavyeden girilen x ve y değerlerine bağlı olarak aşağıdaki fonksiyonun değerini hesaplayan bir Matlab programı yazınız. Çözüm: F x, y = x. y + x 2. y + x. y 3 + >> x= input( x değerini giriniz : ); x değerini giriniz: 5 >> y= input( y değerini giriniz : ); y değerini giriniz: 6 ln x + 1 log 10 y + x. y + 3. x + y y 4 + sin x F=(x*y)+(x^2*y)+(x*y^3)+(log(x)+1)/(log10(y))+sqrt(x*y)+(3*x+y)/(y^4)+(sin(x)/abs(y)) y 18
Önümüzdeki hafta? Matlabde diziler Matlade rastgele sayı üretimi Dizilere uygulanabilen bazı önemli fonksiyonlar Matlabde m dosyaları ile programlama Karşılaştırma Operatörleri Mantıksal Operatörler Kontrol Yapıları İf şartlı deyimi Uygulamalar 19