in , ,

MATLAB’a Giriş Ders Notları

MATLAB’a Giriş

Konular:

MATLAB ortamının tanıtımı

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

  1. Geliştirme ortamı
  2. Komut penceresi
  3. Başlatma penceresi (launch pad)
  4. Workspace
  5. History
  6. Current directory

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 System Toolbox gibi bazı toolbox’lar eklenerek geliştirilmiştir.

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.


  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.


  1. 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: Deyimler içerisinde sayısal değerlerin yerini alan ifadelerdir. 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.

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.

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

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

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.

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.

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.

Ö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

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= ‘);

MATEMATİKSEL VE MANTIKSAL OPERATÖRLER

Program dallandıran bir çok yapıda, işlemler, sonucun “doğru” (1) veya “yanlış” (0) olması durumları ile kontrol edilir. MATLAB’ da ‘doğru‘ veya ‘yanlış‘ ifadeleri ile sonuçlar üreten iki çeşit operatör vardır. Bunlar matematiksel ve mantıksal operatörlerdir.

Matematiksel Karşılaştırma Operatörleri

Bu operatörler iki değişkenin değer bakımından karşılaştırmasını yaparlar ve üretilen sonucun doğru (1) veya yanlış (0) durumuna göre sonuçlar üretirler.

Genel kullanımları a1 işlem a2 şeklindedir. Burada a1 ve a2, aritmetik değerler, değişkenler veya karakter dizileri olabilir, “işlem” ise, söz ettiğimiz matematiksel kıyaslama operatörlerinden biri olabilir. Eğer a1 ve a2 arasındaki ilişki operatörün belirttiği şekilde ise sonuç, 1 değerini alır. Eğer operatörün belirttiği durumdan farklı bir durum söz konusu ise sonuç, 0 değerini alır.

Eşitlik durumlarında verilen işaret iki adet eşittir == işaretinden oluşur. Oysa değişken atamalarında kullandığımız eşittir =, bir tanedir. Bu ikisi birbirlerinden farklı operatörlerdir. “==” operatörü, kıyaslama durumlarında kullanılır ve mantıksal bir sonuç üretir. “Eşit ise”, “eşit midir?” şeklindeki durumlarda kullanılır. = işareti ise, bir değişkene bir değer atamada kullanılır, örneğin MATLAB komut penceresinde; 3=5 yazdığımızda; program hata üretir. Oysa 3==5 yazdığımızda bu “ 3, 5’e eşit midir? ” anlamına gelir, kıyaslama yanlıştır ve MATLAB bu durum için “0” cevabını üretir. Yeni başlayanlar için bir karşılaştırma durumunda tek eşittir = işareti kullanmak, sık yapılan bir hatadır.

şeklinde yapılan iki değişken atamasını takiben yapılan x==y karşılaştırmasının sonucu olarak 1 cevabı beklenirken, 0 cevabı alınır. MATLAB, bu iki değeri farklı olarak algılamıştır. Çünkü MATLAB‘da sin (pi) değeri 0’a eşit değildir, sin(pi), yuvarlamadaki farklılıktan ötürü 1.2246e-016 değerine sahiptir ve 0‘a eşit değildir. Yani teorik olarak birbirine eşit iki değer, aslında farklı sayılara tekabül etmektedir.

Sık yapılabilecek diğer bir hata da karşılaştırma operatörlerinin aritmetik operatörlerden daha sonra değerlendirildikleri durumunu ihmal etmektir. Yani parantezlerden yararlanılmadığı durumlarda bile aritmetik işlemler, öncelikle yapılır.

Mantıksal Operatörler

Bu operatörler, bir veya iki mantıksal anlamı olan ve mantıksal bir sonuç üreten operatörlerdir. Üç tane çiftli mantık operatörü vardır. Bunlar; “AND“, “OR” ve “XOR” dur. Diğer bir mantık operatörü tekli yapıya sahip olan “NOT” operatörüdür. Çiftli yapıdaki operatörlerin genel kullanımı a işlem b şeklinde iken tekli bir operatör olan “NOT genel kullanımı işlem a şeklindedir. Burada a ve b değişkenler iken işlem, aşağıdaki mantık operatörlerinden biridir, a ile b‘nin arasındaki ilişki, operatörün belirttiği şekilde ise sonuç 1, eğer değilse sonuç 0 olur.

MATLAB’ de Programlama

M-dosyası

