MATLAB NEDİR?
MATLAB®, temel olarak nümerik hesaplama, grafiksel veri gösterimi ve programlamayı içeren teknik ve bilimsel hesaplamalar için yazılmış yüksek performansa sahip bir yazılımdır. Matlab programının tipik kullanım alanları: Matematik and hesaplama işlemleri / Algoritma geliştirme / Modelleme, simülasyon (benzetim) ve öntipleme / Veri analizi ve görsel efektlerle destekli gösterim / Bilimsel ve mühendislik grafikleri / Uygulama Geliştirme şeklinde özetlenebilir.
MATLAB adı, MATrix LABoratory (Matrix Laboratuarı) kelimelerinden gelir. MATLAB, ilk olarak Fortran Linpack ve Eispack projeleriyle geliştirilen ve bu programlara daha etkin ve kolay erişim sağlamak amacıyla 1970’lerin sonlarında yazılmıştır. İlk başlarda bilim adamlarına problemlerin çözümüne matris temelli teknikleri kullanarak yardımcı olmaktaydı. Bugün ise geliştirilen yerleşik kütüphanesi ve uygulama ve programlama özellikleri ile gerek üniversite ortamlarında (başta matematik ve mühendislik olmak üzere tüm bilim dallarında) gerekse sanayi çevresinde yüksek verimli araştırma, geliştirme ve analiz aracı olarak yaygın bir kullanım alanı bulmuştur. Ayrıca işaret işleme, kontrol, fuzzy, sinir ağları, wavelet analiz gibi bir çok alanda ortaya koyduğu Toolbox adı verilen yardımcı alt programlarla da özelleştirilmiş ve kolaylaştırılmış imkanlar sağlamış ve sağlamaya da devam etmektedir.
Web adresi: "http://www.mathworks.com" Email: info@mathworks.com
Matlab, komut temelli bir programdır. Command Window penceresinde » işareti Matlab’in komut prompt’unu gösterir ve bu işaret bulunduğu satır komut satırı olarak adlandırılır. Bu işaretin hemen yanında yanıp sönen I şeklinde ki işaret komut ve metin yazma cursor’u yani imlecidir. Bu işaretin olduğu yerde klavyeden giriş yapılabilir demektir.
İFADELER (EXPRESSIONS)
Matlab diğer programlama dillerinde olduğu gibi bir giriş (input) olarak çeşitli matematiksel ve metinsel ifadeler sağlar. İfadeleri 4 ana madde altında inceleyebiliriz:
-
Sayılar (Numbers)
-
Değişkenler (Variables)
-
İşleçler (Operators)
-
Fonksiyonlar (Functions)
Matlab’de ifadeler genellikle değişken = ifade veya basitce sadece ifade formundadır.
» b=4*5
b =
20
» log(2)
ans =
0.6931
-
Normalde ifadeler, tek bir satırda yer alırlar. Ancak bir kaç ifade aralarına virgül konarak yazılabilir ve işleme konabilir. Virgülden sonraki boşluk sayısında bır sınırlama yoktur. Komut veya değişken bildirimli ifadelerde ; noktalı virgül işaretini de kullanılabilirsiniz.
» x=3.01, y=(23*7)/5, z = 3^6
x =
3.0100
y =
32.2000
z =
729
MATLAB TEMEL YAZIM NOTASYONU (SYNTAX)
Matlab’de herşey bir dizi (array) olarak işleme konur. Bir dizi, skaler, vektör, matris veya metinsel dizge (karakter dizisi) olabilir.
-
1x1 dizisi skaler (scaler) veya metin dizgesi (string) gösterir. a=3 b=-20.56 c=3e-4 d=2+5*i e=’Bir tamsayı giriniz:’ gibi. Metin dizgeleri (text string), ’…’ arasında verilir.
-
nx1 veya 1xn dizisi bir vektör (vector) gösterir. x=[0, 2, 4, 6] ifadesinde x, 1x4 boyutunda bir vektördür. [ ] köşeli parantezler içindeki sayıların arasında virgül (,) veya en az bir veya daha fazla boşluk olmalıdır.
-
nxm veya mxn dizisi bir matris (matrix) gösterir. [ ] köşeli parantezler içindeki sayı grupları arasında noktalı virgül (;) olmalıdır. ; işareti matrisin sütunlarını ayırır. Sayı gruplarında virgül (,) veya en az bir veya daha fazla boşluk olabilir.
MATLAB’DE KULLANILAN ÖZEL DEĞERLER VE SABİTLER Değişken Adı Açıklama
ans Bir işlemin son cevabı (answer) veya bir ifadenin değeri
pi pi sabiti: =3.1415926535897...
i veya j imajiner birim, -1
eps (epsilon yani ) Kayan-nokta bağıl doğruluğu (relative precision), 2e-52
realmin En küçük kayan-nokta (floating-point) sayısı, 2e-1022
realmax En büyük kayan-nokta (floating-point) sayısı, (2-)e1024 yani 2e1024’den çok az küçük
inf Sonsuz (infinity) yani realmax dan daha büyük bir sayı
NaN Sayı değil (Not-a-Number)
KOMUT SATIRINDA KLAVYE KISAYOLLARI
|
Ctrl-P
|
Bir önceki satırı çağırır (Recall previous line)
|
|
Ctrl-N
|
Bir sonraki satırı çağırır (Recall next line)
|
|
Ctrl-B
|
Imleç bir karakter sola hareket eder (Move back one character)
|
|
Ctrl-F
|
Imleç bir karakter sağa hareket eder (Move forward one character)
|
ctrl-
|
Ctrl-R
|
Bir kelime sağa hareket eder (Move right one word)
|
ctrl-
|
Ctrl-L
|
Bir kelime sola hareket eder (Move left one word)
|
home
|
Ctrl-A
|
Satrın basına gider (Move to beginning of line)
|
end
|
Ctrl-E
|
Satrın sonuna gider (Move to end of line)
|
esc
|
Ctrl-U
|
Geçerli satırı iptal eder yani tamamen siler (Clear line)
|
del
|
Ctrl-D
|
Bir karakter sola doğru siler (Delete character at cursor)
|
backspace
|
Ctrl-H
|
Imlecten satırın başına kadar olan kısmı siler (Delete character before cursor)
|
|
Ctrl-K
|
Imlecten satırın sonuna kadar olan kısmı siler (Delete to end of line)
|
Format Komutu: Matlab, değerlerin sayısal formatını format komutu ile kontrol eder. Bu komut sayıların kaç hane yani kaç ondalıkla veya diğer bir deyişle kaç digit gösterileceğini belirler. Matlab’de tüm hesaplamalar, double precision da yapılır.
Komut Açıklama
format Varsayılan format (format short ile aynıdır)
format short 5 rakamlı sabit nokta skala formatı
format long 15 rakamlı sabit nokta skala formatı
format short e 5 rakamlı kayan nokta formatı
format long e 15 rakamlı kayan nokta formatı
format short g 5 rakamlı en uygun sabit veya kayan nokta formatı
format long g 15 rakamlı en uygun sabit veya kayan nokta formatı
format bank Dolar ve sent için sabit format (İki ondalıklı gösterimler için kullanabilirsiniz)
format rat En küçük tamsayı oranı yaklaşımıyla sayıyı ondalıklı olarak gösterir
TRİGONOMETRİK FONKSİYONLAR
|
Trigonometrik
|
Hiperbolik
|
Fonksiyon
Adı
|
Fonksiyon
formatı
|
Ters Fonksiyon formatı
|
Fonksiyon
formatı
|
Ters Fonksiyon formatı
|
sinus
|
sin(x)
|
asin(x)
|
sinh(x)
|
asinh(x)
|
cosinüs
|
cos(x)
|
acos(x)
|
cosh(x)
|
acosh(x)
|
tanjant
|
tan(x)
|
atan(x)*
|
tanh(x)
|
atanh(x)
|
kotanjant
|
cot(x)
|
acot(x)
|
coth(x)
|
acoth(x)
|
sekant
|
sec(x)
|
asec(x)
|
sech(x)
|
asech(x)
|
kosekant
|
csc(x)
|
acsc(x)
|
csch(x)
|
acsch(x)
|
* atan2(y,x), dördüncü bölge değeridir.
Matlab’de trigonometrik fonksiyonlarda derece yerine radian kullanılır. Bu nokta çok onemlidir. Kısaca 2=360o veya =180o derecedir. Örneğin derece cinsinden sin(30)=0.5 tir. Oysa Matlab bu işlemin sonucunu
» sin(30)
ans =
-0.99
şeklinde verir. Genel kullanım derece cinsinden olduğundan ya radian (pi değişkenini kullanarak) cinsinden belirtmeniz ya da /180 ile çarpanız gereklidir. Programlama bölümünde örneğin direkt girilen sayının derece olarak algılanıp değerini veren bir fonksiyonda yazılabilir. Örneğimize devam edersek;
» sin(pi/6)
ans =
0.50
Ancak bu yöntemde yani pi’ye çevirmek (örneğin 6.47 açısı gibi) her zaman bu kadar olmayacağından
» sin(30*pi/180)
ans =
0.50
komutu yani açıyı parentezler içinde kalmak şartıyla pi/180 ile çarpmak daha pratiktir.
Ör: x=45o için (sin4x)-(2cosx)3 ifadesinin değerini bulunuz.
1. yol:
» x = pi/3;
» sin(4*x)-(2*cos(x))^3
ans =
-2.83
|
2.yol:
» x = 45;
» sin(4*x*pi/180)-(2*cos(x*pi/180))^3
ans =
-2.83
|
Fonksiyon
Adı
|
Fonksiyon
formatı
|
10 tabanında logaritma (log10x)
|
log10(x)
|
2 tabanında logaritma (log2x)
|
log2(x)
|
doğal logaritma (lnx)
|
log(x)
|
üstel (ex)
|
exp(x)
|
karekök ( x )
|
sqrt(x)
|
üsalma (xn, n herhangibir sayı)
|
x^n
|
1- Matlab’de matematikten bildiğimiz doğal logaritma gösterimi ln olarak değil doğrudan log olarak gösterilmektedir. Yine bildiğimiz gibi lnx=logex demektir. Genel yazım formatı bir x değeri için lnx, Matlab’de log(x) şeklindedir.
ln1
» log(1)
ans =
0
|
ln10
log(10)
ans =
2.3026
|
ln2
» log(2)
ans =
0.6931
|
Matlab’de e sabit sayısı yani e=2.71828 veya kısaca e=2.71 sayısı e olarak tanımlanmamıştır. Bunun yerine bir sonraki konuda göreceğimiz exp(1) fonksiyonu kullanılabilir. Biliyoruz ki lne=1 dir ve bunu Matlab de sağlayalım:
» exp(1)
ans =
2.7183
2- Matlab’de matematikten bildiğimiz normal logaritma 10 tabanındadır ve bir x değeri için genel yazım formatı log10(x) şeklindedir. Ayrıca Matlab, 2 tabanındaki logaritma içinde hazır bir fonksiyon sağlar. Bir x değeri için genel yazım formatı log2(x) şeklindedir. şeklindedir. Doğal logaritma da olduğu gibi negatif sayıların logaritmaları reel sayı değildir ve sıfır için değeri sonsuzdur. 0 ile 1 arasındaki (0 ve 1 dahil değil) değerleri negatiftir. Şimdi sırasıyla log1, log10, log100 ve log 1000, sonra log2, log5, log3/5 ve sonra da log0 ve log(-4) değerlerini bulalım.
log1
» log10(1)
ans =
0
|
log10
» log10(10)
ans =
1
|
log5
» log10(5)
ans =
0.6990
|
Not: Bilimsel notasyondan bildiğimiz gibi 1.0966e+003=1.0966.103 demektir.
Şimdi de aşağıdaki üstel yazılımlı ifadelerin değerleri bulalım :
312, (1/2)-4, 201/5, 103/5, 5.62.10-5,
» 3^12, (1/2)^(-4), 20^(1/5), 10^(3/5), 5.62*10^(-5)
3- Bu konu başlığı altında çok kullanılan bir diğer fonksiyonumuz karekök alma işlemini gerçekleştiren sqrt fonksiyonudur. Genel yazım formatı bir x değeri için sqrt(x) şeklindedir. sqrt fonksiyonunu kullanarak sırasıyla 2, 23, 144, (3+2) işlemlerini yapalım.
» sqrt(2), sqrt(23)
ans =
1.4142
ans =
4.7958
KARMASIK (KOMPLEKS) SAYI İSLEMLERI
Bilindiği gibi kompleks sayıların tipik genel formatı a + bi , a+bj veya a + ib , a+jb şeklindedir. Matlab dilinde bu notasyon a + bi, a + bj veya a+i*b , a+j*b şeklinde ifade edilir. Bu gösterim şekli aynı zamanda kartezyen gösterim olarak da adlandırılır. Sayılarda ı veya j kullanımı arasında fark yoktur her ikisi de aynı şeyi ifade ederler. Örnek olarak 2-3j karmaşık sayısını ele alalım.
» 2-3j
ans =
2.0000 - 3.0000i
|
» 2-i3
??? Undefined function or variable 'i3'.
|
» 2-i*3
ans =
2.0000 - 3.0000i
|
Temel kompleks sayı işlemleri:
abs Mutlak değer (Absolute value)
angle Faz açısı (Phase angle)
conj Kompleks eşlenik (Complex conjugate)
imag Kompleks imajiner kısım (Complex imaginary part)
real Kompleks reel kısım (Complex real part)
x=3+4j sayısı için özetlersek
Komut
|
Sonuç
|
real(x)
|
3
|
imag(x)
|
4
|
abs(x)
|
(32+42)=5
|
angle(x)
|
tan-1(4/3)=0.9273
|
conj(x)
|
3-j*4
|
! abs (absolute) komutu sadece karmaşık sayı işlemlerinde değil diğer tüm mutlak değer alma x işlemlerinde kullanılabilir. Fonksiyon adı abs olup genel formatı bir x değeri için abs(x) şeklindedir. Ör: » abs(sqrt(3)-1) ans = 0.7321
1) x=2(1+4j)
» x=2*(1+4*i)
x =
2.0000 + 8.0000i
|
2) k=(1.2+2.5i)3
» k=(1.2 + 2.5*i)^3
k =
-20.7720 - 4.8250i
|
3) a=-2-j ve b=3+2 olmak üzere s1) -5a+b s2) a/b
» a=-2-j;
» b=3+sqrt(2);
» s1=-5*a+b
s1 =
8.4142 + 2.0000i
» s2=a/b
s2 =
-0.4531 - 0.2265i
|
YUVARLATMA İŞLEMLERİ
fix : Sıfıra doğru yuvarlatma yapar
floor : - ‘a doğru en yakın tamsayıya yuvarlatma yapar
ceil : + ‘a doğru en yakın tamsayıya yuvarlatma yapar
round : En yakın tamsayıya yuvarlatma yapar
» fix(-5.1)
ans =
-5
|
» floor(-5.1)
ans =
-6
|
» ceil(-5.1)
ans =
-5
|
» round(-5.1)
ans =
-5
|
KALAN BULMA İŞLEMLERİ
Matlab’de bölme işlemi sonucu kalan bulma işlemi iki şekilde yapılır:
mod - Modül (Bölme işleminde işaretli kalan)
rem - Bölme işleminde kalan
rem(x,y), eğer y ~= 0 (y0) ise x - y.*fix(x./y) demektir. rem(x,0) değeri NaN’dır.
mod(x,y), eğer y ~= 0 (y0) ise x - y.*floor(x./y) demektir. mod(x,0) değeri x’dir.
rem fonksiyonu örnekleri:
|
mod fonksiyonu örnekleri:
|
» rem(15,2)
ans =
1
|
» mod(15,2)
ans =
1
|
TEMEL İSTATİKSEL İŞLEMLER
max : Verilerin en büyük değerini bulur
min : Verilerin en küçük değerini bulur
length : Veri sayısını bulur
sum : Verilerin toplamını hesaplar
prod : Verilerin çarpımını hesaplar
median : Verilerin ortanca değeri hesaplar
std : Verilerin standart sapmasını hesaplar
mean : Verilerin ortalama değerini hesaplar yani aritmetik ortalama alır
geomean : Verilerin geometrik ortasını hesaplar
harmmean : Verilerin harmonik ortasını hesaplar
sort : Verilerin azalan sırada sıralar
» d=[0.5 1 0.34 2.5 2.5 1.14 3.0 3.4 5 6.5 4.31 5.5] ;
» max(d)
ans =
6.5000
(En büyük değeri bulur)
|
» min(d)
ans =
0.3400
(En küçük değeri bulur)
|
» length(d)
ans =
12
(Vektörün boyunu yani veri sayısını bulur)
|
» sum(d)
ans =
35.6900
(0.5+1.0+0.34+2.5+ …+4.31+5.5 toplamını bulur)
| |