matlab - WordPress.com

advertisement
MATLAB
Temel işlemler, Vektörler, Matrisler
DOÇ. DR. ERSAN KABALCI
İçerik
 Matlab Nedir?
 Matlab’ın Kullanım Alanları
 Matlab Açılış Ekranı
 Matlab Programı İle Temel İşlemlerin Gerçekleştirilmesi
 Vektör İşlemleri
 Matris İşlemleri
 Sorular
MATLAB Nedir?
 MATLAB; (MATrix LABoratory)
 İlk defa 1970’lerin sonunda matematik ve özellikle
de matris esaslı matematik ortamında kullanılmak
üzere geliştirilmiş etkileşimli bir paket
programlama dilidir.
 İlk sürümleri FORTRAN dilinde, son sürümleri ise
C dilinde hazırlanmıştır.
Kullanım Alanları
 Denklem takımlarının çözümü, doğrusal ve doğrusal
olmayan diferansiyel denklemlerinin çözümü, integral
hesabı gibi sayısal hesaplamalar,
 Veri çözümleme işlemleri,
 İstatistiksel hesaplamalar ve çözümlemeler,
 Grafik çizimi ve çözümlemeler,
 Bilgisayar destekli denetim sistemi tasarımı.
Matlab, temel olarak 5 ana kısımdan oluşur:
 Matematiksel fonksiyon kütüphanesi
Hesapsal algoritmalar
 Ortam geliştirme
Komut penceresi, Çalışma alanı vb.
 Matlab dili
Akış şemaları, nesne yön. programlama
 Handle grafik sistemi
2-3 boyutlu grafikler, animasyonlar vb.
 MATLAB-API uygulama programı arabirimi
C ve Fortrana uyarlanabilen prog. yazmayı sağlayan
kütüphane
Matlab Açılış Ekranı (R2013a)
Current Directory
(Geçerli dizin)
Workspace
(Çalışma alanı)
Command Window
(Komut Ekran)
Command History
(Komut Geçmişi)
Bunlar haricinde;
 M-dosyaları oluşturmak için m-file,
 Grafiksel durumları göstermek için figure,
 Graphics user interface GUI,
 Simulink
uygulamaları için model penceresi
mevcuttur. (Bunlar File, New altında görülebilir)
Çalışma sayfası (Workspace):
 Matlab çalışma sayfasında yapılan tüm çalışmalar,
matrissel işlemler üzerine bina edilmiştir.
 Program, değişkenleri matris formatına dönüştürür.
 Herhangi bir sayı, 1x1’lik matris formatında hafızaya
depolanır.
Komut penceresi:
 Komut
penceresinden girilen tüm değişkenler
(m=1.2 k=-2.5 vb) ve özellikleri çalışma alanında
görülür.
>> clc ekranı temizler.
>> help komutu ile help topics sıralanır.
örn.:
help graph2d ile özel yardıma ulaşılabilir.
MATLAB’DA TEMEL
İŞLEMLER
Kullanılan ifadeler:
 Sayılar
 Değişkenler
 Operatörler
 Fonksiyonlar
Örnek:
>> x=4*sqrt(5)
x=
8.9443
x: Değişken
4: Sayı
*: Operatör
sqrt: Fonksiyon
Aritmetik İşlemler:
 Toplama: +
 Çıkarma: -
 Çarpma: *
 Bölme: /
Aritmetik işlemler soldan sağa doğru
yapılmaktadır.
İşlem sırası:
 Aritmetik işlemlerde öncelik sırası daima parantezli
ifadelerindir.
 Parantez yoksa sıra; önce üslü (^) ifadeler, sonra
bölme çarpma, sonra toplama çıkarma işlemi.
Değişken:
 Uzun sayı veya ifadelerin kısa bir isimle ifade
edilmesini sağlar.
 İsimlendirilen değişken veya yapılan işlem sonucu