Genel tanıtımı : Bir senaryo dosyası (script file) özel bir görevi yerine getirmek için gerekli MATLAB komutlarının saklandığı bir metin programıdır. Başka  bir ifadeyle; bir hesaplamayı gerçekleştirmek için yazılacak bir çok komutlar dizisi, komut penceresinden tek tek girmek yerine bir dosyada saklanır daha sonra bu dosya çalıştırılarak bu komutlar icra edilir. Bu dosyaların MATLAB’ın çalıştığı birimde “dosya_adı.m” uzantısıyla saklanmaları gerekir.

Senaryo dosyalarının ( M-dosyalarının )  oluşturulması ve yazılması için MATLAB bir metin hazırlayıcısı (text editor) sunmaktadır. Bu senaryo dosyaları Windows’da Notepad gibi herhangi bir metin hazırlayıcısında da yazılabilirler.  MATLAB metin hazırlayıcısı ya komut penceresinin üst kısmında yer alan  “New M-file” düğmesi tıklanarak veya kısaca  “File” menüsünden “New/M-file” ibaresini seçerek etkin hale getirilebilir.

M-dosyalarının Gerekliliği:

  • Değişken sayısı fazla olması durumunda
  • Akış diyagramlarının uygulanmasında
  • Programdaki değişikliklerin kolayca yapılmasında

Örnek: Dışardan girilen dairenin yarıçapına göre alan ve çevre hesaplayan program yazınız?

R = input(‘ Dairenin yarıçapını giriniz = ‘);

Alan=pi*R^2;

Cevre=2*pi*R;

Alan,Cevre

Kontrol Yapıları

if Şartlı deyimi

Bir mantıksal ifadeyi kontrol ederek bunun sonucuna göre mümkün seçeneklerden birini icra edebilen bir komuttur.

Disp:

Ekrana mesaj veya değer yazdırmak için kullanılan komuttur.

Disp(‘yazdırılacak mesaj’);

Disp(değişken adı);

Switch

Şartlı Deyimi

FOR DÖNGÜSÜ

Bir çok uygulamada belirli işlemlerin tekrar tekrar gerçekleştirilmesi gerekir. Programlamada bu işlemler grubunu çok sayıda tekrar etmek imkanı sağlayan yapılara ÇEVRİM, DÖNGÜ veya LOOP denir.

Çevrim, bir tekrarlı işlem yapısıdır.

  • Çevrimdeki işlem sayısını önceden belirleyerek ve bu sayıya ulaşıp ulaşmadığını bir sayaç ile denetleyerek gerçekleştirilen çevrim yapıları
  • Çevrimin sona ermesini bir koşula bağlı olarak kontrol eden çevrim yapıları

for döngüsünün genel yapısı

for  döngü değişkeni = başlangıç : bitiş

komutlar

end

fprintf Fonksiyonu

Genel kullanımı:

fprintf (‘ekrana basılacak açıklama %f \n’, deger)

Burada

  • %f : Değerin reel sayı olduğunu gösterir
  • \n : Bir satır atlatır
  • deger : Ekrana yazılması istenen sayısal değişkenin adı

Diğer yazım biçimleri: 

  • %g : Tamsayı değeri basar
  • %e : Üstel değer basar

While Döngüsü

Önceden belirlenmiş belli bir durum gerçekleşinceye kadar gereken sayıda tekrar edilen ifadeleri içerir.

Genel Kullanımı:

While durum

ifade_1

ifade_2

 

ifade_n

end

Örnek:

a=5

while a<10

a=a+1

end

Break ifadesi

FOR ve WHILE döngülerine ilaveten bir program akışını kontrol edebilmenin diğer bir yolu break ifadesini kullanmaktır. Break ifadesini döngü gövdesi içerisinde kullanmak, döngünün durmasını ve döngüden sonra gelen ilk ifade veya komutun işletilmesini sağlar.

İç İçe FOR Döngüleri

İç İçe While Döngüsü

Uygulamalar

Uygulama : Kenar Uzunlukları dışardan girilen bir ABC üçgenini kenarlarına göre inceleyen programın algoritmasını MATLAB’de kodlayınız

A1: Basla

A2: A,B,C değerlerini gir

A3: A=B ise A4’e git değilse A5’e git

A4: B=C ise A6’ya git değilse A8’e git

A5: A=C ise A8’e git değilse A7’e git

A6: ‘Üçgen Eşkenardır’

A7: B=C ise A10’a git, değilse A9’a git

A8: ‘Üçgen İkizkenardır’

A9: ‘Üçgen Çeşitkenardır’

A10: ‘Üçgen İkizkenardır’

A11: Son

Uygulama: Ax2+Bx+C=0 ikinci derece denklemin köklerini hesaplayan aşağıdaki algoritmayı MATLAB’de programlayınız

MATLAB’de Karakter Tipinde Değişken Girişi:

k=input(‘Açıklama: ‘);

