makine müh. & jeoloji müh

28
Matlab Ders Notları MATLAB’ de Programlama Makine Müh. & Jeoloji Müh. 2012-13/ Bahar

Upload: telyn

Post on 14-Jan-2016

49 views

Category:

Documents


2 download

DESCRIPTION

M ATLAB ’ de P rogramlama. Makine Müh. & Jeoloji Müh. 2012-13/ Bahar. Matlab Ders Notları. KAYNAKLAR MATLAB ve P rogramlama , D r. A slan İ nan , Papatya yayınları, 2004. MATLAB, Ömer Gündoğdu, Osman Kopmaz, M. Akif Ceviz, Paradigma Akademi, 2003. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Makine Müh. & Jeoloji Müh

Matlab Ders Notları

MATLAB’ de

Programlama

Makine Müh. & Jeoloji Müh.

2012-13/ Bahar

Page 2: Makine Müh. & Jeoloji Müh

Matlab Ders Notları

KAYNAKLAR

1. MATLAB ve Programlama, Dr. Aslan İnan, Papatya yayınları, 2004.

2. MATLAB, Ömer Gündoğdu, Osman Kopmaz, M. Akif Ceviz, Paradigma Akademi, 2003.

3. MATLAB 6.5, A. Emre Çetin, Alfa Yayınları, 2003.

4. MATLAB ile Mühendislik Sistemlerinin Analizi ve Çözümü, İbrahim Yüksel, Vipaş, 2000.

5. Her yönü ile MATLAB, Mehmet Uzunoğlu, Ömer Çağlar Onar, Ali Kızıl, Türkmen Kitabevi, 2003.

6. MATLAB ile Mühendislik Sistemlerinin Analizi, Uğur Arifoğlu, Alfa Yayınları, 2003.

Page 3: Makine Müh. & Jeoloji Müh

MATLAB Ders Notları

KKonular:onular:

MMATLAB ortamının tanıtımıATLAB ortamının tanıtımı

Matlab sistemi (ara yüzey tanıtımı)Matlab sistemi (ara yüzey tanıtımı)

a)a) Geliştirme ortamıGeliştirme ortamı

b)b) Komut penceresiKomut penceresi

c)c) Başlatma penceresi (launch pad)Başlatma penceresi (launch pad)

d)d) WorkspaceWorkspace

e)e) HistoryHistory

f)f) Current directoryCurrent directory

Page 4: Makine Müh. & Jeoloji Müh

MATLAB Ders Notları

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.

MMATLABATLAB

Page 5: Makine Müh. & Jeoloji Müh

MATLAB Ders Notları

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)

05

1015

2025

0

10

20

30-0.5

0

0.5

Page 6: Makine Müh. & Jeoloji Müh

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,

Page 7: Makine Müh. & Jeoloji Müh

Matlab Toolbox

Page 8: Makine Müh. & Jeoloji Müh

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.

Page 9: Makine Müh. & Jeoloji Müh

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.

Page 10: Makine Müh. & Jeoloji Müh

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.

Page 11: Makine Müh. & Jeoloji Müh

MATLAB Ders Notları

1. Temel BilgilerKomut 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.

Page 12: Makine Müh. & Jeoloji Müh

MATLAB Ders Notları

2. MATLAB DEĞİŞKENLERİ VE KURALLARDiğ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.

Ö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.

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.

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.

Page 13: Makine Müh. & Jeoloji Müh

MATLAB Ders Notları

Belli Başlı Kurallar Aşağıda Olduğu Gibi Özetlenebilir.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.

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şaretleriNoktalama 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.

2- Değişken isimleri en fazla 31 karakter içerebilir. Bundan fazla olanlar dikkate alınmaz

Page 14: Makine Müh. & Jeoloji Müh

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

Page 15: Makine Müh. & Jeoloji Müh

MATLAB Ders Notları

İşletmenler (Operatörler) : MATLAB deyimler içerisinde alışageldik aritmetik operatörler ve öncelik kuralları kullanır.

İşlemİşlem SembolSembol ÖrnekÖ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ı: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.

Page 16: Makine Müh. & Jeoloji Müh

MATLAB Ders Notları

Öncelik İşlem1. ParantezParantez2. Üst alma, soldan sağa doğruÜst alma, soldan sağa doğru 3. Çarpma ve bölme, soldan sağa doğruÇarpma ve bölme, soldan sağa doğru 4. Toplama ve çıkarma, soldan sağa doğruToplama 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)sin(pi)

Cosinüs, cos() cos cos(pi)cos(pi)

Tanjant, tan() tan tan(pi)tan(pi)

Arksinüs, arcsin() asin asin(0)asin(0)

Arkkosinüs, arccos() acos acos(0)acos(0)

Arktanjant, arctan() atan atan(1)atan(1)

FonksiyonFonksiyon SembolSembol ÖrnekÖ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)

Page 17: Makine Müh. & Jeoloji Müh

MATLAB Ders Notları

MATLAB’ DE DEĞİŞKEN TİPLERİ 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 ATAMALARIMATLAB’ DE DEĞİŞKEN ATAMALARI

EşitlikEşitlik İfadeleri ile Değişken Atamaları

Bu şekildeki bir değişken atamasının genel hali,

>> değişken = değerdeğ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.

Page 18: Makine Müh. & Jeoloji Müh

MATLAB Ders Notları

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 silinmesineilk değerinin silinmesine, söz konusu değişkenin

bundan sonraki işlemlerde yeni değeriyeni 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

Skaler atamaSkaler atamaX = 3 A = 5-5i B = A / 5

Vektör atama

>>C=[1 3 2]C = 1 3 2

>> C= [1;3;2]C = 1 3 2

Matris atama

>>C=[1 3; 2 1]C = 1 3 2 1

>> C=[1, 3; 2, 1]C = 1 3 2 1

Page 19: Makine Müh. & Jeoloji Müh

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)

Page 20: Makine Müh. & Jeoloji Müh

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

Page 21: Makine Müh. & Jeoloji Müh

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ı

Page 22: Makine Müh. & Jeoloji Müh

BİR DEĞİŞKENE DIŞARIDAN BİR DEĞER ATANMASINI İSTEMEK

“ inputinput " 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…... ….

Page 23: Makine Müh. & Jeoloji Müh

Matematiksel yazılımMatematiksel yazılım Bilgisayarda 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

???

Örnekler:

acb

abbdc

b

a

4

22

23

)**42/()**2(2*)2/3(/ cabbadbcba

afe

d

fcba

3

3).( 32

Ödev:

aa

aac

cdb

bac

abc

ax

2)(

1

43

35 3

42

İşlemini bilgisayar dilinde kodlayınız

Page 24: Makine Müh. & Jeoloji Müh

MATLAB Ders Notları

ÖZEL DEĞERLER VE KALICI DEĞİŞKENLERÖ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

Page 25: Makine Müh. & Jeoloji Müh

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 4

Long e 5.08333333333 14

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

Page 26: Makine Müh. & Jeoloji Müh

Örnek:

Page 27: Makine Müh. & Jeoloji Müh

MATLAB Ders Notları

BİR DEĞİŞKENE BİR DEĞİŞKENE DIŞARIDANDIŞARIDAN BİR DEĞER ATANMASINI İSTEMEK BİR DEĞER ATANMASINI İSTEMEK

“ inputinput " 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

Page 28: Makine Müh. & Jeoloji Müh

MATLAB Ders Notlari

Uygulama Sorusu:

Dışardan girilen 3 sayının ortalamasını bulan bir MATLAB programı yazınız.