görüntülenmek istenmiyorsa ifade sonuna (;) ilave
edilir.
Örnek:
>> x=43.75
x=
43.7500
>> x=43.75;
>>
Dizi oluşturma:
 [ ] içine veri girilerek oluşturulur, iki veri arasında
bir boşluk bırakılmalıdır.
Örnek:
>> dizi=[1 3 5 7 9]
dizi =
1 3 5 7 9
>> dizi=[1:2:9]
dizi =
1 3 5 7 9
Dizi oluşturma:
Lineer değişen dizi:
linspace(ilkdeğer, sondeğer, terim sayısı)
Örnek:
>> linspace(1,9,5)
ans =
1 3 5 7 9
Dizi oluşturma:
Logaritmik değişen dizi:
logspace(ilkdeğer, sondeğer, terim sayısı)
Örnek:
>> logspace(1,2,5)
ans =
10.0000 17.7828 31.6228 56.2341 100.0000
Terim sayısının bulunması:
Çok elemanlı dizilerin eleman sayısı length() ile
bulunur.
>> length(ans)
ans =
5
Trigonometrik fonksiyonlar:
 Fonksiyon İşlem










sin() Sinüs
sinh() Hiperbolik sinüs
asin() Arcsinüs
asinh() Hiperbolik arcsinüs
cos() Cosinüs
tan() Tanjant
cot() Kotanjant
sec() Sekant
csc() Kosekant
angle() Karmaşık sayıların faz açısını bulur
Trigonometrik fonksiyonlar, açıları radyan cinsinden kabul eder.
VEKTÖRLER VE MATRİSLER
Vektör
Tek satır veya tek sütundan oluşan matristir.
Dizi şeklinde tanımlanabilirler.
Terimler arasına (,) konularak satır vektörü, (;)
konularak sütün vektörü elde edilebilir.
>> v=[1 2 3 4 5]
v=
1 2 3 4
5
>> v=[1,2,3,4,5]
v=
1 2 3 4 5
Sütun vektörü
>> v=[1;2;3;4;5]
v=
1
2
3
4
5
Matris
Matris tanımlanırken, vektör tanımlama yöntemleri
kullanılabilir.
Örnek:
>> m=[1,2,3;4,5,6;-1,-2,-3]
m=
1 2 3
4 5 6
-1 -2 -3
>> size(m)
ans =
3 3
Matris indisleri
>> m(3,2)=20 %m nin 3. satır 2 sütununa 20 atandı
m=
1 2 3
4 5 6
-1 20 -3
Matris indisleri
>> m(:,3)=-5 %3. sütununun tamamına -5 atandı
m=
1 2 -5
4 5 -5
-1 20 -5
Matris indisleri
>> m(3,1:2)=[70 80] %3 satırın 1 ve 2. sütununa 70 ve
80 atandı
m=
1 2 -5
4 5 -5
70 80 -5
Matrislerin biriktirilmesi
Uygun yapıdaki matrislerin yan yana veya alt alta
konulması ile gerçekleştirilir.
Matrisler alt alta (;) operatörü ile konulur.
Matrisler yan yana (,) operatörü ile konulur.
>> [a;b] komutu ile b matrisi a matrisinin altına
konulur.
Örnek
>> a=[1,2,3;4,5,6]; b=[7,8,9]; c=[10;11];
>> [a;b]
ans =
1
4
7
2
5
8
3
6
9
>> [a,c,c]
ans =
1
4
2
5
3 10 10
6 11 11
Özel matrisler
zeros(x,y) x,y boyutunda tüm elemanları sıfır olan
matris üretir.
ones(x,y) tüm elemanları bir olan matris üretir.
eye(x,y) birim matris üretir.
diag(x:y) köşegene istenen aralıkta sayı yazdırır.
rand(x,y) 0.0 ile 1.0 sayıları arasında gelişi güzel
sayı üretir.
randn(x,y) ortalaması 0 varyansı 1.0 olan normal
dağılımlı gelişigüzel sayı üretir.
Örnek
>> eye(3,4)
ans =
1
0
0
0
1
0
0
0
1
0
0
0
>> diag(2:5,1)
ans =
0
0
0
0
0
2
0
0
0
0
0
3
0
0
0
0
0
4
0
0
0
0
0
5
0
Matrislerde aritmetik işlemler
Toplama çıkarma yapılacak matrisler aynı
boyutlarda olmalı.
Bir sayı ile bir matris aritmetik bir işleme alınabilir.
Örnek
>> m1=[1,2;3,4]; m2=[8,9;10,11];
>> m1+m2
ans =
9 11
13 15
>> m1+20
ans =
21 22
23 24
Çarpma ve üs alma
Birinci matrisin sütun sayısı, ikinci matrisin satır
sayısına eşit olmalıdır.
Sadece kare matrislerin üssü alınabilir.
Örnek
>> m=[1,2,3;4,5,6;7,8,9]; k=[8,9;10,11;12,13];
>> m*k
ans =
64 70
154 169
244 268
>> m^2
ans =
30 36 42
66 81 96
102 126 150
Elemanter çarpma (.*)
İki eşit boyutlu matris eleman elemana çarpılabilir.
>> m1=[1,2;3,4]; m2=[8,9;10,11];
>> m1.*m2
ans =
8 18
30 44
Elemanter üs alma (.^)
m=
1
4
7
2
5
8
3
6
9
>> m.^2
ans =
1 4 9
16 25 36
49 64 81
Bölme
(/) matrisin tüm elemanlarını bir sayıya bölmek için
kullanılır.
(./) veya (.\) operatörleri aynı boyutlardaki iki
matrisi elemanter bölmede kullanılır.
>> m1=[1,2;3,4]; m2=[8,9;10,11];
>> m1./m2
ans =
0.1250 0.2222
0.3000 0.3636
Yuvarlama ve işaret fonksiyonları
round(m): En yakın tam sayıya yuvarlar.
Sign(m): Sayının işaretini bulur. Pozitif sayılar için 1, negatif sayılar için -1,
0 sayısı için sıfır üretir.
>> m1=[1,2;-3,0]
m1 =
1 2
-3 0
>> sign(m1)
ans =
1
-1
1
0
Matris analizi
inv: Kare matrisin tersini hesaplama
det: Kare matrisin determinantını hesaplama
‘: Matrisin transpozunu hesaplama
rank: Matrisin rankını hesaplama (rank() Matrisin
sıfırdan farklı determinanta sahip en büyük kare
matris boyutu)
trace: Kare matrisin soldan sağa doğru köşegendeki
sayıların toplamı
Örnek
>> A=[9 -3 3;-3 9 3;3 3 9];
>> A'
ans =
9 -3 3
-3 9 3
3 3 9
>> det(A)
ans =
432
>> inv(A)
ans =
0.1667 0.0833 -0.0833
0.0833 0.1667 -0.0833
-0.0833 -0.0833 0.1667
>> rank(A)
ans =
3
Lineer denklem sistemlerinin çözümü
‘\’ operatörü ile lineer denklem sistemi çözülebilir.
9I1-3I2+3I3=15
-3I1+9I2+3I3=0
3I1+3I2+9I3=9
Çevre akımları?
>> A=[9 -3 3;-3 9 3;3 3 9];u=[15;0;9];
>> I=A\u
I=
1.7500
0.5000
0.2500
Genel sayısal analiz fonksiyonları
max: Her sütunda en büyük sayıyı bulur, dizi oluşturur.
min: Her sütunda en küçük sayıyı bulur,dizi oluşturur.
mean: Aritmetik ortalamayı hesaplar
median: Geometrik ortalamayı hesaplar
std: Standart sapmayı hesaplar
sum: Tüm sayıları toplar
sort: Sayıları küçükten büyüğe sıralar
diff: Sayıların farkını alır
Kaynaklar
MATLAB ve Genel Uygulamaları, Ahmet Altıntaş
Ders Notları, Muharrem Tümçakır
Ders Notları, Erdal Bekiroğlu
Ders Notları, Aslan İnan
Download