Komutu ile k değişkenine sadece sayısal değerler girebiliriz. Bu k değişkeni bir karakter olduğunda ve bu değişkene komut penceresinde bir karakter değer girmek istediğimizde değeri iki tırnak içinde girmek zorundayız. Bu durumdan kurtulmak için MATLAB’de karakter tipindeki değişkenin okutulması için şu yapı kullanılır:

Degisken_adi=input(‘Açıklama: ‘, ‘s’);

                          ↓

                      Değişkenin karakter tipinde olduğunu gösterir

 

Örnek: Karakter değerler okuyan ve bir noktaya rastlayınca toplam karakter sayısını veren programı MATLAB’de yazınız.

karakter=input(‘Karakteri giriniz: ‘, ‘s’);

ksayi=0;

while karakter ~= ‘ . ‘

karakter=input(‘Karakteri giriniz:’, ‘s’);

ksayi=ksayi+1;

end

fprintf(‘Toplam karakter sayısı=%g’, ksayi)

PROGRAMLAMADA DİZİ KAVRAMI

Bir değişken içerisinde birden çok veri numaralandırılarak tek bir isim altında saklanmasına DİZİ denir. 

Dizi içinde aynı isim altında çok sayıda veri olduğu için bunları birbirinden ayırt etmek için İNDİS adı verilen bir bilgiye ihtiyaç vardır.

Tek boyutlu bir dizinin değerlerinin girilmesi (okutulması)

Aşağıda 1×5 boyutunda (1 satır ve 5 sütun) bir dizinin elemanlarını giren MATLAB programı aşağıda verilmiştir

for i=1:5

fprintf(‘A(%d)=’,i)

A(i)=input(‘ ‘);

end

A

Örnek: N elemanlı bir dizinin N değeri ve elemanları okutulacak (dışardan girilecek) ve bu vektörün normunun karesi (elemanlarının karelerinin toplamı) bulunacaktır

N=input(‘N değerini giriniz=’);

toplam=0;

for i=1:N

fprintf(‘A(%d)=’,i);

A(i)=input(”);

end

for i=1:N

toplam=toplam+A(i)*A(i);

end

fprintf(‘A matrisinin normunun karesi=%f’, toplam)

İKİ BOYUTLU BİR DİZİNİN DEĞERLERİNİN GİRİLMESİ (OKUTULMASI)

Aşağıda 2×3 boyutunda (2 satır ve 3 sütun) bir dizinin elemanlarını giren MATLAB programı aşağıda verilmiştir:

for i=1:2

for j=1:3

fprintf(‘B(%d,%d)=’,i,j)

B(i,j)=input(”);

end

end

B

VEKTÖRLER (DİZİLER) ve MATRİSLER

MATRİSLE, iki boyutlu DİZİLER (VEKTÖRLER) olarak düşünülebilirler:

Böyle dikdörtgen bir tabloya, mxn matrisidir denir. Burada, m sayısına matrisin satır sayısı, n sayısına matrisin sütun sayısı denir. Eğer, m=n ise matris kare matris olarak adlandırılır, ve A matrisi, n. mertebedendir denir.

MATRİSLERLE İŞLEMLER

Matrislerin kendilerine ait bir cebirleri vardır. Özellikle matrislerin aşağıda sıralanan dört işlemleriyle ilgileneceğiz.

  • Bir skalerle çarpım
  • Matris toplama
  • Matris çıkarma
  • Matris çarpımı
  • Matris transpozu

İleri MATRİS işlemleri için MATLAB hazır fonksiyonları kullanılacaktır

Matrislerle Skaler Çarpım

Herhangi bir matris, bir c skaleriyle çapılabilir. Sonuçta, matris cA,

ÖRNEK: Elemanları dışardan girilen 2×2’lik bir Matrisin 2. sütununu 3 ile çarpıp yeni bir Matris elde eden bir MATLAB programı yazınız

A=[1  3; 4  2];

for i=1:2

for j=2:2

A(i,j)=3*A(i,j);

end

end

A

Matrislerde Toplama ve Çıkarma İşlemi

İki matrisin toplanabilmesi veya çıkarabilmesi için boyutlarını yani satır ve sütün sayısını eşit olmalıdır.

Matrislerde Çarpma İşlemi

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 olmak üzere Bu çarpma işlemi sonucunda elde edilecek C matrisinin boyutu mxk olacaktır.

Yazar Atılay - Emir Atakan Taşçıoğlu

Dokuz Eylül Üniversitesi Gemi Makineleri İşletme Mühendisliği

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

DARGEB 2021-Bülten

MARDAŞ DENİZCİLİK GENEL BİLGİLER VE MAAŞLAR