Professional Documents
Culture Documents
Matlab’a Giriş
Derleme Ders
Notları
1. Octave
http://www.gnu.org/software/octave/download.html
2. Matlab
http://www.mathworks.com/products/matlab/
3. Excel
4. Steven T. Karris, Numerical Analysis Using MATLAB and
Excel, Third Edition, 2007, Orchard Publications
5. MATLAB, The Language of Technical Computing, Getting
Started with MATLAB, Version 5
6. Mehmet Uzunoğlu- Ömer Çağlar Onar, Her Yönü ile Matlab,
2003 Baskı
7. MATLAB PROGRAMLAMAYA GİRİŞ,
http://www.tugrulaktas.com/dersnotlari/Matlap/matlab[2].pdf
8. Ali Yazıcı ders notları, Matlab 7.0, hızlı öğrenme Klavuzu,
Sayısal Yöntemler Derleyen: A.Gün, Denetleyen:
A.Karamancıoğlu, OGU-EE.003, Ağustos 2002, MATLAB’E
GiRİŞ
9. CORS-TR, Ders 2 : MATLAB ile Matris İşlemleri
Eğitim,Seminerleri Serisi : MATLAB’e Giriş
2
10. http://www.mathworks.com/matlabcentral/
Sayısal Analiz
1. Kapsam
¾İlk sürümleri Fortran diliyle hazırlanmış olmakla beraber son ürümleri (2000
yılı itibari ile 5.1) C dilinde yazılmıştır.
4
Sayısal Analiz
1. MATLAB
www.mathworks.com/applications/tech_comp...nicalliterature.html
7
Sayısal Analiz
1. MATLAB
8
Sayısal Analiz
1. MATLAB
9
Sayısal Analiz
1. MATLAB
10
MATLAB
Çalışma Dizini
Çalışma Alanı Komut Satırı
Komut
Geçmişi
12
MATLAB
1. Matlab'ın Genel Yapısı
¾File,
¾Edit,
¾Debug,
¾Parallel,
¾Desktop,
¾Window ve
¾Help
13
MATLAB
1. Matlab'ın Genel Yapısı
¾Burada DesktopÆDesktop Layout ile Matlabın masaüstü yerlesimini
düzenleyebilirsiniz.
¾Örneğin; Default ile varsayılan görünümünü,
¾Command Window Only ile sadece klasik komut penceresini
14
MATLAB
1. Matlab'ın Genel Yapısı
15
MATLAB
1. Matlab'ın Genel Yapısı
Command History
¾İstersek bunların birini fareyle seçer, ya da bir kaçını veya tümünü fare ve
asağı-yukarı yön tusları yardımıyla seçer ve delete tusuna basarak silebiliriz
16
MATLAB
1. Matlab'ın Genel Yapısı
Workspace
penceredir.
imkanı sağlamaktadır.
¾Üstüne sağ tuş yapıp
özellikler eklenebilir
eg.size
17
MATLAB
1. Matlab'ın Genel Yapısı
Workspace
Örnek :
Command Window’a
alttaki değerleri yazıp
inceleyin:
a = 4; b = 5; c = a*b
nasılsın=‘iyidir’
Örneğin:
cÆdeğiskeni 1x1 boyutunda bir matris yani sayı,
bÆdeğiskeninin ise 3x2 boyutunda bir matris, yani üç satır ve 2 sütundan
olusan bir matris,
nasılsınÆadlı değisken de 6 karakterden olusan bir karakter zinciri (string)
olduğu görülür.
18
MATLAB
1. Matlab'ın Genel Yapısı
19
MATLAB
1. Matlab'ın Genel Yapısı
20
MATLAB
1. Matlab'ın Genel Yapısı
21
MATLAB
1. Matlab'ın Genel Yapısı
22
MATLAB
1. Matlab'ın Genel Yapısı
24
MATLAB
1. Matlab'ın Genel Yapısı
Matlab MasaÜstü
Yeni M-
Dosyası
Kayıtlı Matlab
Fonksyonu,
kayıt
dosyası(mat), Veri dosyalarını
modeli, figürü açar
ve GUI
arayüzlü
Çalışma
fonksyonları
ortamını
açar
kaydeder
Matlab arayüzünü
Farklı
ayarlar
çalışma
dizinini
Matlaba 25
tanıtır
MATLAB
1. Matlab'ın Genel Yapısı
Başlat Düğmesi
26
MATLAB
Başlat Düğmesi
1. Matlab'ın Genel Yapısı
Veri Sihirbazı
GUI Hazırlayıcı
Matlab
Uygulamaları Araç
için kısa yol kutuları
SimulinkUy
gulaması
Demolar
27
MATLAB
1. Matlab'ın Genel Yapısı
Matlaba Veri Alma
FileÆImport Data
28
MATLAB
1. Matlab'ın Genel Yapısı
¾'break‘ 'case' 'catch' 'continue' 'else' 'elseif' 'end‘ 'for' 'function' 'global'
'if' 'otherwise‘ 'persistent' 'return' 'switch' 'try' 'while.
29
Matlab
30
MATLAB
2. Matlab Kullanımında Temel Kurallar:
31
MATLAB
2. Matlab Kullanımında Temel Kurallar:
32
Matlab
2. Matlab Kullanımında Temel Kurallar:
33
Matlab
2. Matlab Kullanımında Temel Kurallar:
34
Sayısal Analiz
3. MATRİSLER
x = 4 * sqrt(5) İfade
değişken
sayı işleç fonksiyon
Bir ifade = işareti ile bir değişkene atanmamış ise Matlab otomatik olarak
sonucu, ans (answer) adı verilen özel bir değişkende saklar. 35
MATRİSLER
3.1. İFADELER
36
Matlab
3.2. Değişlenler
o MATLAB’da, herhangi bir tip tanımlaması veya boyut ifadesine gerek yoktur.
o MATLAB, yeni bir değişken ismi ile karşılaştığında, otomatik olarak ans isminde
bir değişken oluşturur ve uygun bir bellek miktarı ayırır.
oEğer değişken zaten varsa, MATLAB gerekli bir bellek ayırdığında içeriği değişir.
Örneğin,
o ogrenci_sayı=51
37
Matlab
3.2. Değişlenler
38
Matlab
3.2. Değişlenler
¾Her hangi bir programlama dilinde olduğu gibi, Matlab’da da bir değiskene
değer verme islemine ”değer atamak” denir.
¾Bir değiskene atanan değer, değistirilmediği sürece aynı kalır.
¾Değer atamanın genel kullanımı asağıdaki biçiminde olur:
39
Matlab
3.2. Değişlenler
Örnek 2:
A=6i-7; %A: değişkenine skaler bir değer atar
B=A /7; %B değişkenine A değişkeninin 1/7 si atanmıştır
C=[3 4 5 6]; % 4 elemanlı bir satır vektörü atanmıştır
NOT:
¾Dizi girişinde herhangi bir satıra ait elemanlar aralarına boşluk veya
virgül “,” konularak ayrılır
¾Dizinin diğer bir satırına başlamak için biten satır sonuna ; konulur.
40
MATRİSLER
3.3. Sayılar
41
MATRİSLER
3.3. Sayılar
Sayı Formatları:
43
MATRİSLER
3.4 Operatörler(sayısal işlemciler):
oBunun için, ya ilgili komutları komut penceresinden teker teker girerek veya
ilgili komutları bir dosyaya yazıp, o dosyayı çağırarak çalıstırabiliriz.
44
MATRİSLER
3.4 Operatörler(sayısal işlemciler):
» 4+8*3–2
ans =
26
oMatrislerle yapılan işlemlerde bölme işlemi için iki farklı sembol kullanılmaktadır.
oBunun yanında eğer sayılar skaler ise iki bölme işleminin sonucu da aynı değeri
gösterecektir.
45
oÖrneğin 3/2 ile 2\3 ifadelerinin sonuçları aynı olup 1.5’dir
MATRİSLER
3.4 Operatörler(sayısal işlemciler):
x=a + b
46
MATRİSLER
3.4 Operatörler(sayısal işlemciler):
47
MATRİSLER
3.4 Operatörler(sayısal işlemciler):
1. ^ (Yüksek)
2. *, / ↓
3. +, - (Düşük)
» 3^(2–5)-6/3*2 » 3^2–5–6/3*2
ans = ans =
—3.9630 0
48
MATRİSLER
3.5. Fonksyonlar
Matematiksel Fonksiyonlar:
Örnek:
>>exp(1)
ans=2.7183
>>fix(3.5)
ans=3
>>ceil(3.5)
ans=4
>>round(3.5)
ans=4
51
Matlab
7. Sabitler, Değiskenler ve Metin Katarları
Örnekler:
1) a=1;
2) a=’İstanbul’
3) a=5;b=7;c=a+b;
4) a=5;b=-3;c=a+2*b;a=a+b;
52
MATRİSLER
3.5. Fonksyonlar
Örnek:
Komut satırına
a) sin(30)
b) sin(30*pi/180) yazınız sonuçları inceleyiniz.
Cevap:
a) -0.9880 sonucu görülür ki bu 30° nin sinüsünde n farklıdır. Çünkü
bu 30° derece değil 30 radyanın sinüsüdür.
b) 0.5000 sonucu görülür ki bu da 30° nin sinüsüd ür. O halde bir
sayının trigonometrik değerini buldurmak için, önce pi ile çarpıp 180
e bölerek açıyı radyan çevirip sonra trigonometrik değerini
hesaplatabiliriz.
53
Matlab
4. Vektörler
C = [-1:0.5:150]; D’ = [30:-10:-30]
55
Matlab
4. Vektörler
Vektör indisleri
Bir vektörün elemanlarına atanılan değer değişkenler editörü veya eleman adresi
vasıtasıyla değiştirilebilir.
Örnek:
A = [4 12 -8 6];
1. A vektörünün 3. elemanını 27 ile değiştiriniz.
2. Benzer şekilde A vektörünün 2. elemanını siliniz.
3. A(9) = 12
Çözüm:
1. A(3) = 27
2. Vektörün elemanına [ ] değeri atandığında eleman silinir. A= [ 4 27 6]
A(2) = [ ]
3. >> A(9) = 12 A =[ 2 27 7 0 0 0 0 0 12]
56
Matlab
5. Matlab'da Dizi (Matris) İşlemleri:
» x=[17 8 61 83 56];
» c=x(3)
c=
61
» x(2:4)
ans =
8 61 83
» x([3 1 4])
ans =
57
61 17 83
Matlab
4. Vektörler
¾Bir diziye düzenli artıs (veya azalıs) kuralıyla değerler atanmak isteniyorsa
bunu;
biçiminde yapabiliriz.
Siz: 1. satır 7 den den 17 ye kadar olan tam sayılar, 2. satırı 99 dan 89 a
kadar azalan tam sayılardan olusan 2 boyutlu m dizisine atayan islemleri
yazınız??
58
Matlab
4. Vektörler
59
Matlab
5. Matlab'da Dizi (Matris) İşlemleri:
Örneğin;
Örnek:
x=[1; 7; 18; 5]
¾d1=[5] 1x1 lik, Ya da
¾d2=[ 2 -7] 1x2 lik, » x=[ 1
7
¾d3= [1 0 -3 ] 18
[531] 5]
Biçimlerinde girilebilir.
2x3 lük bir dizidir.
60
Matlab
5. Matlab'da Dizi (Matris) İşlemleri:
Dizilerin Değerlerinin Değistirilmesi ve Düzenlenmesi:
¾Bir dizinin herhangi bir elemanını belirlemek için dizi adından hemen sonra
parantez içinde elemanın bulunduğu satır ve sütun sayısı yazılmalıdır.
Örnek:
1. d2=[2 -7]
d2 dizisinin -7 elemanını görüntülemek için:
d2(1,2)
2. d3=[1 0 -3;5 3 1]
d3 dizisinin 2. satır, 1. sütununda bulunan 5 in değerinin, -7.5
olması için:
d3(2,1)=-7.5;
Not:1) Bir dizinin bir çok elemanını yeniden değer atamak gerekirse, komut satırından
atama yapmak uzun zaman alabilir.
Bu durumda dizi değiskeninin üzerine çift tıklayarak açılan dizi editörü (array edit)
yardımıyla değisiklikleri daha kolay yapabiliriz.
61
Matlab
8. Matrisler(Dizi)
Örneğin,
A = [1 2 3; 4 5 6];
A=
123
456
Örneğin.
İki nokta üst üste (:) kullanarak büyük matrislerin belli bir kısmını kullanabiliriz
ya da diğer ifade ile bu matrisi küçültebiliriz.
Örneğin, M=M(1:2,:) bildirimi M matrisinin ilk iki satırını alarak M matrisi
olarak saklar.
Örnek:
M=M(1:2,:) =?
64
Matlab
5.2. Genel Matrisler:
65
Matlab
5.2. Genel Matrisler:
Örnek:
3x5 boyutunda s adlı sıfır matrisi için:
s=zeros(3,5);
66
Matlab
5.2. Genel Matrisler:
Özel Dizi (Matris) Olusturan Bazı Fonksiyonlar:
Örnek:
b=ones(2,3);
67
Matlab
5.2.Özel
Genel Matrisler:
Dizi (Matris) Olusturan Bazı Fonksiyonlar:
¾ Esas kösegeni 1 lerden diğer elemanları 0 lardan olusan kare matrise (satır
ve sütun sayısı esit olan ) birim matrisi,
¾ kare olmayan matrise de diyagonal matris denir.
¾ Böyle matrisleri olusturmak için eye fonksiyonu kullanılır.
¾ Kullanımı; matris_adı=eye(m,n); biçimindedir.
Örnek:
69
Matlab
5.2. Genel Matrisler:
Özel Dizi (Matris) Olusturan Bazı Fonksiyonlar:
¾d) Rastgele Sayılardan Olusan Matris ve Fonksiyonu:
Örnek:
matrisi olusturalım.
olusturalım.
olusturalım.
70
Matlab
5.2. Genel Matrisler:
Çözüm:
a) a=rand(1,10);
b) b=10+rand(5,3)*40;
c) c=round(50+rand(3,4)*250);
71
Matlab
5.2. Genel Matrisler:
¾Elemanları rasstgele sayılardan olusan bir normal dağılımlı bir matris için
randn fonksiyonu kullanılır.
¾Kullanımı; matris_adı=randn(m,n); biçimindedir.
¾Örnek: Rastgele sayılardan olusan normal dağılımlı 2x3 lük bir n matrisini
olusturalım.
¾Çözüm: n=randn(2,3);
72
Matlab
5.2. Genel Matrisler:
¾Kullanımı;
¾dizi_adı=linspace(ilk_değer,son_değer,eleman_sayısı);
¾biçimindedir.
73
Matlab
5.2. Genel Matrisler:
Cevap:
a=linspace(10,30,11);
74
Matlab
6. MATRİSLER VE İŞLEMLERİ
¾Elimizdeki grubun her elemanı için bir matematik işlemi yapıp bunu yeni bir
diziye atarken herhangi bir sorun yoktur.
¾Fakat iki farklı grupla işlemler yaparken dikkat etmemiz gereken genel
kurallar vardır.
¾Örneğin toplama ve çıkarma yaparken iki dizinin de büyüklüğünün eşit
olması gerekmektedir.
¾Ayrıca iki farklı dizinin elemanları arasında birebir işlem yapmak için
matematik operatörünün başına nokta(.) koymak gerekir.
¾Bu durumda her bir elemanı diğer dizinin o sıradaki elmanı ile işleme
sokacaktır.
75
Matlab
6. MATRİSLER VE İŞLEMLERİ
» x(2,3)=9
Eğer isteğimiz eriştiğimiz bir elemanı değiştirmek veya yeni bir satır
eklemek ise aşağıdaki gösterim yeterlidir. .
» x(4,1)=1
x=
3 4 5 6
7 8 9 10
11 12 13 14
1 0 0 0
77
Matlab
6. MATRİSLER VE İŞLEMLERİ
İki nokta üst üste (:) kullanılarak belirli aralıkta değişen matrisler
yaratılabilir.
» x=[1:2:7; 3:-1:0; -1:2]
x=
1 3 5 7
3 2 1 0
-1 0 1 2
Bir matrisin herhangi bir bölümünü seçmek için ise aşağıdaki gösterim
kullanılır;
» z=x(2:3, 1:2)
z=
3 2
-1 0
Bu durumda z matris x matrisinin 2 ve 3 no’ lu satırlarından 1 ve 2 no’ lu
sütunlarını almış oluyor.
Herhangi bir satır veya sütunu tamamen silmek istersek o satır ve sütunu
seçip “[]” ifadesine eşitleriz.
» z(:,2)=[ ]
z=
3
78
-1
Matlab
6. MATRİSLER VE İŞLEMLERİ
Matlab, size ve length komutları yardımı ile size matrisinizin boyutlarını söyler.
» a=[ 2 3 4 5 6
7 8 9 10 11];
» s=size(a)
s=
2 5
» b=[ 17 11 0 30 40 50];
» k=length(b)
k=
6
79
Matlab
6. MATRİSLER VE İŞLEMLERİ
80
81
Matlab
6. MATRİSLER VE İŞLEMLERİ
Örnek:
» a=[1 2 3; 4 5 6];
» b=[7 8 9; 10 11 12];
a ve b toplamı:
» sum=a+b
sum =
8 10 12
14 16 18
a’ yı b’ den çıkarmak;
» diff=a-b
diff =
-6 -6 -6
-6 -6 -6
82
Matlab
6. MATRİSLER VE İŞLEMLERİ
Çözüm:
a) c=a+b b) d=a-b c) e=a-5 d) f=a+a-b-b-b veya
f=2*a-3*b 83
Matlab
6. MATRİSLER VE İŞLEMLERİ
84
Matlab
6. MATRİSLER VE İŞLEMLERİ
Not) Bir a matrisinin eleman -elemana çarpma islemine benzer mantıkla, bir matrisin
tüm elemanlarının kareleri, kübleri, sinüsleri, kosinüsleri, logaritmalarından olusan
matris bulunmak istenirse;
bunu sırayla a.*a (veya a.^2), a.*a.*a, (veya a.^3), sin(a), cos(a), e
tabanında logaritması için log(a), 10 tabanında logaritmaları için log10(a) ...
Biçiminde gerçeklestirebiliriz.
85
Matlab
6. MATRİSLER VE İŞLEMLERİ
86
Matlab
6. MATRİSLER VE İŞLEMLERİ
Çözüm:
a) iki matrisin karsılıklı elemanlarının çarpımından olusan matrisin tanımlı
olabilmesi için aynı mertebeli olması gerekir.Bu durumda c1 matrisi tanımlıdır
ve bunu c1=a.*b islemi ile gerçeklestirebiliriz.
b) iki matrisin çarpılabilmesi için birinci matrisin sütun sayısı ikinci matrisin
satır sayısına esit olmalıdır.Halbuki a matrisi 2x3 b matrisi de 2x3 olduğundan
bu iki matris çarpılamaz.
c) İki matrisin karsılıklı elemanlarının çarpımından olusan matrisin tanımlı
olabilmesi için aynı mertebeli olması gerekir.Halbuki bu matrisler aynı
mertebeden olmadığından bu iki matris eleman-elemana çarpma islemi
gerçeklemez.
d) İki matrisin çarpılabilmesi için birinci matrisin sütun sayısı ikinci matrisin
satır sayısına esit olmalıdır.a matrisi 2x3 lük, c matrisi de 3x2 lik olduğundan
bu iki matris çarpılabilir ve c4 çarpım matrisi 2x2 lik bir matris olur.c4 çarpım
matrisini c4=a*c islemi ile buluruz.
e) a.^2+cos(b)
f) i) x^2 ii) x^3 iii) x^10 87
Matlab
6. MATRİSLER VE İŞLEMLERİ
88
Matlab
6. MATRİSLER VE İŞLEMLERİ
Örnek:
Çözüm:
c=b'
c=
7 10
8 11
9 12
89
Matlab
6. MATRİSLER VE İŞLEMLERİ
SORU:
a=[1 2 3; 4 5 6];
c= [7,10;8,11;9,12];
ise a ve c’nin çarpım matrisi kaçtır?
ÇÖZÜM:
SORU :
ÇÖZÜM:
x=a.*b
x=
7 16 27
40 55 72
91
Matlab
6. MATRİSLER VE İŞLEMLERİ
yapılır.
92
Matlab
6. MATRİSLER VE İŞLEMLERİ
¾Aynı mertebeden a ve b kare matrisleri için a ile b nin çarpımı birim matris ise
b matrisi a matrisinin (aynı biçimde a matrisi de b matrisinin) ters matrisidir.
¾Örnek:
¾ 3x3 lük bir a kare matrisinin tersini bulmak için:
93
Matlab
6. MATRİSLER VE İŞLEMLERİ
det(x)
94
Matlab
6. MATRİSLER VE İŞLEMLERİ
KURAL:
95
Matlab
6. MATRİSLER VE İŞLEMLERİ
Örnek:
Verilen bir x matrisi için:
» x=[ 2 -1; 5 8]
Determinant:
» deter=det(x)
deter =
21
96
Matlab
6. MATRİSLER VE İŞLEMLERİ
» x=[ 2 -1; 5 8]
Detx=det(x)=21 ise;
» y=inv(x)
y=
8/21 1/21
-5/21 2/21
97
Matlab
6. MATRİSLER VE İŞLEMLERİ
SORU:
a=[2 -10 0;1 2 4;3 0 1] matrisi ile b=[1 5 4;1 -1 2;0 1 -1] matrisleri veriliyor.
98
Matlab
6. MATRİSLER VE İŞLEMLERİ
Çözüm:
a) b1=a./b
c) a*ta ==eye(3,3)
d) b2=a/b
99