2. 2
1. Kaynakça
Sayısal Analiz
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ş
10. http://www.mathworks.com/matlabcentral/
3. Sayısal Analiz
1. Kapsam
o 1. Matlab'ın Genel Yapısı
o 2. Matlab Kullanımında Temel Kurallar
o 3.1. İfadeler
o 3.2.Değişlenler
o 3.3. Sayılar
o 3.4 Operatörler(sayısal işlemciler)
o 3.5. Fonksyonlar
o 3.6. Özel Sabitler
o 4. Vektörler
o 5. Matlab'da Dizi (Matris) İşlemleri
o 5.1. Matrislerde Elemanlar
o 5.2. Genel Matrisler
o 6. Matrisler ve İşlemler
3
4. Matlab; yüksek performanslı bir teknik programlama dilidir.
Matlab açılımı ingilizce “MATrix LABoratory” den gelmektedir.
Başlangıçta MATLAB özellikle mühendislik alanında, iyi grafik özelliklere sahip
daha çok sayısal hesaplamalarda kullanılmak amacı ile geliştirilmiş bir paket
programlama dili olarak ortaya çıkmıştır.
Matlab; matrix esaslı matematik ortamında kullanılmak üzere geliştirilmiş
etkileşimli bir paket programlama dilidir.
İ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.
1. MATLAB
Sayısal Analiz
4
5. 1. MATLAB
MATLAB mühendislik alanında;
Matematik ve hesaplama işleri, algoritma
geliştirme.
Verilerin analizi, incelenmesi ve
görüntülenmesi.
veri çözümleri ve
grafik işlemlerinde
Modelleme, benzetim ve prototipleme.
kullanılabilecek genel amaçlı bir program olmakla
beraber özel amaçlı modüler paketlerede sahiptir.
Fortran ve C dili gibi yüksek seviyeli programlama
dili ile yapılabilen hesaplamaların pek çoğunu
MATLAB ile yapmak mümkündür.
Sayısal Analiz
5
6. 1. MATLAB
1970’lerin sonunda Cleve Moler tarafından yazılan Matlab programının tipik
kullanım alanları:
Matematiksel hesaplama işlemleri
Algoritma geliştirme ve kod yazma
Lineer cebir,istatistik,Fourier
analizi,filtreleme,optimizasyon,sayısal integrasyon vb. konularda
matematik fonksiyonlar
2D ve 3D grafiklerinin çizimi
Modelleme ve simülasyon (benzetim)
Grafiksel arayüz oluşturma
Veri analizi ve kontrolü
Gerçek dünya şartlarında uygulama geliştirme
şeklinde özetlenebilir.
Sayısal Analiz
6
7. oMatlab'ın resmi sitesi: http://www.mathworks.com,
oörnek uygulama ve teknik literatür için:
www.mathworks.com/applications/tech_comp...nicalliterature.html
Ayrıca http://www.mathworks.com/matlabcentral/ : kod paylaşımı
oMatlab’in Türkiye temsilcisi Bursa merkezli Figes firmasıdır.
oWeb adresi: http://www.figes.com.tr
oHaber grubu: matlabturk@yahoogroups.com
1. MATLAB
Sayısal Analiz
7
8. 1. MATLAB
Sayısal Analiz
Matlab matrix tabanlı bir dildir.
Matlabda ilk başlangıçta herşeyi matris olarak düşünmek yararlı olacaktır.
8
9. 1. MATLAB
Sayısal Analiz
oAraç kutuları,özel sorunların çözümü için
MATLABa uyarlanan MATLAB işlevlerinin bir
tür kitaplıklarıdır.
oAraç kutuları, açık ve eklenebilir olup; kendi
algoritmalarını ve ekini görebilirsiniz.
oSimulink :
oBlok diyagram arayüzü ile doğrusal olmayan
simulasyonu ve “canlı” simulasyon
yetenekleriyle öz sayıları, MATLAB’ın
grafiklerini ve dil fonksiyonlarını birleştiren
bir sistemdir.
9
10. oMatlaba başlamanın en iyi yolu matrislerin nasıl ele alınması gerektiğini
öğrenmektir.
oMATLAB da bir matrix, dikdörtgen sayılar dizisidir.
o1x1 matrisscaler sayı,
omx1 matrissütun
m
a
t
r
i
s
io1xn matrissatır
matrisi
omxn m a t r i s m satırlık ,n sütunluk matristir.
1. MATLAB
Sayısal Analiz
10
11. 11
1. Program Nasıl Başlatılır?
Başlat -->Tüm Programlar-->Matlab
veya
Command Window: Matlab
2. Program Nasıl Sonlandırılır?
MATLAB Programlama dilini sonlandırmak
için
>> quit
yada
>> exit
komutları kullanılır.
1. Matlab'ın Genel Yapısı
MATLAB
12. MASA ÜSTÜ KOMUT PENCERESİ
Çalışma Dizini
Çalışma Alanı
Komut
Geçmişi
Komut Satırı
MATLAB programını ilk çalıştırdığınızda karşınıza çıkacak ekran aşağıdaki gibidir.
1. Matlab'ın Genel Yapısı
MATLAB
12
13. Matlabı çalıstırdığımızda, karsımıza ana pencere gelir.
Bu pencerede
File,
Edit,
Debug,
Parallel,
Desktop,
Window ve
Help
ana baslıkları vardır.
Bu baslıklar altından, diğer Windows programlarında alısılagelmis benzer
islemler
1. Matlab'ın Genel Yapısı
MATLAB
13
14. Burada DesktopDesktop Layout ile
Matlabın masaüstü düzenleyebilirsiniz.
Örneğin; Default ile varsayılan görünümünü,
Command Window Only ile sadece klasik komut penceresini
yerlesimini
1. Matlab'ın Genel Yapısı
MATLAB
14
15. Command Window: Bu pencere komut penceresidir
Bu pencereden Matlab ile ilgili komutları klavyeden girer, komutun
islemesini sağlamak için de Enter tusuna basılır.
Komutları girdiğimiz satır >> ile baslar ki bu satıra komut satırı denir
Eg.Yarıçapı 3.6 olan
bir daire alanı
hesaplayalım
1. Matlab'ın Genel Yapısı
MATLAB
15
16. Command History
Bu pencere o ana kadar komut satırından girilen komutları gösterir.
İ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
1. Matlab'ın Genel Yapısı
MATLAB
16
17. 1. Matlab'ın Genel Yapısı
Workspace
oKomut 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.
oÇalışma Alanı MATLAB’da işletilen fonksyonların veya komutların oluşturduğu
değişkenlerin depolandığı bir merkezdir.
oBöylelikle tüm değişkenlere belli bir kaynaktan ulaşılabilmektedir, bu da
programlama sırasında değişkenlerin yerini, belirtmeden, bu değişkenleri kullanma
imkanı sağlamaktadır.
Üstüne sağ tuş yapıp
özellikler eklenebilir
eg.size
MATLAB
17
18. Workspace
Örneğin:
c değis k eni 1x1 boyutunda bir matris yanisayı,
bdeğiskeninin ise 3x2 boyutunda bir matris, yani üç satır ve 2s
ü
t
u
n
d
a
n
olusan bir matris,
nasılsınadlı değisken de 6 karakterden olusan bir karakter zinciri(string)
olduğu görülür.
1. Matlab'ın Genel Yapısı
MATLAB
18
Örnek :
Command Window’a
alttaki değerleri yazıp
inceleyin:
a = 4; b = 5; c = a*b
nasılsın=‘iyidir’
19. Matlab Dizi Editörü
oA değişkenine çift tıklandığında Matlab Dizi Editörü açılır.
oBurda değişkenlerin içerikleri görüntülenir ve değiştirilebilir.
1. Matlab'ın Genel Yapısı
MATLAB
19
20. who : çalışma alanında hangi değişkenler olduğu
whos: bu değişkenlerin yapıları görülmektedir.
what; komutu kullanıcı diskinin halihazır dizininde mevcut M-
dosyaları listesini verir.
1. Matlab'ın Genel Yapısı
MATLAB
20
21. clc: Komut penceresindeki satırları silmeye yarar
clear: Hafızadaki değişkenler silinir
1. Matlab'ın Genel Yapısı
MATLAB
21
22. Matlab Çalışma Dizini penceresindeki “ aşağı ok” basılarak çalışma dizini
seçilebilir.
Current Folder’da çalışmak istenilern directory yönlendirilerek hızlı ulaşım
sağlanır.
1. Matlab'ın Genel Yapısı
MATLAB
22
23. 23
Current Folder: Matlab dosyalarının kaydedildiği, yüklendiği dosyaların bulunduğu
klasörü (dizin), varsayılan klasör olarak belirlemeye yarar.
Aksi belirtilmedikçe bu klasör C:Matlab6p5work gibi bir klasördür.
Yada :
save F:MATLAB_UYGkatsayilar a
katsayilar.mat olarak kaydedilen a matrisininmatlab kapatılıp açıldıktan sonra
herhangi bir zamanda geri çağrılmasıiçin;
load F:MATLAB_UYGkatsayilar komut dizisi kullanılır.
Command Windowa : save
yazılırsa değişkenler
“matlab.mat” veri
dosyasına kaydedilmiş
olur.
Matlabı kapatıp açalım ve
matlab.mat’ı çağıralım.
(File open matl
ab.mat)
.
1. Matlab'ın Genel Yapısı
MATLAB
Örnek:
>> a=[1,2,3; 5,7,9]
a =
1 2 3
5 7 9
24. 24
MATLAB Yardım
1.Komut satırına “help” yazılır. Bu yardım sunulabilecek konuların listesini
sunar.
2. help fonksyon-adı fonksyon için yardım metnini görüntüler.
1. Matlab'ın Genel Yapısı
MATLAB
25. 25
Yeni M-
Dosyası
Dosya Aç Help Desk
Kayıtlı Matlab
Fonksyonu,
kayıt
dosyası(mat),
modeli, figürü
ve GUI
arayüzlü
fonksyonları
açar
Veri dosyalarını
açar
Çalışma
ortamını
kaydeder
Farklı
çalışma
dizinini
Matlaba
tanıtır
Matlab arayüzünü
ayarlar
1. Matlab'ın Genel Yapısı
Matlab MasaÜstü
MATLAB
27. Başlat Düğmesi
Matlab
Uygulamaları
için kısa yol
Araç
kutuları
SimulinkUy
gulaması
Demolar
1. Matlab'ın Genel Yapısı
Start Düğmesi tüm matlab uygulamalarına açılan kısayolları içermektedir.
Veri Sihirbazı
GUI Hazırlayıcı
MATLAB
27
28. 28
Matlaba Veri Alma
Programa dışarıdan resim, film, veri, ses dosyalarını
çevirerek bir değişken olarak atamada kullanılır
matris formatına
F ile I mport
D
a
t
a
Örnek: Exel dosyası alma
Exelde bir matrix oluşturup matlabdan import ile alınız.
1. Matlab'ın Genel Yapısı
MATLAB
29. 'break‘ 'case' 'catch' 'continue' 'else' 'elseif' 'end‘ 'for' 'function' 'global'
'if' 'otherwise‘ 'persistent' 'return' 'switch' 'try' 'while.
1. Matlab'ın Genel Yapısı
Matlab'da Temel Kavramlar:
Tüm programlama dillerinde olduğu gibi (Fortran, C, Pascal, Basic vs..)
Matlab'ın da özel anlam tasıyan bazı kelimeleri vardır ki, bu kelimeler değisken
olarak kullanılamazlar.
Bu tür kelimelere anahtar kelime (keywords) denir.
Bu kelimelerin bir listesini almak için komut satırına;
iskeyword komutunu yazarak elde edebiliriz.
Bu kelimeler;
MATLAB
29
30. Programın dili ve yardım bilgileri tamamen ingilizcedir.
Küçük-büyük harf ayrımı vardır.
Örneğin dscrite, DSCRITE ve Dscrite atamaları farklı şekilde
algılanır
Eğer istenirse “casesen off”komutu ile bu durum sona
erdirilebilir.
» işareti komut prompt’udur.
Komutlar Enter ile yürütülür.
2. Matlab Kullanımında Temel Kurallar:
Matlab
30
35. 35
İFADELER : Matematiksel ve metinsel gösterimler ile işlemler ifadelerle
sağlanır.
Sayılar (Numbers)
Değişkenler (Variables)
İşleçler (Operators)
Fonksiyonlar (Functions)
Matlab’de ifadeler genellikle değişken = ifade veya sadece ifade
formundadır.
Sayısal Analiz
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.
3. MATRİSLER
36. o Birden fazla ifade tek satırda aralarına , ya da ; koyarak
yazılabilir.
o Yazımda boşluk sayısı etkisizdir.
o Sadece ilgili değişken adını yazarak o değişkeni
çağırabilirsiniz.
MATRİSLER
3.1. İFADELER
36
37. o MATLAB’da, herhangi bir tip tanımlaması veya boyut ifadesine gerek yoktur.
oMATLAB, 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
3.2. Değişlenler
Matlab
37
Değisken: değeri değisebilen bellek alanına isaret eden değerlere,
38. MATLAB değişken girişleri için çeşitli kurallara sahiptir.
Her değişken bir harfle başlamak zorundadır.
Program büyük küçük harf duyarlıdır. X ve x farklı değişkenleri ifade eder.
Program 31 basamağa kadar duyarlıdır. Bu basamaktan sonrasını yok sayar.
Dolayısıyla 31 basamaktan uzun değişken isimleri karışıklık yaratabilir.
3.2. Değişlenler
Matlab
38
39. Değiskenlere Değer Atama:
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:
<Değisken adı>=<Atanacak değer>;
3.2. Değişlenler
Matlab
39
40. Örnek 2:
A=6i-7;
B=A /7;
C=[3 4 5 6];
%A: değişkenine skaler bir değer atar
%B değişkenine A değişkeninin 1/7 si atanmıştır
% 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.
3.2. Değişlenler
Matlab
40
41. oMATLAB’da sayılar yaygın olarak kullanılan onluk tabanda ifade edilirler.
o Bunun yanısıra onluk tabanda üstel olarak veya i veya j olarak kompleks sayı
biçimlerinde de ifade edilebilirler.
oÖrnek olarak,
3.3. Sayılar
Matlab da i ve j başka türlü tanımlanmamışsa kompleks i sayısını gösterir.
3e5 sayısıda 3*105 anlamındadır
MATRİSLER
41
42. o Ondalık sayılar Türkçemizdeki 3,5 yerine 3.5 şeklinde gösterilir (0.0001
veya 9.63, 0.65 yerine .65).
o Bilimsel notasyon gösterimi olan e (veya E) harfi 10’nun kuvvetini temsil
eder.
o 2e4=2.104=2000 veya 1.65e-20=1.65.10-20 demektir.
o Kompleks sayılarda imajiner (sanal) kısımlar i veya j ekini alır. i veya j
ile gosterimlerinde bir fark yoktur.
o (1+3i veya 1+3*i veya 1+i*3) / 1+sqrt(3)*j / -5i
o Matlab’de tüm sayılar, yaklaşık 2.10308 ve 2.10-308 arasında değişir.
3.3. Sayılar
MATRİSLER
42
44. bir çok eylem, dört islem ve matematiksel bazı islemler
oMatlab'da
yaptırabiliriz.
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.
oİşlemleri yaptırırken, sayıları reel sayı ya da karmasık sayı olarak alabiliriz.
3.4 Operatörler(sayısal işlemciler):
MATRİSLER
44
45. 45
Matematiksel ifadeleri oluşturmak için operatörler ve önceden tanımlanmış
sembolleri kullanabilirsiniz.
oOperatörler özetle şunlardır:
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.
oÖrneğin 3/2 ile 23 ifadelerinin sonuçları aynı olup 1.5’dir
» 4+8*3–2
ans =
26
3.4 Operatörler(sayısal işlemciler):
MATRİSLER
47. Aritmetiksel İşlemlerde Öncelik Durumu:
oTek bir aritmetiksel durum içinde birden fazla durum bir arada bulunabildiğine göre
hangi işlemin öncelik hakkına sahip olunduğunun bilinmelidir.
oMATLAB’da kullanılan işlemlerde işlemlerin öncelik listesi:
3.4 Operatörler(sayısal işlemciler):
MATRİSLER
47
bazı temel matematiksel fonksiyonların açıklamaları
48. o MATLAB’ da işlemler soldan sağa işlerler.
o İşlemler arası öncelik sırası aşağıdaki gibidir:
1. ^
2. *, /
3. +, -
(Yüksek)
↓
(Düşük)
» 3^(2–5)-6/3*2
ans =
» 3^2–5–6/3*2
ans =
—3.9630 0
3.4 Operatörler(sayısal işlemciler):
MATRİSLER
48
49. 49
3.5. Fonksyonlar
MATRİSLER
o MATLAB’ın çok güçlü ve çok kapsamlı bir fonksiyon yapısı vardır.
oMATLAB’da bazı fonksiyonlar daha önceden yerleştirilmiş bazıları ise sonradan
dışarıdan yerleştirilmiş M-dosyalarından oluşan MATLAB kütüphanelerinde
tanımlanmışlardır.
oBunun yanında özel uygulamalar için kullanıcıların kendi fonksiyonlarını yazarak
kendi kütüphanelerini oluşturması mümkündür.
MATLAB’da mevcut analitik fonksiyonları genel olarak aşağıdaki kategorilere ayırabiliriz.
oTemel matematiksel fonksiyonlar
oÖzel fonksiyonlar
oTemel matrisler ve matris işlemleri
oMatrisleri çarpanlarına ayırma
oVeri analizleri
oPolinomlar
oDiferansiyel denklem çözümleri
oLineer olmayan denklemler ve optimizasyon
oSayısal integral hesaplamaları
oSinyal işleme
53. Örnek:
Komut satırına
a) sin(30)
b) sin(30*pi/180) yazınız sonuçları inceleyiniz.
3.5. Fonksyonlar
MATRİSLER
53
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.
54. 54
oVektörler tek boyutlu sayı dizileridir.
oElemanlarının sıralanma yönlerine göre sütun veya satır vektörü adlarını
alırlar.
ovektörler [ ] köşeli parantezleri ile tanımlanır
ofarklı yolla tanımlanabilirler
4. Vektörler
Matlab
A = [4, 12, -8, 6];
A = [4 12 -8 6];
B = [1; 2; 4; 6];
Satır Vektörü
Sütun Vektörü
>> b=[1
2
4
6
]
55. 4. Vektörler
Matlab
ovektör boyutları büyüdükçe, manuel olarak tanıtım işlemi oldukça zorlaşmaktadır.
oÖzellikle belli bir artıma sahip vektörlerin oluşturulmasında (:) operatörü
kullanılmaktadır.
C = [-1:0.5:150];
Son değer
Başlangıç değeri Artış miktarı
D’ = [30:-10:-30]
Sütun Vektörü
55
56. 4. Vektörler
Vektör indisleri
Matlab
56
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(2) = [ ]
3. >> A(9) = 12 A =[ 2 27 7 0 0 0 0 0 12]
A= [ 4 27 6]
57. 57
» x=[17 8 61 83 56];
Şeklindeki bir matrisin üçüncü elemanına erişmek istenirse
» c=x(3)
c =
61
Eğer bir blok şeklinde veriye erişilmek istenirse;
» x(2:4)
ans =
8 61 83
Her matristeki herhangi bir elman grubuna erişilmek istenirse;
» x([3 1 4])
ans =
61 17 83
5. Matlab'da Dizi (Matris) İşlemleri:
Matlab
58. Dizilerin Değerlerinin Değistirilmesi ve Düzenlenmesi:
Bir diziye düzenli artıs (veya azalıs) kuralıyla değerler atanmak isteniyorsa
bunu;
ilk_değer:artıs:son değer veya ilk_değer:artıs:son değer
biçiminde yapabiliriz.
Ancak artıs 1 ise belirtilmeyebilir.
Örnek:
ortalama adlı bir diziye 0 dan 5 e kadar 0.5 er artısla elde edilen sayı
dizisini atayan;
ortalama=[0:0.5:5];
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??
4. Vektörler
Matlab
58
60. Sayılardan olusan satır ve sütun yapısına matris (dizi) denir.
Örneğin;
d1=[5] 1x1 lik,
d2=[ 2 -7] 1x2 lik,
d3= [1 0 -3 ]
[ 5 3 1 ]
2x3 lük bir dizidir.
Örnek:
x=[1; 7; 18; 5]
Ya da
» x=[ 1
7
18
5 ]
Biçimlerinde girilebilir.
5. Matlab'da Dizi (Matris) İşlemleri:
Matlab
60
61. Ö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.
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.
Matlab
61
62. 8. Matrisler(Dizi)
Matlab
62
Bir matrisi girerken ,
o1. Elemanlar, baştan ve sondan köşeli parantezlerle kapatılır.
o2. Elemanların arasına boşluk veya virgül konulur.
o3. Matris satırlarını ayırmak için de noktalı virgül kullanılır.
okurallarına dikkate alınmalıdır.
Örneğin,
A = [1 2 3; 4 5 6];
A =
1 2 3
4 5 6
şeklinde veriler matrisler biçiminde tanımlanır.
MATLAB daha sonra kullanılmak üzere verileri A matrisinde saklar.
63. 63
Matris elemanları rasgele rakamlardan oluşabileceği gibi MATLAB’ın deyimlerinden
de oluşabilir.
5.1. Matrislerde Elemanlar
Matlab
Örneğin.
a=[-1.3 sqrt(3) (1+2+3)*475]
a= -1.3000 1.7321 4.8000
Küçük matrisleri eleman olarak kullanıp daha büyük matrisler oluşturmak
mümkündür.
Örneğin,
M=[1 3 5 7 8 9] matrisine
aşağıda gösterildiği şekilde bir
satır eklemesi yapabilir.
M=[M;[10 13 15]]
Bu durumda M matrisi
M=[1 3 5
7 8 9
10 13 15]
durumunu alır.
64. İ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=[8 -4 7; 66 -7 8 9; 4 5 134] ise:
M=M(1:2,:) =?
8. 1. Matrislerde Elemanlar
Matlab
64
65. MATLAB’da kullanıcı verileri kendi oluşturacağı matrisler ile tanımlayabileceği gibi
MATLAB’ın kendi özel matrislerinden de istifade edilebilir.
5.2. Genel Matrisler:
Matlab
65
66. Özel Dizi (Matris) Olusturan Bazı Fonksiyonlar:
a) Sıfır Matrisi Olusturan Fonksiyon:
Her elemanı sıfır olan mxn boyutunda bir matrise sıfır matrisi denir.
Böyle bir dizi olusturmak için zeros fonksiyonu kullanılır.
Kullanımı; matris_adı=zeros(m,n); biçimindedir.
Örnek:
3x5 boyutunda s adlı sıfır matrisi için:
s=zeros(3,5);
5.2. Genel Matrisler:
Matlab
66
67. b) 1 lerden Olusan Matris:
Her elemanı 1 olan mxn boyutunda bir matrisi olusturmak için ones
fonksiyonu kullanılır.
Kullanımı; matria_adı=ones(m,n); biçimindedir.
Örnek:
2x3 boyutunda b adlı tüm elemanları 1 olan matrisi olusturalım.
b=ones(2,3);
5.2. Genel Matrisler:
Özel Dizi (Matris) Olusturan Bazı Fonksiyonlar:
Matlab
67
68. c) Birim Matrisi Olusturan Fonksiyon:
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:
a) 3x3 lük birim matris;
b) 4x3 llük diyagonal matris olusturalım.
Çözüm:a) i=eye(3,3); b) d=eye(4,3);
Özel Dizi (Matris) Olusturan Bazı Fonksiyonlar:
5.2. Genel Matrisler:
Matlab
68
69. d) Rastgele Sayılardan Olusan Matris ve Fonksiyonu:
Elemanları 0 ile 1 arasındaki rastgele sayılardan olusan bir matris için
rand fonksiyonu kullanılır.
Kullanımı; matris_adı=rand(m,n); biçimindedir.(m:satır,n:sütun)
Not 1) Üretilen matrisin tüm elemanlarını k gibi bir sayı ile çarparak,
sayıları 0 ile k arasına çekebiliriz.
Not 2) Ondalıklı sayılardan olusmus bir matrisin elemanlarını
yuvarlayıp tam sayı yapmak için round fonksiyonunu kullanırız.
Özel Dizi (Matris) Olusturan Bazı Fonksiyonlar:
5.2. Genel Matrisler:
Matlab
69
70. Örnek:
a)0 ile 1 arasında rastgele sayılardan olusan 10 elemanlı a adında bir satır
matrisi olusturalım.
b) Elemanları 10 ile 50 arasında sayılardan olusan 5x3 tipinde b matrisini
olusturalım.
c)Elemanları 50 ile 300 arasındaki tamsayılardan olusan 3x4 tipinde c matrisini
olusturalım.
2. Genel Matrisler:
Özel Dizi (Matris) Olusturan Bazı Fonksiyonlar:
d) Rastgele Sayılardan Olusan Matris ve Fonksiyonu:
Matlab
70
72. 2. Genel Matrisler:
e) Rastgele Sayılardan Olusan Normal Dağılımlı Matris ve
Fonksiyonu:
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);
Matlab
72
73. Baslangıç ve biis değerleri ve kaç elemandan olusacağı belirlenen diziyi
olusturmak için linspace fonksiyonu kullanılır.
Kullanımı;
dizi_adı=linspace(ilk_değer,son_değer,eleman_sayısı);
biçimindedir.
5.2. Genel Matrisler:
f) Lineer Aralıklı (Aritmetik) Dizi ve Fonksiyonu:
Matlab
73
74. Örnek: 10 ile 30 arasına 9 tane daha sayı koyarak a
adında bir aritmetik dizi olusturalım.
5.2. Genel Matrisler:
f) Lineer Aralıklı (Aritmetik) Dizi ve Fonksiyonu:
Matlab
74
Cevap:
a=linspace(10,30,11);
75. 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.
6. MATRİSLER VE İŞLEMLERİ
Matlab
75
76. 76
virgüle işareti ya da boşluk
Noktalı virgül (;) işareti ile kolonları ve
bırakarak da bir sıradaki elemanları ayırabiliriz
Örnek:
» x=[ 3 4 5 6; 7 8 9 10; 11 12 13 14]
x =
3 4 5 6
7 8 9 10
11 12 13 14
Yukarıdaki 3x4 boyutunda bir matristir. MATLAB programına aşağıdaki
gibi de sunulabilir.
» x=[ 3 4 5 6
7 8 9 10
11 12 13 14]
x =
3 4 5 6
7 8 9 10
11 12 13 14
6. MATRİSLER VE İŞLEMLERİ
Birden fazla satır ve sütuna sahip vektörlere matris denir.
Matlab
77. Matristeki herhangi bir elemana direk ulaşmak için aşağıdaki gösterim
yeterlidir.
» 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
Bu durumda dördüncü satır ilk elemanını biz 1 değerini atadık ve diğer
elemanları kendiliğinden “0” olarak atadı.
77
6. MATRİSLER VE İŞLEMLERİ
Matlab
78. 78
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
-1
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 =
Matlab
79. 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
6. MATRİSLER VE İŞLEMLERİ
Matlab
79
80. mertebedeki elemanları teker teker toplayıp (veya çıkarıp )
İki matrisi toplamak (veya çıkarmak) demek, matrislerin aynı
aynı
mertebeye yazmak demektir.
Bu durumda iki matrisin de aynı mertebeden olması gereği açıktır.
Bir matrisi sabit bir sayıyla ile toplamak (veya çıkarmak) demek,
matrisin elemanlarınının tümünü teker teker o sayıyla toplamak (veya
çıkarmak )demektir.
Bir matrisi sabit bir sayıyla ile çarpmak demek ise, matrisin
elemanlarınının tümünü teker teker o sayıyla çarpmak demektir.
6. MATRİSLER VE İŞLEMLERİ
a) Toplama-Çıkarma Bir Sayı ile Çarpma İşlemi:
Matlab
80
82. Ö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
6. MATRİSLER VE İŞLEMLERİ
Matlab
82
83. 83
Örnek: a=[-1 3 5;2 1 7] ve b=[3 -3 -4;1 1 5] matrisleri
veriliyor.
a) c=a+b toplam matrisini
b) d=a-b matrisini
c)amatrisinin her elemanınının 5 eksiğine karsılık gelen e
matrisini
d) f=2a-3b matrisini bulduran islemleri yazalım.
6. MATRİSLER VE İŞLEMLERİ
Matlab
Çö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
84. 6. MATRİSLER VE İŞLEMLERİ
b) İki Matrisin Çarpımı, Bir Matrisin Kuvvetleri ve
Çarpma İslemi:
İki matrisin çarpım islemi iki biçimde anlasılır.
1) Aynı mertebeden iki matrisin elemanlarını teker teker , çarpıp, aynı mertebeye
yazmak demektir. Bunu .* islemi ile gerçeklestiririz.
2) Matematiksel anlamda iki matrisi çarpmak istediğimizde; birinci matris mxn
türünde ve ikinci matris mutlaka nxp türünde olmalıdır; yani birinci matrisin
sütun sayısı ikinci matrisin satır sayısına eşit olmalıdır.
Bu durumda birinci matrisin i. sütun elemanları ile, ikinci matrisin j. satırındaki
elemanlar karılıklı olarak çarpılır ve sonuçlar toplanır ve bu toplam çarpım
matrisinin (i,j) inci mertebeye yazılır.
Matrisler arası çarpma isleminin sembolü de * dır.
Matlab
84
85. 3)Bir a matrisinin her bir elemanının n. Kuvvetlerinden olusan matrisi
bulmak için a.^n islemi kullanılır.
4)Satır ve sütun sayıları esit bir kare matrisi ardısık olarak n defa
kendisiyle çarparak, a matrisinin n. kuvvetini bulabiliriz.Örneğin a matrisinin
karesi için a*a veya a^2, kübünü buldurmak için a*a*a veya a^3,
dördüncü kuvvetini buldurmak için a*a*a*a veya a^4
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.
6. MATRİSLER VE İŞLEMLERİ
Matlab
85
86. Örnek: a=[-1 3 5;2 1 7] , b=[3 -3 -4;1 1 5] ve c=[1 0;-1 2;3 3]
matrisleri veriliyor.
a)a matrisinin elemanları ile b matrisinin elemanlarını karsılıklı
çarpımlarından olusan c1 matrisi varsa bulalım.
b) a matrisi ile b matrisinin çarpım matrisi olan c2 varsa bulalım.
c)a matrisinin elemanları ile c matrisinin elemanlarını karsılıklı
çarpımlarından olusan c3 matrisi varsa bulalım.
d) a matrisi ile c matrisinin çarpım matrisi olan c4 varsa bulalım.
e)a matrisinin elemanlarının karelerinden olusan matris ile b matrisinin
kosinüslerinden olusan matrisler toplamını bulalım.
f)x=[1 0;0 3] matrisinin i) Karesini ii) Kübünü iii) 10.
kuvvetini bulalım.
6. MATRİSLER VE İŞLEMLERİ
Matlab
86
87. 87
olabilmesi için aynı mertebeli olması gerekir.Halbuki bu matrisler
çarpma
aynı
islemi
mertebeden olmadığından bu iki matris eleman-elemana
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
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ı
Matlab
88. Bir matrisin satırlarını sütun, sütunlarını satır olarak
bulunan matrise, bu matrisin devriği (transpozesi) denir.
Bir matrisin devriğini .' islemi ile bulabiliriz.
yazılmasıyla
Örnek: a=[-1 3 5;2 1 7] nın devriğini buldurup d matrisine atayalım.
Çözüm: d=a.';
6. MATRİSLER VE İŞLEMLERİ
c) Bir Matrisin Devriğini (Transpozesi) Bulma İslemi:
Matlab
88
90. 90
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?
6. MATRİSLER VE İŞLEMLERİ
Matlab
ÇÖZÜM:
Çarpma işlemi: k=a*c
k=
50 68
122 167
91. SORU :
a=[1 2 3; 4 5 6]; b=[7 8 9; 10 11 12];
ise a matrisinin elemanları ile b matrisinin elemanlarını karsılıklı
çarpımlarından olusan x matrisini bulalım?
6. MATRİSLER VE İŞLEMLERİ
Matlab
ÇÖZÜM:
x=a.*b
x =
91
7 16 27
40 55 72
92. d) İki Matrisin Bölümü, Birim Matris ve Bir Matrisin Tersi :
Aynı mertebeden iki matrisin elemanlarını teker teker, bölerek, aynı
mertebeye yazılmasına iki matrisin sol bölmesi denir ve bu ./ islemi ile
yapılır.
a, b ve c aynı mertebeden kare matrisler olmak üzere;
c=a*b ise a matrisine c nin b matrisine bölümü denir.
c bölüm matrisi / islemi ile yapılır.
6. MATRİSLER VE İŞLEMLERİ
Matlab
92
93. eye(3,3)/a veya inv(a) islemini kullanırız.
6. MATRİSLER VE İŞLEMLERİ
d) İki Matrisin Bölümü, Birim Matris ve Bir Matrisin Tersi :
HATIRLATMA:
2x2 lik i2 adlı birim matrisi i2=eye(2,2);
3x lük i3 adlı birim matrisi i2=eye(3,3); islemi ile olusturabiiriz.
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:
Matlab
93
94. Bir Matrisin Determinantı
Determinant, kare matrisleri bir sayıya eşleyen fonksiyondur.
Determinant fonksiyonunun, kare matrisi eşlediği o sayıya matrisin
determinantı denir.
A matrisinin determinantı, detA veya |A| biçiminde gösterilir.
|A|, matrislerde mutlak değer anlamına gelmez. |A| sıfır veya
negatif de olabilir.
det(x)
6. MATRİSLER VE İŞLEMLERİ
Matlab
94
96. Örnek:
Verilen bir x matrisi için:
» x=[ 2 -1; 5 8]
Determinant:
» deter=det(x)
deter =
21
6. MATRİSLER VE İŞLEMLERİ
Matlab
96
97. Örnek Inverse işlemi:
Verilen bir x matrisi için:
» x=[ 2 -1; 5 8]
Detx=det(x)=21 ise;
» y=inv(x)
y =
8/21 1/21
-5/21 2/21
6. MATRİSLER VE İŞLEMLERİ
Matlab
97
98. 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.
a) a matrisinin elemanlarını sırasıyla b matrisinin elemanlarına bölerek elde
edilen matrisi b1 matrisine atayalım.
b) a matrisinin ta ters matrisini bulalım.
c) a ile ta matrisinin çarpımının 3x3 lük birim matris olduğunu gösterelim.
d) a matrisinin b matrisine bölümünü b2 matrisine atayalım.
6. MATRİSLER VE İŞLEMLERİ
Matlab
98