You are on page 1of 36

Matlab Ders Notları

1 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
ĐÇĐNDEKĐLER:

KONULAR Safa No
Matlab'ın Genel Yapısı : …………………………………………………………………………………………… 1
Matlab'da Matematiksel Đşlemler: ………………………………………………………………………………… 1
Matlab'da Temel Kavramlar: ……………………………………………………………………………………….. 2
Anahtar Kelimeler: : …………………………………………………………………………………………………. 2
Değişkenlere Değer Atama: : ……………………………………………………………………………………… 2
Matlab'da Dizi (Matris) Đşlemleri: : ………………………………………………………………………………… 3
Dizilerin Değerlerinin Değiştirilmesi ve Düzenlenmesi: ……………………………………………………… 3
Özel Dizi (Matris) Oluşturan Bazı Fonksiyonlar: …………………………………………………………………….. 3
Matris Đşlemleri: ……………………………………………………………………………………………………… 4
Matrisler Đle Đlgili Bir Uygulama; Lineer Denklem Sistemlerinin Çözümü: ………………………………... 5
Matlab'da Programlama …………………………………………………………………………………………… 5
Matlab'da Kullanılan Bazı Komut ve Deyimler: input, disp, fprintf …………………………………………. 5
Karar Verme ve Dallanma: …………………………………………………………………………………………. 6
Đf şartlı deyimi: ……………………………………………………………………………………………………….. 6
switch end Deyimi: ………………………………………………………………………………………………… 6
Matlab'da Tekrarlı Đşlemler ve Döngüler ………………………………………………………………………… 6
for Döngüsü: …………………………………………………………………………………………………………. 6
while Döngüsü: ………………………………………………………………………………………………………. 7
MATEMATĐKSEL ĐŞLEMLER ……………………………………………………………………………………….. 7
TEMEL MATEMATĐK FONKSĐYONLAR …………………………………………………………………………... 7
Temel (elemantary) fonksiyonlar; elfun ……………………………………………………………………………. 7
Özel (special) fonksiyonlar; specfun ………………………………………………………………………………. 8
Veri (data) fonksiyonları; datafun …………………………………………………………………………………… 8
Metin (karakter dizisi) (string) fonksiyonlardan bazıları: …………………………………………………………. 8
Matlab'da Sembolik Matematik ve Uygulamaları: ……………………………………………………………… 9
Sembolik Matematikte Bazı Komutlar ve Anlamları: ………………………………………………………….. 9
sym ve syms komutları: ……………………………………………………………………………………………. 9
pretty komutu: ………………………………………………………………………………………………………... 9
Harfli Đfadeler ve Sadeleştirilmesi: ………………………………………………………………………………... 9
simplify Komutu ……………………………………………………………………………………………………… 9
expand ve factor komutları: ……………………………………………………………………………………….. 10
subs komutu: ………………………………………………………………………………………………………… 10
DENKLEMLER ve Çözümleri ……………………………………………………………………………………… 10
solve komut: ………………………………………………………………………………………………………….. 10
Bir Bilinmeyenli Denklem Çözümleri: ……………………………………………………………………………. 10
Çok Bilinmeyenli Denklem Çözümleri: …………………………………………………………………………... 11
LĐMĐT ve UYGULAMALARI: ………………………………………………………………………………………… 11
limit Komutu: …………………………………………………………………………………………………………. 11
DĐZĐLER ve SERĐLER ile Đlgili Uygulamalar: …………………………………………………………………….. 12
symsum komutu: …………………………………………………………………………………………………….. 12
TÜREV ve Đlgili Uygulamalar: ……………………………………………………………………………………… 12
diff komutu: …………………………………………………………………………………………………………… 12
ĐNTEGRAL ve Đlgili Uygulamaları: ………………………………………………………………………………… 13
int Komutu: ………………………………………………………………………………………………………….. 13
DĐFERENSĐYEL DENKLEM ve ÇÖZÜMLERĐ: ……………………………………………………………………. 13
dsolve komutu: ………………………………………………………………………………………………………. 14
Matlab'da Karmaşık Sayılarla Đşlemler: ………………………………………………………………………….. 14
Matlab'da Grafik Đşllemleri: ………………………………………………………………………………………… 14
Đki Boyutlu Grafikler (Düzlemde Grafik): ………………………………………………………………………… 14
plot komutu: ………………………………………………………………………………………………………….. 14
2 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni
Matlab Ders Notları
loglog, semilogx, semilogy komutları: …………………………………………………………………………... 16
hold Fonksiyonu ve Kullanımı: ……………………………………………………………………………………. 16
plotyy Fonksiyonu: ………………………………………………………………………………………………….. 17
polar Fonksiyonu: …………………………………………………………………………………………………… 17
Üç Boyutlu Grafikler (Uzayda Grafik): …………………………………………………………………………… 17
plot3 Fonksiyonu: …………………………………………………………………………………………………… 18
Yüzey Grafikleri: ……………………………………………………………………………………………………... 18
Đki Boyutlu Düzlemin Koordinatlarını Tanımlayan Matris ve meshgrid Fonksiyonu ve Yüzey Grafiği: 18
peaks Fonksiyonu Đle Kare Matris Oluşturma: …………………………………………………………………. 19
Bazı Özel Garfik Fonksiyonları: …………………………………………………………………………………… 21
Ezplot Fonksiyonu: ………………………………………………………………………………………………….. 21
Ezplot3 Fonksiyonu: ………………………………………………………………………………………………… 22
cylinder Fonksiyonu: ……………………………………………………………………………………………….. 23
sphere Fonksiyonu: ………………………………………………………………………………………………… 23
eval Fonksiyonu : ……………………………………………………………………………………………………. 23
Grafik Nesneleri ve Grafiksel Arabirim Đle Programalama: ………………………………………………….. 24
Bazı Grafik Đşleme Fonksiyonları: ………………………………………………………………………………… 24
Bir Nesnenin Özelliklerini Elde Etme: get ……………………………………………………………………….. 24
Bir Nesnenin Özelliklerini Değiştirme: set ………………………………………………………………………. 24
Bir Nesneyi Silmek: delete …………………………………………………………………………………………. 24
Grafik Nesneleri ve Özellikleri: ……………………………………………………………………………………. 25
root Nesnesi ………………………………………………………………………………………………………….. 25
figure Nesnesi ve Özellikleri: ……………………………………………………………………………………… 25
uicontrol Nesnesi ……………………………………………………………………………………………………. 25
uimenu Nesnesi ……………………………………………………………………………………………………… 26
axes Nesnesi …………………………………………………………………………………………………………. 26
image Nesnesi ………………………………………………………………………………………………………... 28
line Nesnesi …………………………………………………………………………………………………………… 29
rectangle Nesnesi ……………………………………………………………………………………………………. 30
patch (yama) Nesnesi ……………………………………………………………………………………………….. 30
surface Nesnesi ……………………………………………………………………………………………………… 30
Derleme Nedir ve Matlab Dosyaları Nasıl Derlenir? …………………………………………………………… 32

3 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
MATLAB Command Window: Adından da anlaşılacağı gibi bu
Matlab, MATrix LABoratuary kelimelerinden türetilmiş, pencere komut penceresi olup Matlabın en önemli
daha çok matematiksel işlemler yaptırmaya yönelik penceresidir.Bu pencereden Matlab ile ilgili komutları
tasarlanmış bir bilgisayar programıdır. klavyeden girer, komutun işlemesini sağlamak için de
Enter tuşuna basarız.Komutları girdiğimiz satır >> ile
Matlab'ın Genel Yapısı : başlar ki bu satıra komut satırı denir.Tabii dir ki komut
Matlabı çalıştırdığımızda, karşımıza ana pencere satırına, Matlab için anlamlı komutlar yazmalıyız.
gelir.Bu pencerede File, Edit, View, Web, Window ve Örneğin naber yazıp enter tuuna basarsak ???
Help ana başlıkları vardır.Bu başlıklar altından, diğer Undefined function or variable 'naber'. gibi bir karşılık
Windows programlarında alışılagelmiş benzer işlemler alırız.Bu da naber adlı ne bir fonksiyon ne de bir
değişkenin tanımlanmamış olduğu anlamına gelir.
Yine komut satırına naber='Đyidir' yazıp enter tuşuna
basarsak; ekranda;
naber =

Đyidir görünür.
Örneğin a=3 (enter), b=-7 (enter) işlemlerini yapıp a*b
(enter) yaptığımızda ekranda;
ans =

-21 görülür.
Örneğin; komut satırına clc yazıp enter tuşuna
basarsak, komut penceresine yazılan komutların tümü
yapılabilir.Örneğin; File ile klasik dosyalama işlemleri, silinir ve kürsör (imleç) pencerenin en üst ve sol
Edit ile çalışılan dosyadaki düzenleme işlemleri, View ile köşesine konumlanır.
görünüm ayarlamaları, Web ile, ilgili Đnternet bağlantıları,
Window ile, Matlab dışında açılan pencerelerin, Command History: Bu pencere o ana kadar komut
uygulamaların ve figürlerin kapatılmasını, Help ile de satırından girilen komutları gösterir.Đstersek bunların
program ya da işlemler ile ilgili yardım almayı sağlar. birini fareyle seçer, ya da bir kaçını veya tümünü fare
Ortalama bir bilgisayar kullanıcısı, yukarıda sayılan ve aşağı-yukarı yön tuşları yardımıyla seçer ve delete
bölümlerin, kabaca ne anlama geldiğini bilir.Ancak View tuşuna basarak silebiliriz
(Görünüm) ile ilgili bilinmesi gereken birkaç maddeyi
açıklamakta fayda var.Bu bölüm ve alt seçeneklerinin Workspace:
görünümü yandaki gibidir.Burada Desktop Layout ile Komut satırından ya
Matlabın masaüstü yerleşimini da çalıştırılan bir
düzenleyebilirsiniz.Örneğin; Default ile varsayılan dosya ya da
görünümünü, Command Window Only ile sadece fonksiyon ile
klasik komut penceresini, Five Panel ile çok kullanışlı ve hafızada oluşturulan
çok amaçlı olan 5 pencereli görünümünü değişkenlerin
seçebiliriz.Genellikle Five Panel görünümünde çalışmak adlarının, tiplerinin
daha uygundur.Bu görünüm seçildiğinde karşımıza, ve özelliklerinin
adından da anlaşılacağı gibi Matlab 5 pencereden görüntülendiği
izlenebilir ve çalışılabilir.Bu pencereler ve kısaca yapılan penceredir.Bu alana
işlemler şunlardır: çalışma alanı denir.

Launch Pad: Matlab kısayollarının bulunduğu Örneğin bu pencerenin görüntüsü yandaki gibiyse; a
penceredir.Bu pencereden Matlab uygulamalarına, değişkeninin 1x1 boyutunda bir matris yani sayı, c
simulink penceresine, araç kutularına ve blok setlerine değişkeninin ise 2x3 boyutunda bir matris, yani iki satır
ulaşılabilir.Örneğin Matlab ile ilgili yapılabilecek olan ve 3 sütundan oluşan bir matris, naber adlı değişken de
işlemler hakkında bilgi sahibi olmak için bu pencereden 6 karakterden oluşan bir karakter zinciri (string) olduğu
yararlanabiliriz.Örneğin Matlab ile ilgili yapılabilenleri, görülür.
demo olarak izlemek istersek; MATLAB-Demos
sekmesine tıklamalıyız.Karşımıza Desktop Environment, Current Directory: Matlab dosyalarının kaydedildiği,
Matrices, Numerics, Graphics, Language ... gibi alt yüklendiği dosyaların bulunduğu klasörü (dizin),
bölümler çıkar.Örneğin Grafik ile ilgili bilgilenmek ve bazı varsayılan klasör olarak belirlemeye yarar..Aksi
grafiklerin demolarını görmek istersek Graphics belirtilmedikçe bu klasör C:\Matlab6p5\work gibi bir
bölümünü tıklamalıyız.Bu bölümü (veya yanındaki + klasördür.
işaretini) tıkladığımızda, ... 2-D Plots, 3-D Plots, ... gibi
bölümler görünür.Örneğin 2-D Plots tıklanırsa iki boyutlu Matlab'da Matematiksel Đşlemler:
grafiklerle ilgili, 3-D Plots tıklanırsa üçboyutlu grafiklerle Matlab'da bir çok eylem, dört ilşem ve matematiksel bazı
ilgili demoları görebilir ve inceleyebiliriz. işlemler yaptırabiliriz.Bunun için, ya ilgili komutları komut
penceresinden teker teker girerek veya ilgili komutları bir
dosyaya yazıp, o dosyayı çağırarak

1 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
çalıştırabiliriz.Đşlemleri yaptırırken, sayıları reel sayı ya Tüm programlama dillerinde olduğu gibi, program içinde
da karmaşık sayı olarak alabiliriz.Bunu aşağıdaki değeri değişmeyen değerlere sabit, değeri değişebilen
örneklerde inceleyelim: bellek alanına işaret eden değerlere değişken, değeri
karakterlerden oluşan değerlere de metin katarı (string)
1) Komut satırına a) 2+3 b) 24-3*(4-2) c) 12-12/6*8 denir.Matlab'da değişkenler büyük küçük harfe
d) 2^3 duyarlıdır.Örneğin a değişkeni ile A değişkeni farklıdır.
e) (2-3i)*(4+i) f) sin(30) g) sin(30*pi/180) yazıp enter
tuşuna bastığımızda ne olur?
Çözüm:
a) 2 ile 3 ün toplamı 5 görülür. Değişkenlere Değer Atama:
b) Önce parantez içindeki işlem yapılır (2), sonra 3 ile 2 Her hangi bir programlama dilinde olduğu gibi,
çarpılır (6), son olarak ta 24 ten 6 çıkarılarak 18 soncu Matlab’da da bir değişkene değer verme işlemine
elde edilir. ”değer atamak” denir.Bir değişkene atanan değer,
c) 12 6 ya bölünür (2), 8 ile çarpılır (16), 12 den 16 değiştirilmediği sürece aynı kalır.
çıkarılarak -4 sonucu bulunur. Değer atamanın genel kullanımı aşağıdaki biçiminde
d) 2 nin 3 üncü kuvveti alınarak 8 elde edilir. olur:
e) 2-3i karmaşık sayısı ile 4+i karmaşık sayısının
çarpımı olan 11.0000 -10.0000i sonucu görülür. <Değişken adı>=<Atanacak değer>;
f) -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 Örnekler:
sinüsüdür.
g) 0.5000 sonucu görülür ki bu da 30° nin sinüsüd ür.O 1) a=1; işlemi ile a adlı sayısal değişkene 1 sayısını
halde bir sayının trigonometrik değerini buldurmak için, atamış oluruz.
önce pi ile çarpıp 180 e bölerek açıyı radyan çevirip
sonra trigonometrik değerini hesaplatabiliriz. 2) a=’Đzmir’ işlemi ile a adlı string değişkenine Đzmir
stringini atamış oluruz.
O halde örnekte görüldüğü gibi Matlab'da;
matematiksel işlemleri, komut satırından girip enter 3) a=5;b=7;c=a+b; işlemleri sonucunda a değişkenine
tuşuna basarak sonuçlarını görebiliriz.Đşlemlerde 5, b değişkenine 7 ve c değişkenine a ve b
kullanılan semboller, bazı temel matematiksel değişkenlerinin değerleri toplamı olan 12 sayısını
fonksiyonlar ve anlamları yandaki tabloda görülmektedir. atamış oluruz.

2) Komut satırına a=5 (enter) b=-3 (enter) c=a+3*b 4) Aşağıdaki atamalar sonucunda değişkenlerin son
(enter) yazdığımızda ekranda sırasıyla a, b ve c durumlarının ne olacağını bulalım.
değişkenlerinin değerleri nelerdir? a:=5;b:=-3;c:=a+2*b;a:=a+b;
C: 5 -3 ve -4
Çözüm:
3) Hafızadaki değişkenlerin a) sadece adlarını b) her bir
değişkenin tipini ve kapladığı alanı görüntülemek için a b c Açıklama
hangi komutlar kullanılır?    
C: a)who b) whos 5 -3 -1 5+2.(-3)=5-6=-1
2 -3 -1 5+(-3)=2
4) hafızadaki a) a değişkeninin b) a, b, z değikenlerinin
c) tüm değişkenlerin değerlerini silmek için hangi Özel Sabitler: Matlab'da önceden tanımlanmış bazı
komutlar kullanılır? sabitlerdir.Bunlar aağıdaki tabloda gösterilmiştir.
C: a) clear a b) clear a b z c) clear
Özel Anlamı Değeri
5) Yarıçapı 5 birim olan dairenin alanını buldurmak için Sabit
hangi girişleri yapmalıyız? eps Sıfıra çok yakın bir sayı 2.2204e-016
C: pi*5^2 veya pi*25 (epsilon)
realmin Tanımlanabilen en küçük 2.2251e-308
Matlab'da Temel Kavramlar: reel sayı
Anahtar Kelimeler: Tüm programlama dillerinde olduğu realmax Tanımlanabilen en büyük 1.7977e+308
gibi (Fortran, C, Pascal, Basic vs..) Matlab'ın da özel reel sayı
anlam taşıyan bazı kelimeleri vardır ki, bu kelimeler pi pi sayısı 3.1416
değişken olarak kullanılamazlar.Bu tür kelimelere i, j Karmaşık sayıların sanal 0 + 1.0000i
anahtar kelime (keywords) denir.Bu kelimeler; 'break' birimi
'case' 'catch' 'continue' 'else' 'elseif' 'end' inf Sonsuz Inf
'for' 'function' 'global' 'if' 'otherwise' computer Bilgisayarın tipi PCWIN
'persistent' 'return' 'switch' 'try' 'while' dir.
version Matlab'ın versiyonu 6.5.0.180913a
Bu kelimelerin bir listesini almak için komut satırına;
(R13)
iskeyword komutunu yazarak elde edebiliriz.
Sabitler, Değişkenler ve Metin Katarları:

2 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
Matlab'da Dizi (Matris) Đşlemleri:
Sayılardan oluşan satır ve sütun yapısına matris (dizi) Örnek:
denir. 2x3 boyutunda b adlı tüm elemanları 1 olan matrisi oluşturalım.
Örneğin;
Çözüm: b=ones(2,3);
d1=[5] 1x1 lik, d2=[ 2 -7] 1x2 lik,
d3= [1 0 -3 ]
c) Birim Matrisi Oluşturan Fonksiyon:
[ 5 3 1 ] 2x3 lük bir dizidir.Matlab da bu dizileri; Esas köşegeni 1 lerden diğer elemanları 0 lardan oluşan
Komut satırında; d1=[5] veya d1=5 ile; matrisie kare matrise (satır ve sütun sayısı eşit olan ) birim
d2=[2 -7] veya d2=[2,-7] ile; matrisi, kare olmayan matrise de diyagonal matris
d3=[1 0 -3;5 3 1] veya d3=[1,0,-3;5,3,1] veya denir.Böyle matrisleri oluşturmak için eye fonksiyonu kullanılır.
d3=[1 0 -3 Kullanımı; matris_adı=eye(m,n); biçimindedir.
5 3 1] ataması ile oluşturabilirz
Dizilerin Değerlerinin Değiştirilmesi ve Örnek:
Düzenlenmesi: a) 3x3 lük birim matris;
Bir dizinin herhangi bir elemanını belirlemek için dizi b) 4x3 llük diyagonal matris oluşturalım.
Çözüm:a) i=eye(3,); b) d=eye(4,3);
adından hemen sonra parantez içinde elemanın
bulunduğu satır ve sütun sayısı yazılmalıdır. d) Rastgele Sayılardan Oluşan Matris ve Fonksiyonu:
Elemanları 0 ile 1 arasındaki rastgele sayılardan oluşan bir
Örnek: matris için rand fonksiyonu kullanılır.
a) Yukarıda tanımlanan d2 dizisinin -7 elemanını Kullanımı; matris_adı=rand(m,n); biçimindedir.
görüntülemek için ne yapılmalıdır? Not 1) Üretilen matrisin tüm elemanlarını k gibi bir sayı
b) Yukarıda tanımlanan d3 dizisinin 2. satır, 1. ile çarparak, sayıları 0 ile k arasına çekebiliriz.
sütununda bulunan 5 in değerinin, -7.5 olması için ne Not 2) Ondalıklı sayılardan oluşmuş bir matrisin
yapılmalıdır? elemanlarını yuvarlayıp tam sayı yapmak için round
Çözüm: a)d2(1,2) b) d3(2,1)=-7.5; fonksiyonunu kullanırız.

Not:1) Bir dizinin bir çok elemanını yeniden değer Örnek:


atamak gerekirse, komut satırından atama yapmak uzun a) 0 ile 1 arasında rastgele sayılardan oluşan 10
zaman alabilir.Bu durumda dizi değişkeninin üzerine çift elemanlı a adında bir satır matrisi (dizisi, vektörü)
tıklayarak açılan dizi editörü (array edit) yardımıyla oluşturalım.
değişiklikleri daha kolay yapabiliriz. b) Elemanları 10 ile 50 arasında sayılardan oluşan 5x3
tipinde b matrisini oluşturalım.
2) Bir diziye düzenli artış (veya azalış) kuralıyla değerler c) Elemanları 50 ile 300 arasındaki tamsayılardan
atanmak isteniyorsa bunu; oluşan 3x4 tipinde c matrisini oluşturalım.
ilk_değer:artış:son değer veya ilk_değer:artış:son değer
biçiminde yapabiliriz.Ancak artış 1 ise belirtilmeyebilir. Çözüm:
a) a=rand(1,10); b) b=10+rand(5,3)*40;
Örnek: c) c=round(50+rand(3,4)*250);
a) puan adlı bir boutlu diziye 1 den 100 e kadar sayıları
atayan;;
e) Rastgele Sayılardan Oluşan Normal Dağılımlı Matris ve
b) ortalama adlı bir diziye 0 dan 5 e kadar 0.5 er artışla elde
Fonksiyonu:
edilen sayı dizisini atayan;
Elemanları rasstgele sayılardan oluşan bir normal dağılımlı
c) 1. satır 7 den den 17 ye kadar olan tam sayılar, 2. satırı 99
bir matris için randn fonksiyonu kullanılır.
dan 89 a kadar azalan tam sayılardan oluşan 2 boyutlu m
Kullanımı; matris_adı=randn(m,n); biçimindedir.
dizisine atayan işlemleri yazınız.

Çözüm: Örnek: Rastgele sayılardan oluşan normal dağılımlı 2x3


a) puan=[1:1:100]; veya puan=1:1:100; veya puan=1:100; lük bir n matrisini oluşturalım.
b) ortalama=[0:0.5:5];
c) m=[7:17;99:-1:89]; Çözüm: n=randn(2,3);
Özel Dizi (Matris) Oluşturan Bazı Fonksiyonlar: f) Lineer Aralıklı (Aritmetik) Dizi ve Fonksiyonu:
a) Sıfır Matrisi Oluşturan Fonksiyon: Başlangıç ve biiş değerleri ve kaç elemandan oluşacağı
Her elemanı sıfır olan mxn boyutunda bir matrise sıfır matrisi belirlenen diziyi oluşturmak için linspace fonksiyonu
denir.Böyle bir dizi oluşturmak için zeros fonksiyonu kullanılır. kullanılır.
Kullanımı; matris_adı=zeros(m,n); biçimindedir. Kullanımı;
dizi_adı=linspace(ilk_değer,son_değer,eleman_sayısı);
Örnek: biçimindedir.
3x5 boyutunda s adlı sıfır matrisi oluşturalım.
Örnek: 10 ile 30 arasına 9 tane daha sayı koyarak a
Çözüm: s=zeros(3,5);
adında bir aritmetik dizi oluşturalım.
b) 1 lerden Oluşan Matris:
Her elemanı 1 olan mxn boyutunda bir matrisi oluşturmak için Çözüm: 10 ve 30 (ilk ve son terimler) diziye dahil
ones fonksiyonu kullanılır. olacağından terim sayısı 11 dir.O halde komut;
Kullanımı; matria_adı=ones(m,n); biçimindedir. a=linspace(10,30,11);

3 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
kübleri, sinüsleri, kosinüsleri, logaritmalarından ...
Matris Đşlemleri: oluşan matris bulunmak istenirse; bunu sırayla a.*a
Matlab'da sayılardan oluşan matrislerle ilgili bazı işlemler (veya a.^2), a.*a.*a, (veya a.^3), sin(a), cos(a), e
yaptırmak mümkündür.Örneğin 1 den 100 e kadar olan tabanında logaritması için log(a), 10 tabanında
sayıları 1x100 lük bir a matrisine, kareleri dizisini de logaritmaları için log10(a) ... biçiminde
1x100 lük bir b matrisine atamak daha sonra da karılıklı gerçekleştirebiliriz.
elemanları toplamını da bir c matrisine atamak
isteyebiliriz.Veya 2x3 lük iki matrisi toplaya bilir, Örnek: a=[-1 3 5;2 1 7] , b=[3 -3 -4;1 1 5] ve
çıkarabilir ya da birincinin 3 katına ikincinin -3 katını ilave c=[1 0;-1 2;3 3] matrisleri veriliyor.
edebilir ve sonuç matrisinin tüm elemanlarının 7 a) a matrisinin elemanları ile b matrisinin elemanlarını
fazlasını buldurmak isteyebiliriz.Veya 2x3 lük bir a karşılıklı çarpımlarından oluşan c1 matrisi varsa bulalım.
matrisi ile 3x4 lük bir b matrisinin çarpımını c matrisine b) a matrisi ile b matrisinin çarpım matrisi olan c2 varsa
atamak isteyebiliriz.Đşte bu ve bunun gibi işlemlere bulalım.
matris işlemleri denir.Şimdi bu işlemlerin bazılarını c) a matrisinin elemanları ile c matrisinin elemanlarını
görelim. karşılıklı çarpımlarından oluşan c3 matrisi varsa bulalım.
a) Toplama-Çıkarma Bir Sayı ile Çarpma Đşlemi: d) a matrisi ile c matrisinin çarpım matrisi olan c4 varsa
Đki matrisi toplamak (veya çıkarmak) demek, matrislerin bulalım.
aynı mertebedeki elemanları teker teker toplayıp (veya e) a matrisinin elemanlarının karelerinden oluşan matris
çıkarıp ) aynı mertebeye yazmak demektir.Bu durumda ile b matrisinin kosinüslerinden oluşan matrisler
iki matrisin de aynı mertebeden olması gereği açıktır.Bir toplamını bulalım.
matrisi sabit bir sayıyla ile toplamak (veya çıkarmak) f) x=[1 0;0 3] matrisinin i) Karesini ii) Kübünü iii) 10.
demek, matrisin elemanlarınının tümünü teker teker o kuvvetini bulalım.
sayıyla toplamak (veya çıkarmak )demektir.Bir matrisi
sabit bir sayıyla ile çarpmak demek ise, matrisin Çözüm:
elemanlarınının tümünü teker teker o sayıyla çarpmak a) Đki matrisin karşılıklı elemanlarının çarpımından
demektir. oluşan matrisin tanımlı olabilmesi için aynı mertebeli
olması gerekir.Bu durumda c1 matrisi tanımlıdır ve bunu
Örnek: a=[-1 3 5;2 1 7] ve b=[3 -3 -4;1 1 5] matrisleri c1=a.*b işlemi ile gerçekleştirebiliriz.
veriliyor. b) Đki matrisin çarpılabilmesi için birinci matrisin sütun
a) c=a+b toplam matrisini b) d=a-b matrisini c) a sayısı ikinci matrisin satır sayısına eşit olmalıdır.Halbuki
matrisinin her elemanınının 5 eksiğine karşılık gelen e a matrisi 2x3 b matrisi de 2x3 olduğundan bu iki matris
matrisini d) f=2a-3b matrisini bulduran işlemleri yazalım. çarpılamaz.
c) Đki matrisin karşılıklı elemanlarının çarpımından
Çözüm: oluşan matrisin tanımlı olabilmesi için aynı mertebeli
a) c=a+b b) d=a-b c) e=a-5 d) f=a+a-b-b-b veya olması gerekir.Halbuki bu matrisler aynı mertebeden
f=2*a-3*b olmadığından bu iki matris eleman-elemana çarpma
b) Đki Matrisin Çarpımı, Bir Matrisin Kuvvetleri ve işlemi gerçeklemez.
Çarpma Đşlemi: d) Đki matrisin çarpılabilmesi için birinci matrisin sütun
Đki matrisin çarpım işlemi iki biçimde anlaşılır. sayısı ikinci matrisin satır sayısına eşit olmalıdır.a matrisi
1) Aynı mertebeden iki matrisin elemanlarını teker teker , 2x3 lük, c matrisi de 3x2 lik olduğundan bu iki matris
çarpıp, aynı mertebeye yazmak demektir.Bunu .* işlemi çarpılabilir ve c4 çarpım matrisi 2x2 lik bir matris olur.c4
ile gerçekleştiririz. çarpım matrisini c4=a*c işlemi ile buluruz.
2) Matematiksel anlamda iki matrisi çarpmak e) a.^2+cos(b)
istediğimizde; birinci matris mxn türünde ve ikinci matris f) i) x^2 ii) x^3 iii) x^10
mutlaka nxp türünde olmalıdır; yani birinci matrisin sütun
sayısı ikinci matrisin satır sayısına eit olmalıdır.Bu c) Bir Matrisin Devriğini (Transpozesi) Bulma Đşlemi:
durumda birinci matrisin i. sütun elemanları ile, ikinci Bir matrisin satırlarını sütun, sütunlarını satır olarak
matrisin j. satırındaki elemanlar karılıklı olarak çarpılır ve yazılmasıyla bulunan matrise, bu matrisin devriği
sonuçlar toplanır ve bu toplam çarpım matrisinin (i,j) inci (transpozesi) denir.Bir matrisin devriğini .' işlemi ile
mertebeye yazılır.Matrisler arası çarpma işleminin bulabiliriz.
sembolü de * dır.
3) Bir a matrisinin her bir elemanının n. kuvvetlerinden Örnek: Bir önceki örnekteki a matrisinin devriğini
oluşan matrisi bulmak için a.^n işlemi kullanılır. buldurup d matrisine atayalım.
4) Satır ve sütun sayıları eşit bir kare matrisi ardışık
olarak n defa kendisiyle çarparak, a matrisinin n. Çözüm: d=a.';
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) Đki Matrisin Bölümü, Birim Matris ve Bir Matrisin
dördüncü kuvvetini buldurmak için a*a*a*a veya a^4 Tersi :
işlemiyle buldurabilirz.Ancak 2005 nci kuvvetini Aynı mertebeden iki matrisin elemanlarını teker teker ,
buldurmak için a^2005 yazmak yeterlidir. bölerek, aynı mertebeye yazılmasına iki matrisin sol
bölmesi denir ve bu ./ işlemi ile yapılır.
Not) Bir a matrisinin eleman -elemana çarpma işlemine
benzer mantıkla, bir matrisin tüm elemanlarının kareleri, a, b ve c aynı mertebeden kare matrisler olmak üzere;

4 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
c=a*b ise a matrisine c nin b matrisine bölümü denir. program yazarak benzer işlemlerimizi
c bölüm matrisi / işlemi ile yapılır. yaptırabiliriz.Bunun için Matlab'da kullanılan komut ve
deyimleri örneklerle inceleyelim.
Esas köşegeni 1 sayılarından diğer elemanları 0 lardan
oluşan kare matrise birim matris denir. 1) x değişkenine 5 atayarak x in 2 katının 3 eksiğini
Örneğin 1x1 lik birim matris [1], bulduralım.
2x2 lik birim matris [1 0;0 1], Ç: x=5 (enter) 2*x-3 (enter)
3x3 lük birim matris [1 0 0;0 1 0;0 0 1],
4x4 lük birim matris [1 0 0 0;0 1 0 0; 0 0 1 0;0 0 0 1] dir. 2) Girilen bir x değerini için, karesinin 3 katından 5
Birim matris oluşturmak için; eye fonksiyonunu eksiğini hesaplatan bir program yazalım.
kullanırız. Ç: Bunun için klavyeden girilen değeri x gibi bir değikene
atamalıyız.Bunun için input komutundan yararlanırız.
Örneğin; Kullanımı değişken=input('açıklayıcı ifade');
2x2 lik i2 adlı birim matrisi i2=eye(2,2); biçimindedir.
3x lük i3 adlı birim matrisi i2=eye(3,3); işlemi ile x=input('sayıyı gir!); (enter)
oluşturabiiriz. 3*x^2-5 (enter)
Aynı mertebeden a ve b kare matrisleri için a ile b nin
çarpımı birim matris ise b matrisi a matrisinin (aynı Not:Her ne kadar Matlab'da bu şekilde işlem
biçimde a matrisi de b matrisinin) ters matrisidir. yaptırabilirsek de; daha uzun işlemler yaptırmak
istediğimizde, komutları tekrar tekrar yazmak hem uzun
Örneğin 3x3 lük bir a kare matrisinin tersini bulmak için zaman alır, hem de hata durumunda düzeltmesi zor
eye(3,3)/a veya inv(a) işlemini kullanırız. olur.Onun için program için gerekli komutları yazdıktan
sonra bunları bir dosyaya kaydedip sonra gerektiğinde
bu dosyayı çalıştırabiliriz.Bu amaçla yazılan Matlab
Örnek: dosyalarına m dosyaları denir ve bunların uzantısı m
a=[2 -10 0;1 2 4;3 0 1] matrisi ile b=[1 5 4;1 -1 2;0 1 -1] dir.Böyle bir dosya yazmak için; File - New - M-File
matrisleri veriliyor. sekmesi tıklanırsa; yeni bir m dosyası ekranı gelir.Bu
a) a matrisinin elemanlarını sırasıyla b matrisinin dosyaya Matlab komutları yazılır ve File-Save
elemanlarına bölerek elde edilen matrisi b1 matrisine sekmesinden, dosyaya bir ad verilerek kayıt ortamına
atayalım. kaydedilir.Diske kaydedilen bir m dosyasını çalıştırmak
b) a matrisinin ta ters matrisini bulalım. için, komut satırından ismi girilerek çalıştırılır.
c) a ile ta matrisinin çarpımının 3x3 lük birim matris
olduğunu gösterelim. 3) Bu açıklamalar sonucunda yukarıdaki probleme
d) a matrisinin b matrisine bölümünü b2 matrisine uyan, yani girilen bir sayının karesinin 3 katının 5
atayalım. eksiğini bulup ekrana yazdıran bir m dosyası yazalım.
Ç:File-New-M-File sekmesi tıklanır, gelen yeni m
Çözüm: dosyası sayfasına sırasıyla aşağıdaki komutlar yazılır.
a) b1=a./b b) ta=eye(3,3)/a veya ta=inv(a)
c) a*ta ==eye(3,3) d) b2=a/b x=input('sayıyı gir');
3*x^2-5
Matrisler Đle Đlgili Bir Uygulama:
Lineer Denklem Sistemlerinin Çözümü: Matlab'da Kullanılan Bazı Komut ve Deyimler:
Matris ile ilgili işlemlerin bir çok uygulama sahası Değişkenlere Değer Atama: input
vardır.Bunlardan biri de lineer denklem sistemlerinin Amaç: Matlab'da bir değişkene bir değer atamak.
çözümüdür.Bunun için önce katsayılar matrisi elde edilir, Kullanımı:
bu matris a olsun.Denklem sistemindeki eitliklerin sağ değişken=input('Açıklama' ) veya
atrafındaki sabit sayılardan oluşan matris b olsun. değişken=input('Açıklama','s' )
Bilinmiyenlerden oluşan matris x olmak üzere denklem Değiken sayısal değişkense ilk yazılan ifade; karakter
sistemi ax=b matris eşitliği biçimine getirilmiş olur. dizisi değişkeni (string) ise ikinci ifade kullanılır.
Buradaki x bilinmiyenler matrisini bulmak için, a nın tersi
ile b matrisini çarparız yani inv(a)*b işlemini yaparız. Değişken Değerlerini Ekrana Yazdırma: fprintf ve
disp
Örnek: Amaç: Değişkenlerin değerlerini ekrana yazdırmak.
2x-3y+z= 15 Kullanımı:
x-z = -3 fprintf('Açıklama <biçim ifadesi>',değişken)
x+y+z = 2 denklem sistemini çözelim. disp(değişken)

Çözüm: Not: "Biçim ifadesi" yerine, değişken string (karakter


a=[2 -3 1;1 0 -1;1 1 1 ]; b=[15;-3;2]; x=inv(a)*b zinciri) ise %s değişken reel sayı (kayan noktalı) ise %f ,
üstel biçimde gösterilecekse %e sembolü kullanılır.
Matlab'da Programlama Ayrıca değişkenin değeri yazdırıldıktan sonra kaç satır
Her hangi bir bilgisayar dilinde program yaparak, atlatılacaksa okadar \n ifadesi yazılır.
istediğimiz bazı işlemleri yaptırabiliriz.Matlab'da da bir

5 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
Örnek: delta=b*b-4*a*c;
Klavyeden bir kişinin adı, soyadı ve yaşı girilerek; temiz if delta>0
ekrana ilgili kişinin kaç yaşında olduğunu yazdıran bir x1=(-b-delta^0.5)/(2*a);x2=(-b+delta^0.5)/(2*a);
program yazınız. fprintf('Đki reel kök; x1 = %f x2 = %f ',x1,x2);
Çözüm: elseif delta==0
ad=input('Adınız :','s'); fprintf('Tek kök var; x1 = x2= %f ',-b/(2*a));
soyad=input('Soyadınız :','s'); else
yas=input('Yaşınız :'); fprintf('Kökler sanal ');
clc; end;
fprintf('Siz %s %s %d yaşındasınız.',ad,soyad,yas);
2) switch end Deyimi:
Karar Verme ve Dallanma: Genel Kullanımı aşağıdaki gibidir:
Bazen bir programda, belirli bir şartın gerçekleşmesi
durumunda olması gereken işlemleri yaptırabilmek için switch anahtar-ifade
karar verme deyimleri kullanılır.Matlab'da kullanılan case durum-1
karar verme deyimlerinden biri if deyimi, diğeri de case (işlemler-1)
deyimidir.. case durum-2
(işlemler-2)
1) Đf şartlı deyimi: ...
Genel Kullanımı aşağıdaki gibidir: case durum-n
Đf durum_1 (işlemler-n)
(ifadeler_1) otherwise
elseif durum_2 (diğer işlemler)
(ifadeler_2) end
elseif durum_3
(ifadeler_3) Örnek:Klavyeden girilen 1 ile 5 arasında girilen bir tam
... sayının yazı ile kaç girildiğini ekrana yazdıran, istenen
else aralığın dışında bir sayı girilmesi durumunda 'Lütfen 1
(ifadeler_n) ile 5 arasında bir tam sayı girin' uyarısını yapan bir
end program yazalım.

Örnek: Çözüm:
0-100 aralığında girilen puanı 5 üzerinden nota çeviren s=input('Sayınızı girin :');
bir programı if deyimi kullanarak yazalım. switch s
case 1;fprintf('Bir...' );
Çözüm: case 2 ;fprintf('Đki...' );
puan=input('Puanı girin :'); case 3 ;fprintf('Üç...' );
if puan<45 fprintf('Değeri : %d',1 ); case 4 ;fprintf('Dört...' );
elseif puan<55 fprintf('Değeri : %d',2 ); case 5 ;fprintf('Beş...' );
elseif puan<70 fprintf('Değeri : %d',3 ); otherwise fprintf('Lütfen 1 ile 5 arasında bir tam sayı
elseif puan<85 fprintf('Değeri : %d',4 ); girin'); end;
else fprintf('Değeri : %d',5 );end;
Örnek:
Klavyeden girilen sayının negatif, pozitif ya da sıfır
olduğunu ekrana yazan bir program yazınız.
Matlab'da Tekrarlı Đşlemler ve Döngüler
Çözüm: Belirli bir işlem birden çok tekrar ediyorsa bunu döngü
sayi=input('Sayıyı giriniz :') deyimleri ile gerçekleştirebiliriz.Bunlar for ve while
if sayi<0 öngüleridir.
fprintf('sayınız negatif.');
elseif sayi>0 for Döngüsü:
fprintf('sayınız pozitif.'); Amaç: Bir başlangıç değerinden, son değere kadar artış
else miktarı kadar arlıklarda işlemleri tekrarlamaya yarar.
fprintf('sayınız sıfır.');end;
Kullanımı:
Örnek: for değişken=başlangıç_değeri:artış:son_değer
a, b c katsayıları girilen ikinci derece ax²+bx+c=0 (işlemler)
denkleminin reel köklerini bulup ekrana yazdıran bir end
program yazınız.
Not: Artış değeri 1 ise yazılmasa da olur.
Çözüm:
clc; Örnek: Temiz ekrana 20 defa alt alta Đzmir Fen Lisesi
a=input('a = ');b=input('b = ');c=input('c = '); yazdıran bir program yazınız.

6 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
fprintf('Đlk %d terimin toplamı %f dir.',n-1,t);
Çözüm:
clc; c)
for i=1:20 clc;t=0;n=1;
fprintf('Đzmir Fen Lisesi \n');end; x=input('x değerini giriniz : ');
while t<=x
Örnek: 1 den 1000 e kadar olan sayıların toplamını t=t+1/n;n=n+1;end;
buldurup sonucu ekrana yazdıran bir program yazınız. fprintf('Đlk %d terimin toplamı %f dir.',n-1,t);

Çözüm: Örnek:
toplam=0; Klavyeden girilen negatif sayıların toplamını ve kaç
for i=1:1000 tane olduğunu, pozitif sayıların toplamını ve kaç tane
toplam=toplam+i;end; olduğunu bulan sıfır girildiğinde programı sona erdirerek
fprintf('Toplam = %d ',toplam); sonuçları temiz ekranda yazdıran bir program yazınız.
Çözüm:
Örnek: Girilen bir sayıdan, istenen bir sayıya kadar olan clc;x=1;nt=0;pt=0;nsay=0;psay=0;
sayıların toplamını bulduran bir program yazınız. while x~=0
x=input('Sayıyı gir (bitirmek için 0) :');
Çözüm: if x<0 nt=nt+x;nsay=nsay+1;
toplam=0; elseif x>0 pt=pt+x;psay=psay+1;end;end;
ilk=input('Kaçtan itibaren :'); fprintf('%d tane negatif sayının toplamı %f ',nsay,nt);
son=input('Kaça kadar :'); fprintf('%d tane pozitif sayının toplamı %f
for i=ilk:son dir.',psay,pt);
toplam=toplam+i;end;
fprintf('Toplam = %d ',toplam); MATEMATĐKSEL ĐŞLEMLER
Matlab'daki matematiksel işlemler ve anlamları aşağıda
Örnek: 9²+13²+17²+...+2005² toplamını bulduran bir verilmiştir.
program yazınız.
Đşlem Anlamı
Çözüm: veya
toplam=0; fonksiyon
for i=9:4:2005 + Toplama sembolü
toplam=toplam+i*i;end; - Çıkarma sembolü
fprintf('Toplam = %d ',toplam); * Çarpma sembolü
/ Bölme sembolü
while Döngüsü: ^ Üs alma sembolü
Amaç: Belirli bir durum gerçekleştikçe istenen işlemleri
tekrarlamaya yarar. Örnek:
Komut satırına 12+32/(4-2)^3*5 yazıp enter tuşuna
Kullanımı: bastığımızda; Matlab önce parentez içini yapar (yani
while durum 4-2=2) sonra 2 nin 3. kuvveti alınır 8 bulunur, 32 8 e
(işlemler) bölünür (4), bu da 5 ile çarpılır (20), 20 ile 12 toplanarak
end; 32 elde edilir.
Örnek: t=1+1/2+1/3+...+1/n toplamı gözönüne alınıyor. TEMEL MATEMATĐK FONKSĐYONLAR
a) Baştan ilk 2005 terim toplamını bulduran bir programı Matlab'da bazı matematiksel işlemler yaptırmak
while döngüsü kullanarak bulunuz. istediğimizde, matematiksel fonksiyonları kullanırız.
b) t toplamınının 5 i geçtiği ilk n terim sayısını ve Matlab'da matematiksel fonksiyonlar;
toplamı bulduran bir program yazınız. a) Temel (elemantary) fonksiyonlar; elfun
c) t toplamınının, girilen bir x sayısını geçtiği ilk n terim b) Özel (special) fonksiyonlar; specfun
sayısını ve toplamı bulduran bir program yazınız. c) Veri (data) fonksiyonları; datafun
d) Metin (karakter dizisi) (string) fonksiyonlar; strfun
Çözüm: e) Dosya giriş-çıkış (input-output) fonksiyonları iofun
a) f) Tarih-zaman (time) fonksiyonları; timefun araç
clc;t=0;n=1; kutusundadır.Bir araç kutsundaki fonksiyonları ve
while n<=2005 anlamlarını görmek için komut satırına;
t=t+1/n;n=n+1;end; help araç_kutusu biçiminde yazarız.
fprintf('Đlk %d terimin toplamı %f dir.',n-1,t); Örneğin; temel fonksiyonlar ve anlamlarını
görüntülemek için; help elfun, metin fonksiyonlarını ve
b) anlamlarını görüntülemek için help strfun yazılır.
clc;t=0;n=1; Bunların bazılarını görelim:
while t<=5
t=t+1/n;n=n+1;end; a) Temel (elemantary) fonksiyonlar; elfun
7 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni
Matlab Ders Notları
bulur.
Varolan tanımlı fonksiyonları görmek için komut satırına min(a) a dizisinin en küçük elemanını
help elfun yazarız.Bunlardan bazıları ve anlamları bulur.
aşağıda verilmiştir. mean(a) a dizisinin ortalamasını bulur.
median(a) a dizisinin orta terimini bulur.
Đşlem Anlamı std(a) a dizisinin standart sapmasını
veya bulur.
fonksiyon var(a) a dizisinin varyansını bulur.
+ Toplama sembolü sort(a) a dizisini artan olarak sıralar
- Çıkarma sembolü sortrows(a) a matrisinin satırlarını artan olarak
* Çarpma sembolü sıralar
/ Bölme sembolü sum(a) a dizisinin elemanlarını toplar
^ Üs alma sembolü prod(a) a dizisinin elemanlarını çarpar
sqrt(x) x in karekökü
sin(x) Radyan cinsinden x in sinüsü d) Metin (karakter dizisi) (string) fonksiyonlardan
cos(x) Radyan cinsinden x in cosinüsü bazıları:
tan(x) Radyan cinsinden x in tanjantı
cot(x) Radyan cinsinden x in cotanjantı
acos(x) arccosx Đşlem veya Anlamı
asin(x) arcsinx fonksiyon
atan(x) arctanx char(a) sayısal a dizisnini, karakter
acot(x) arccotx dizisine dönüştürür
x
exp(x) e double(a) karakterlerden oluşan a dizisini,
log(x) ln(x) sayı dizisine dönüştürür
log10(x) Logx eval(a) a metnini Matlab ifadesi olarak
abs(x) x (x in mutlak değeri) tanımlar
sqrt(x) x findstr(a,b) A ve b metinlerinden kısa olanını
uzun olanı içinde arayarak
fix(x) x in yukarıya yuvarlanmışı
metninin başlangıç değerini bulur
ceil(x) x in aşağıya yuvarlanmışı
strfind (a,b) a metni içinde b metninin
floor(x) x in tamdeğeri, başlangıç değerini bulur
sign(x) x in işareti, sgn(x) upper(a) a stringinin (metninin) harflerininin
round(x) x e en yakın tamsayıya yuvarlar. tümünü büyük harf yapar.
mod(x,y) x in y modundaki değeri lower(a) a stringinin (metninin) harflerininin
rem(x,y) x in y ye bölümünden kalan tümünü küçük harf yapar.
num2str Sayılardan oluşan değeri stringe
b) Özel (special) fonksiyonlar; specfun (metne) dönüştürür.
Bunlardan bazıları ve anlamları aşağıda verilmiştir. st2num Rakamlardan oluşan stringi sayıya
dönüştürür.
Đşlem veya Anlamı
fonksiyon Örnek:
cross(a,b) a ile b vektörünün vektörel çarpımı 1. a='Đzmir';findstr(a,'mi') komutu sonucu ekranda 3
dot(a,b) a ile b vektörünün skaler çarpımı sayısı görülür.
factor(n) n sayısının çarpanlarını bulur.
Đsprime(n) n sayısının asal olup olmadığını 2. Benzer biçimde a='Đzmir';strfind(a,'mi') komutu
denetler, asal ise 1 değilse 0 sonucu ekranda 3 sayısı görülür.
değerini döndürür.
primes(n) n sayısına kadar olan asal sayıları 3. findstr('izmir fen lisesi','fen') komutu sonucu
listeler ekranda 7 sayısı görülür.
gcd(a,b) a ile b sayılarının OBEB ini bulur
lcm(a,b) a ile b sayılarının OKEK ini bulur Not: findstr('izmir fen lisesi','fen') ile
rats(a) a sayısını rasyonel sayıya çevirir. findstr('fen','izmir fen lisesi') komutu arasında hiçbir
perms(a) a stringinin permütasyonlarını fark yoktur.
bulur.
factorial(n) n faktöryel (n!) 4. upper('izmir') komutu sonucu ekranda ĐZMĐR
kelimesi; lower('NABer?') komutu sonucu da ekranda;
nchoosek(n,r) n nin r li kombinasyonlarının sayısı
naber? kelimesi görülür.
c) Veri (data) fonksiyonları; datafun

Đşlem veya Anlamı


fonksiyon
max(a) a dizisinin en büyük elemanını
8 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni
Matlab Ders Notları
3
Matlab'da Sembolik Matematik ve Uygulamaları: 120 120 2005 .2006
Örneğin, 20 , 25 ve 4032085075 kesirlerinin en sade
Matlab'da bir denklemin çözümünü bulmak için örneğin biçimini bulalım.
x²-2x-15=0 denkleminin çözümünü bir m dosyasına
gerekli kodları yazarak yapabiliriz.Bu programın m sym(120/20) yazıp enter tuşuna bastığımızda ekranda
dosyası aşağıdaki gibi olabilir. kesrin en sade sonucu olan 5 sayısını,
clc;
a=input('a = ');b=input('b = ');c=input('c = '); sym(120/25) yazıp enter tuşuna bastığımızda ekranda
delta=b*b-4*a*c; kesrin en sade sonucu olan 24/5 sayısını,
if delta>0
x1=(-b-delta^0.5)/(2*a);x2=(-b+delta^0.5)/(2*a); sym((2005^3*2006)/4032085075) yazıp enter tuşuna
fprintf('Đki reel kök; x1 = %f x2 = %f ',x1,x2); bastığımızda ekranda kesrin en sade sonucu olan 4010
elseif delta==0 sayısını görürüz.
fprintf('Tek kök var; x1 = x2= %f ',-b/(2*a));
else Değişkenlerin sembolik nesne olarak tanımlanabildiği
fprintf('Kökler sanal '); gibi, fonksiyonlar da tanımlanabilir.
end; Örneğin;
3 2
Program çalıştırıldığında a b c katsayılarına sırasıyla, y=x - 3x + sin x fonksiyonunu sembolik nesne olarak
1, -2 ve -15 değerlerini girerek denklemin köklerini -3 ve tanımlamak istersek;
5 olarak buluruz. bunu iki yoldan da yapabiliriz:
Đkinci derece bir denklemin çözümünü veren a) syms x;
formüllerini bildiğimizden bunun programını (çok kolay y=x^3-3*x^2+sin(x) komutlarıyla veya;
olmasa da) yazabildik.Ya denklem üçüncü dereceden b) y=sym('x^3-3*x^2+sin(x)') komutuyla yapabiliriz.
olursa, 4 veya 5. dereceden olursa, ya da x.sin x=1/5
x pretty komutu:
gibi veya x = 64 gibi olursa ... bu denklemleri nasıl
Sembolik nesnenin görüntüsünü ekranda net olarak
çözümleyebiliriz? anlaşılır biçimde görünmesini sağlayan komuttur.
Verilen bir cebirsel ifadeyi, mesela Örneğin yukarıdaki y fonksiyonunu ekranda anlaşılır
3 2 biçimde görüntülemek için pretty(y) yazmak yeterlidir.Bu
(x - 8)(x + 7x)
3 2
2 2 gibi bir ifadeyi sadeleştirebilir durumda ekranda; y=x - 3x + sin(x) ifadesi görülür.
(2x + 4x +8)(x - 2x)
miyiz? Harfli Đfadeler ve Sadeleştirilmesi:
Bir fonksiyonun limitini, türevini ve integralini Matlab'da
buldurabilir miyiz? simplify Komutu
Đşte bu gibi işlemleri yaptırabilmek için Matlab'daki Sembolik nesneleri sadeleştirmeye yarar.
Sembolik Mantık (Sembolik Nesne) kavramını Örneğin;
kullanmalıyız.Bu konu ile ilgili açıklama ve yardım almak a) 8 - 5sin²x-5cos²x trigonometrik ifadesini ve
için komut satırına help symbolic yazmak yeterlidir. 3 2
(x - 8)(x + 7x)
Sembolik Matematikte Bazı Komutlar ve Anlamları: b) 2 2 biçimindeki rasyonel ifadesini
sym ve syms komutları: (2x + 4x +8)(x - 2x)
Bir değişkeni sembolik nesne yapmaya yarar. 2x-1 x+2
c) x+3 + x-1 ifadesinin sonucunu en sade biçimde
Örneğin x değişkenini sembolik nesne yapmak için; yazmak isteyelim.
x=sym('x'); komutu kullanılabilir.Aynı işlemi syms x;
komutu ile de yapabiliriz. Çözüm:
a) Bunun için önce ifadeyi sembolik nesneye dönüştürüp
x, y ve z değişkenlerini sembolik nesne yapmak için; sonra basitleştirme komutunu kullanmalıyız.Bunu iki
syms x y z komutu kullanılabilir. şekilde yapabiliriz:
I) y=sym('8-5*sin(x)^2-5*cos(x)^2');
Bir ondalık sayının kesir olarak karşılığını bulabilmek simplify(y)
için sym komutundan faydalanabiliriz. II) simplify(sym('8-5*sin(x)^2-5*cos(x)^2'))
Örneğin 3.98 ondalık sayısının rasyonel sayı karşılığını
bulmak için sym(3.98,'r') veya sym(3.98) komutu b) Benzer şekilde
kullanabiliriz. y=sym('(x^3-8)*(x^2+7*x)/((2*x^2+4*x+8)*(x^2-2*x))');
simplify(y)
Benzer şekilde 22/7 kesrini ondalık sayıya çevirmek komutları uygulanırsa ekranda ifadenin en sade hali
için de sym(22/7,'d') komutu kullanılır. olan;
Bir sayısal kesri sadeleştirmek için de sym komutundan 1/2*x+7/2 ifadesi bulunur.Şayet simplify(y) yerine;
faydalanabiliriz.
9 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni
Matlab Ders Notları
pretty(simplify(y)) komutu uygulanırsa ekranda daha
anlaşılır olan; 1/2 x+7/2 ifadesi görülür.

c) y=sym('(2*x-1)/(x+3)+(x+2)/(x-1)');
pretty(simplify(y)) komutları uygulanırsa ekranda 3 2 3
işlemin sonucu olan; (x - 2) x -2
2 --------- - 2 ------ + 7
3x +2x+7 2 x+3
--------------- (x + 3)
(x + 3) (x - 1) ------------------------
ifadesi görülür. 3
x -2
expand ve factor komutları: 3 ------ + 5
Sembolik nesnelerden oluşan polinomların kuvvetini x+3
açmak için expand komutunu, bir polinomun kuvveti
olarak açılmış ifadeyi eski haline getirmek için factor Ancak bu ifadeyi gerekli işlemlerin yapılarak daha da
komutunu kullanırız. basit biçime getirmek için en sondaki ifade olan
pretty(subs(y,x,z)) yerine pretty(simplify(subs(y,x,z)))
Örnek: yazmalıyız.Bu durumda ekranda;
3 3
a) (x²-x+1) - (x²+x-1) açılımının sonucunu; 6 3 4 2
b) x - 10 x + 79 - 2 x + 46 x + 7 x
8 7 9 3 2 6 4 ------------------------------------
-1 + 3 x - 3 x + 6 x + x + 10 x - 6 x - 10 x - 12 x + 3
5 (3 x + 9 + 5 x) (x + 3)
12 x ifadesi bir polinomun kuvveti olduğuna göre hangi ifadesi görülür.
polinomun kaçıncı kuvveti olduğunu bulduralım.
DENKLEMLER ve Çözümleri:
Çözüm:
a) y=sym('(x^2-x+1)^3-(x^2+x-1)^3');pretty(expand(y)) solve komut:
işlemi sonucu ekranda; Matlab'ın en güçlü ve kullanışlı komutlarından
5 4 3 2 biridir.Kısaca verilen her türden denklem (sayısal veya
-6 x + 6 x - 2 x + 6 x - 6 x + 2 görülür. matematik nesnesi olan) veya denklem sistemlerini
çözümlemeye yarar.
b) z=sym('-1+3*x-3*x^8+6*x^7+x^9+10*x^3-6*x^2-
10*x^6-12*x^4+12*x^5');pretty(factor(z)) Bir Bilinmeyenli Denklem Çözümleri:
işlemi sonucu ekranda; Örnek;
3 2 3 a) 2x-6=0
(x - 1) (x + 1) görülür. b) 2x²+5x=3
c) ax²+bx+c=0
subs komutu: 3 2
Bir sembolik ifadenin değişkenine verilen bir değer için d) x + 3x - x - 3 = 0
sonucunu bulmaya yarar. 5
e) x = 16x
Örnek: 2
2 f) x - 6x - 3 = 3x - 5
x - 2x + 7 x
y = f(x) = 3x+5 fonksiyonu veriliyor. g) x = 64 denklemlerinin çözüm kümelerini bulalım.
a) f(2005) değerini, Çözüm:
3 a) solve(2*x-6) veya solve('2*x-6') veya
x -2 solve(sym('2*x-6')) işleminin sonucu ekranda; 3 görülür.
b) z = g(x) = x + 3 olmak üzere f(g(x)) bileşke b) solve(2*x^2+5*x-3) veya solve('2*x^2+5*x-3')
fonksiyonunu bulduralım. işleminin sonucu ekranda; -3 ve 1/2 görülür.
Çözüm: c) Burada harfli ifadeyi matematiksel nesne olarak
a) y=sym('(x^2-2*x+7)/(3*x+5)');subs(y,x,2005) yazmak zorundayız.Bunun için komutu
işlemi sonucu ekranda 667.1133 değeri görülür. solve('a*x^2+b*x+c') veya solve(sym('a*x^2+b*x+c'))
biçiminde kullanmalıyız.Bu durumda ekranda; çözüm
b) y=sym('(x^2-2*x+7)/(3*x+5)');subs(y,x,2005); kümesi;
z=sym('(x^3-2)/(x+3)');pretty(subs(y,x,z)) işlemlerinin
sonucu ekranda aşağıdaki ifade görülür. [ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))] biçiminde görülür.

10 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
Bunu daha düzenli görüntülemek için pretty y değeri de sonuc.y değişkeninde bulunacaktır.Bunlar
komutundan faydalanalım.Yani komutu ekrana yazılarak sonuçlar görülebilir.O halde özetle, bu
pretty(solve('a*x^2+b*x+c')) olarak uygularsak ekranda; denklem sisteminin çözümü için ekrana şunlar sırasıyla
yazılmalıdır:
syms x y;
sonuc=solve(2*x-3*y-27,5*x+2*y-1);
sonuc.x
sonuc.y
[ 2 1/2] b) syms x y z;
[ -b + (b - 4 a c) ] sonuc=solve(17*x-3*y+4*z-7,15*x-7*y -1,x+y-9*z-13);
[1/2 -------------------- ] sonuc.x
[ a ] sonuc.y
[ ] sonuc.z
[ 2 1/2]
[ -b - (b - 4 a c) ] c) syms x y;
[1/2 -------------------- ] sonuc=solve(x^2-2*x*y+3*y^2-17,x*y-3*x+5);
[ a ] sonuc.x
ifadesi görülür ki bu da, ax²+bx+c=0 ikinci derece sonuc.y
denklemin kökler formülünden başka bir şey değildir.
LĐMĐT ve UYGULAMALARI:
d) solve(x^3+3*x^2-x-3) komutu uygulanırsa ekranda; 1,
-3, -1 değerleri görülür. limit Komutu:
Sembolik nesnelerden oluşan ifadenin limitini bulmaya
e) solve(x^5-16*x) komutu uygulanırsa ekranda; yarar.
[ 0] lim
[ 2] f(x) matematiksel ifadenin Matlab karşılığı;
x→a
[ -2] limit(f,x,a) biçimindedir.
[ 2*i] Şayet limit soldan veya sağdan olursa, Matematiksel ve
[ -2*i] değerleri görülür.Görülüyor ki denklemin 3 tane Matlab karşılıkları aşağıdaki gibi bulunur.
reel iki tane de sanal kökleri var. lim
- f(x) için limit(f,x,a,'left')
f) solve(x^2-6*x-3-(3*x-5)^(1/2)) komutu uygulanırsa x→→a
ekranda; 7 sayısı görülür.
lim
g) solve(x^x-64) komutu uygulanırsa ekranda; + f(x) için limit(f,x,a,'right')
→a
x→
ans = Not:
1) Şayet a değeri belirtilmezse 0 için limit bulunur.
log(64)/lambertw(log(64)) 2) ∞ için limit bulunacaksa a yerine inf ifadesi yazılır.
sonucu görülür ki, bu sonuç bilmediğimiz bir fonksiyonun 3) -∞ için limit bulunacaksa a yerine inf ifadesi ve 'left'
ürettiği bir değerdir.Bu değeri sayısal değere çevirmek ifadesi yazılır.
için double komutundan yararlanırız.Yani komutu;
double(solve(x^x-64)) biçiminde kullanırsak, ekranda Örnek:
3.3991 değerini görürüz. 2
lim 3x - 3
Çok Bilinmeyenli Denklem Çözümleri: a)
x→1 x - 1
Örnek: Aşağıdaki denklem sistemlerinin çözüm
kümelerini bulalım: lim 2-2cosx
a) 2x-3y=27 b)
x→0 x.sinx
5x+2y=1
b) 17x-3y+4z=7 lim 7n²-13n+777
15x-7y =1 c)
n→∞ 19-3n-n²
x+y-9z=13
c) x²-2xy+3y²=17
lim
xy-3x+5=0 d) n²+10n-2005 - n²-8n+2006
n→∞
Çözüm:
a) Önce x ve y değişkenlerini sembolik değişken olarak 2n+1 n+3
lim 7 - 49.7
tanımlamalıyız.Yani syms x y komutu e)
uygulanmalıdır.Sonra da çözüm sonucu bir değikene n→∞ n-1
49 + 77
örneğin sonuc değişkenine
sonuc=solve(2*x-3*y-27,5*x+2*y-1) komutuyla lim 5n+8 10n+9
f) ( )
atanmalıdır.Bu durumda x değeri sonuc.x değişkeninde n→∞ 5n+7

11 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
lim x- x²+x+1 syms k n;pretty(simple(symsum(k,1,n))) komutunu
g) uygularsak ekranda 1/2 n (n + 1) sonucu görülür.
x→ -∞ 2x- 4x²+x
lim
9x b) syms k n;pretty(simple(symsum(k^2,1,n)))
h) -
x→ 0 x
c) syms k n;symsum(k*(k+1)*(k+2),4,22)
d) syms k;symsum((2/3)^k,3,99) komutu sonucu
ekranda
Çözüm: 152704450587262615335745290072695420044661986
a)syms x; 328/17179250691067044367882037658854042423403
5840667
limit((3*x^2-3)/(x-1),x,1) işleminin sonucunda limit 6
sembolik ifadesi görülür.Bu değerin sayısal değerini
olarak bulunur.
bulmak için double(ans) kullanılırsa 0.8889 gerçek
değeri bulunur.Aynı şeyi;
b) syms x;
syms k;double(symsum((2/3)^k,3,99))
limit((2-2*cos(x))/(x*sin(x)),x,0) veya
limit((2-2*cos(x))/(x*sin(x))) biçiminde de bulabiliriz.
e)
syms k;symsum((2/3)^k,3,inf) komutu sonucu 8/9
c) syms n;limit((7*n^2-13*n+777)/(19-3*n-n^2),n,inf)
sonucu bulunur.
d) syms n;
limit((n^2+10*n-2005)^(1/2)-(n^2-8*n+2006)^(1/2),n,inf)
f)syms n;(6*double(symsum(1/n^2,1,inf)))^(1/2)
e) syms n;
TÜREV ve Đlgili Uygulamalar:
limit((7^(2*n+1)-49*7^(n+3))/(49^(n-1)+77),n,inf)
diff komutu:
Tanımlı sembolik ifadenin türevini bulmaya yarar.
f) syms n;
Örnek:
limit(((5*n+8)/(5*n+7))^(10*n+9),n,inf)
3 2
a) y = x + 6x - 13x +19 fonksiyonunun türevini bulalım.
g) syms x;
limit((x-(x^2+x+1)^(1/2))/(2*x-(4*x^2+x)^(1/2)),x,inf,'left') x²-3x+7
b) y = x²+5x-1 fonksiyonunun türevini bulalım.

h) syms x;limit((9*x)/(abs(x)),x,0,'left') c) y=sin²x.cosx fonksiyonunun türevini bulalım.


d) z=x²y+3xy-y² fonksiyonunun
DĐZĐLER ve SERĐLER ile Đlgili Uygulamalar: i) x e göre türevini
symsum komutu: ii) y ye göre türevini
Toplam sembolü veya seri toplamını bulmaya yarayan iii) y'=dy/dx türevini bulalım.
komuttur.
Çözüm:
b
a) syms x; y=sym('x^3+6*x^2-13*x+19');diff(y)
∑f(k) toplamını bulmaya yarayan Matlab komutu;
veya kısaca; diff('x^3+6*x^2-13*x+19')
k=a
symsum(f(k),a,b) biçiminde kullanılır.
b) diff('(x^2-3*x+7)/(x^2+5*x-1)') komutu uygulandığında
ekranda;
Örnek:
(2*x-3)/(x^2+5*x-1)-(x^2-3*x+7)/(x^2+5*x-1)^2*(2*x+5)
a) 1+2+3+...+n toplamının formülünü bulduran komutu
ifadesi görülür.Bunu daha anlaşılır biçimde
yazalım.
görüntülemek için;
b) 1²+2²+3²+...+n² toplamının formülünü bulduran
pretty(diff('(x^2-3*x+7)/(x^2+5*x-1)'))
komutu yazalım.
komutunu uygulamalıyız.Bu durumda ekranda;
c) 4.5.6+5.6.7+6.7.8+...+22.23.24 toplamının sonucunu
2
bulduran komutu yazalım.
2x-3 (x - 3 x + 7) (2 x + 5)
3 4 5 99
d) (2/3) +(2/3) +(2/3) + ...+(2/3) toplamını bulalım. ------------ - ------------------------
2 2 2
3 4 5
e) (2/3) +(2/3) +(2/3) + ... serisinin toplamını bulalım. x +5x-1 (x + 5 x - 1)
1 1 1 π²
f) 1² + 2² + 3² + ... serisinin sonucu 6 olduğu bilindiğine Bu sonucu daha sade halde görüntülemek için ise;
pretty(simplify(diff('(x^2-3*x+7)/(x^2+5*x-1)')))
göre π sayısını bulunuz. komutunu uygulamalıyız.Bu durumda ekranda;
2
Çözüm: x -2x-4
a) syms k n;symsum(k,1,n) 8 ---------------
komutu sonucunda; 1/2*(n+1)^2-1/2*n-1/2 ifadesi 2 2
bulunur. (x + 5 x - 1)
Şayet sonucu daha basit bulmak istersek; ifadesi görülür.
syms k n;simplify(symsum(k,1,n)) bunun sonucunda
1/2*n^2+1/2*n ifadesi bulunur.
12 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni
Matlab Ders Notları
c) pretty(diff('sin(x)^2*x*cos(x)')) komutu sonucu ii) y’ türev fonksiyonu için Dy, y’’ 2. mertebeden türev
ekranda; fonksiyonu için D2y, y’’’ 3. mertebeden türev fonksiyonu
için D3y … yazmalıyız.

2 2 3 iii) Matlab denklemleri sembolik olarak


2 sin(x) x cos(x) + sin(x) cos(x) - sin(x) x çözümlediğinden, denklemleri ve gerekirse özel
görülür. değerleri iki ‘ (kesme) arasına yazmalıyız.Birden fazla
ifade yazacaksak ayraç olarak aralara , (virgül)
d) syms x y;z='x^2*y-3*x*y-y^2'; koymalıyız.
i) tx=diff(z,x)
ii) ty=diff(z,y) dsolve komutu:
iii)pretty(-tx/ty) t bağımsız değişkenine bağlı y gibi bir fonksiyon ve
türevlerinden oluşan sembolik ifadeye karşılık gelen
ĐNTEGRAL ve Đlgili Uygulamaları: diferensiyel denkleminin genel ve istenirse tanımlanmış
int Komutu: ilk değerlere karşılık gelen özel çözümlerini bulmaya
Tanımlı sembolik ifadenin belirsiz integralini bulmaya yarar.
yarar.
Kullanımı:
Örnek:
dsolve(‘diferensiyel denklem’) komutuyla yazılan
a) ⌠(3x - 2x + 5) dx belirsiz integralini bulalım.
2
⌡ diferensiyel denklemin genel çözümünü buluruz.

dsolve(‘diferensiyel denklem’,’özel değer1’,’özel


b) ⌠ x²+1 dx belirsiz integralini bulalım.
2x+ 5
⌡ değer2’, …) komutuyla yazılan diferensiyel denklemin
özel değer1, özel değer2, … özel değerlerine karşılık
c) ⌠
⌡ x²sinx dx belirsiz integralini bulalım. gelen özel çözümünü buluruz.

Not 1: Sonuçların daha düzenli görüntsünü almak için,


Çözüm: dsolve komutundan önce pretty komutunu
a) int('3*x^2-2*x+5') kullanabilirsiniz.
b) pretty(int('(2*x+5)/(x^2+1)'))
c) pretty(int('x^2*sin(x)')) Not 2: Daha geniş açıklama için Matlab’ın komut
satırında;
DĐFERENSĐYEL DENKLEM ve ÇÖZÜMLERĐ: >>help dsolve
yazıp (Enter) tuşuna basınız.
Tanım: x bağımsız değişkeninin fonksiyonu y=f(x) olmak
(n) Örnek 1:
üzere, F(x,y,y’,y’’,y’’’, …, y ) = 0 bağıntısına “n.
3
dereceden (mertebeden) diferensiyel denklem” xy’-2y=x -2x+8 diferensiyel denkleminin;
denir.Burada y’, y nin türevini; y’’ , y nin 2. mertebeden a) Genel çözümünü bulduran,
(n) b) x=1 için y= -6 değerini veren özel çözümü bulduran,
türevini; y’’’, y nin 3. mertebeden türevini; y , y nin n.
c) Sonuçların ekranda düzenli görünmesini sağlayan
mertebeden türevini göstermektedir. komutları yazalım.

Örneğin; Çözüm:
3 2 2
y=x -5x +2x-4 fonksiyonu ve y’=3x -10x+2 türev
a) dsolve(‘t*Dy-2*y=t^3-2*t+8’)
3
fonksiyonu xy’-2y=x -2x+8 diferensiyel denklemini
b) dsolve(‘t*Dy-2*y=t^3-2*t+8’,’y(1)=-6’)
sağlar.
c) pretty(dsolve(‘t*Dy-2*y=t^3-2*t+8’,’y(1)=-6’))
Matlab’da böyle bir denklemin genel ve belirli şartlara
uyan özel çözümlerini buldurabiliriz. Ekranda a) nın sonucu; t^3-4+2*t+t^2*C1

Bunun için aşağıdaki kurallara dikkat etmeliyiz. b) nin sonucu; t^3-4+2*t-5*t^2

i) Matlab y gibi bir fonksiyonun varsayılan değişkenini x c) nin sonucu da;


değil t olarak kabul etmektedir.Yani diferensiyel 3 2
denklemimizi yazarken, serbest değişken için t t -4+2t-5t
kulanmalıyız. biçiminde görülür.

13 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
Örnek 2: Matlab'da Karmaşık Sayılarla Đşlemler:
Matlab'da bir değişkeni karmaşık sayı olarak atamak
2 için; z=a+bi gibi bir eşitlik gerekir.Örneğin, z=3-4i eşitliği
x y’’+4xy’+2y=0 diferensiyel denkleminin; ile z değişkenine 3-4i karmaşık sayısı atanmış olur.
a) Genel çözümünü bulduran,
b) x=1 için y=1 ve x= -2 için y= -5/4 değerini veren özel Bir karmaşık sayı ile ilgili aşağıdaki işlemler yaptırılabilir.
çözümünü bulduran, Fonksiyon Açıklama
c) x=-1 için y’=1 ve x=2 için y’’=0değerini veren özel conj(z) z nin eşleniğini verir
çözümünü bulduran komutları yazalım. real(z) z nin reel kısmını verir
imag(z) z nin sanal kısmını verir
Çözüm: abs(z) z nin mutlak değerini verir
angle(z) z nin x ekseniyle yaptığı açıyı radyan olarak
a) pretty(dsolve(‘t^2*D2y+4*t*Dy+2*y=0’)) verir
b) pretty(dsolve(‘t^2*D2y+4*t*Dy+2*y=0’,’y(1)=1’,’y(-2)=-5/4’))
isreal(z) z nin reel sayı olup olmadığını sorgular

c) pretty(dsolve(‘t^2*D2y+4*t*Dy+2*y=0’,’Dy(-1)=1’,’D2y(2)=0’)) Örnek: z1=3+4i;z2=12-5i karmaşık sayıları için;


a) Ekrana sayıları yazdıran,
Ekran Görüntüleri: b) Toplamlarını
a) C1 C2 c) 3z1-5z2 sayısını
---- + ---- d) Mutlak değerlerini,
t 2 e) Eşleniklerini,
t f) Reel ve sanal kısımlarını buldurup ekrana yazdıran bir
program yazınız.
b)

1 Çözüm:
2/t - ---- clc;z1=3+4i;z2=12-5i;
2 disp('z1=');disp(z1);
t disp('z2=');disp(z2);
disp('z1+z2 = ');disp(z1+z2);
c) 1 disp('3z1-5z2 = ');disp(3*z1-5*z2);
- 3/7 1/t + 2/7 ---- disp('|z1|=');disp(abs(z1));
2 disp('|z2|=');disp(abs(z2));
t disp('z1 in eşleniği');disp(conj(z1));
disp('z1 in reel kısmı');disp(real(z1));
disp('z1 in sanal kısmı');disp(imag(z1));
Örnek 3: disp('z2 nin eşleniği');disp(conj(z2));
disp('z2 nin reel kısmı');disp(real(z2));
Y’’’+4y’=48sin4x diferensiyel denkleminin; disp('z2 in sanal kısmı');disp(imag(z2));

a) Genel çözümünü bulduran, Matlab'da Grafik Đşllemleri:

b) x=0 için y=1, x= 0 için y’= 0 ve x=π/4 için y’’’=-4 1 ) Đki Boyutlu Grafikler (Düzlemde Grafik):
değerini veren özel çözümünü bulduran komutları
yazalım. Bu konuyla ilgili komut ve açıklamaları görmek için
komut satırına help graph2d yazdığımızda aşağıdaki
Çözüm: bilgiler gelir.
Two dimensional graphs.
a) pretty(dsolve('D3y+4*Dy=48*sin(4*t)')) Elementary X-Y graphs.
plot - Linear plot.
b) pretty(dsolve('D3y+4*Dy=48*sin(4*t)','y(0)=1', loglog - Log-log scale plot.
'Dy(0)=1','D3y(pi/4)=-4')) semilogx - Semi-log scale plot.
semilogy - Semi-log scale plot.
polar - Polar coordinate plot.
Ekran Görüntüleri: plotyy - Graphs with y tick labels on the left and
a) 2 ......
2 cos(2 t) - 1 + C1 + C2 sin(2 t) + C3 cos(2 t) ......

2 Biz bu komutlardan bazılarını göreceğiz.


b) 2 cos(2 t) - 1/2 + 1/2 sin(2 t) - 1/2 cos(2 t)
a) plot komutu:
Matlab'da plot komutuyla grafik çizdirmek için,
tanımlanan fonksiyonun x değişkeninin başlangıç ve bitiş
14 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni
Matlab Ders Notları
değerleri arasındaki her değer için ayrı ayrı hesaplatılan x=-10, x=10 aralığında, 0.01 artışla,
grafiğe ait (x,y) noktalarının koordinat düzleminde nokta 3 2
ile işaretletmeliyiz. y=x - 5x + 7x + 13 fonksiyonunun grafiğini çizdiren
bir program yazınız.
Kullanımı: Çözüm:
değişken_adı=ilk_değeri:artış_miktarı:son_değeri; x=-10:0.01:10;y=x.^3-5*x.^2+7*x+13;plot(x,y);
fonksiyon_değişkeni=fonksiyon_tanımı; Grafik aşağıdaki gibidir:
plot(x,y);

Not 1) plot(x,y) komutu yerine iki noktayı doğru ile


birleştiren komut olan line(x,y) komutunu da
kullanabiliriz.

Not 2) plot komutuyla çizdirilen grafiğe ait çizgi


özelliklerini de belirtebiliriz.Bunu
plot(x,y,'çizgi_özellikleri',...); veya
plot(x,y,'özellik1',değer1,'özellik2',değer2,...);
biçiminde belirtiriz.

Buradaki çizgi özellikleri ve değerleri şunlardır:


Color: line nesnesinin rengini düzenlemeye yarar. Örnek:
LineStyle: Çizgi stilini belirleyen özelliktir.Alabileceği x değerleri (tanım kümesi) [0, 2π] aralığı olan f(x)=sinx
değerler; -, --, -., :, ve none dir.Değeri none olursa çizgi ile g(x)=cosx fonksiyonlarının grafiklerini aynı koordinat
görünmez. düzleminde, tek komutla çizdirelim.Öyle ki;
LineWidth: Çizginin kalınlığını düzenleyen özelliktir. a) f(x) in rengi kırmızı, g(x)in rengi mavi olsun
Marker: Çizginin işaretini belirleyen özelliktir.Marker ile b) f(x) in rengi kırmızı, çizgi stili :, noktaların biçimi +,
ilgili değerler ve anlamı aşağıdaki tabloda gösterilmiştir. g(x) in rengi siyah, çizgi stili --, noktaların biçimi elmas
ve çizgi kalınlıkları 2 şer birim olsun.

Çözüm:
Değer Anlamı x=0:0.1:2*pi;f=sin(x);g=cos(x);
+ + işareti a) plot(x,f,'r',x,g,'b');
o daire işareti b) plot(x,f,'r:+',x,g,'black--d','linewidth',2);
* yıldız işareti Grafiği aşağıda verilmiştir:
. nokta işareti
x çarpı işareti
s kare (square) işareti
d elmas (diamond) işareti
^ yukarı gösteren üçgen işareti
v aşağı gösteren üçgen işareti
> sağa doğru gösteren üçgen işareti
< sola doğru gösteren üçgen işareti
p 5 noktalı (pentagon) yıldız işareti
h 6 noktalı (hexagram) yıldız işareti
none işaretsiz

Not 3) Aynı x değerlerine karşılık birden fazla fonksiyon


tanımlanarak (y1,y2,y3, ... gibi) aynı grafik ekseni Örnek:
üzerinde çizdirebiliriz.Bunu da; y=sin(x/3)+cos(x/2) fonksiyonunun grafiğini;x değerleri
plot(x,y1,x,y2,x,y3,...); biçiminde belirtiriz. 0.1 artışla;
a) [-10, 10] aralığında;
Örnek: b) Fonksiyonun peyodu T ise, [-T,T] aralığında grafiğini
x=-10, x=10 aralığında, 0.1 artışla ,y=2x-6 doğrusunun çizdirelim;
grafiğini çizdiren bir program yazınız. Çözüm:
a) x=-10:0.1:10;y=sin(x./3)+cos(x./2); plot(x,y);
Çözüm: Grafiği aşağıdaki gibidir.
x=-10:0.1:10;
y=2*x-6;plot(x,y);

Örnek:

15 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları

b) Fonksiyonun periyodu; T=OKEK(6π;4π)=12π dir.Buna b) y=x.^3+3*x-5;loglog(x,y);


göre komut satırına aşağıdaki ifadeleri yazmalıyız:
x=-12*pi:0.1:12*pi;y=sin(x./3)+cos(x./2);plot(x,y);
Grafiği aşağıdaki gibidir.

c) y=x.^3+3*x-5;semilogx(x,y);

b) loglog, semilogx, semilogy komutları:


1) Bir fonksiyonun grafiğini çizdirdiğimizde x ve y nin
aralığı çok geniş olduğunda hem x değerlerini, hem de y
değerlerini logaritmik artışla tanımlayabilirizBu durumda
grafiği loglog(x,y) komutunu kullanırız.

2) x değerleri, y değerlerine göre çok geniş bir aralıkta


ise sadece x değer aralığını logaritmik artışla
tanımlayarak grafiği çizdirebilirz.Bu durumda
semilogx(x,y) komutunu kullanırız.

3) y değerleri, x değerlerine göre çok geniş bir aralıkta


ise sadece y değer aralığını logaritmik artışla
tanımlayarak grafiği çizdirebilirz.Bu durumda c) y=x.^3+3*x-5;semilogy(x,y);
semilogy(x,y) komutunu kullanırız.

Örnek: x değerleri -1000 ile 1000 arasında olmak üzere


3
y = x + 3x -5 fonksiyonun grafiğini a) Normal b) x ve y
değerleri logaritmik artışla c) Sadece x değerleri
logaritmik artışla d) Sadece y değerleri logaritmik artışla
çizdirelim.

Çözüm: x=-1000:0.1:1000;
a) y=x.^3+3*x-5;plot(x,y);

hold Fonksiyonu ve Kullanımı:


Bazen aynı eksende iki grafik üstüste çizdirerek iki
graffiğin birbirine göre durumlarını incelemek

16 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
isteyebiliriz.Đşte bu durumda hold fonksiyonu
kullanılabilir.

Örnek:
[0,10π] aralığında; f(x)=sin(x) fonksiyonu ile
g(x)=xsin(x/2)cos(x/5) fonksiyonunun grafiklerini aynı
koordinat düzleminde çizdirelim.

Çözüm:
x=0:0.1:10*pi;y1=sin(x);y2=x.*sin(x./2).*cos(x./5);
plot(x,y1);hold;plot(x,y2);
Grafiği aşağıda verilmiştir.

d) polar Fonksiyonu:
Kutupsal koordinatlarla verilen bir fonksiyonun grafiğini
çizmeye yarar.

Kullanımı:
polar(t,r);
Not: Komuttaki t açısı grafiğe ait noktaya karşılık gelen
vektörün Ox ekseniyle yaptığı açıyı, r de bu vektörün
uzunluğunu belirtir.

Örnek: t açısının değer aralığı [0,10π] olmak üzere;


a) r1=sin(t) b) r2=tsin(t)cos(t) fonksiyonlarının
c) plotyy Fonksiyonu: grafiklerini çizdirelim.
Bazen sayısal aralıkları farklı iki fonksiyonu aynı eksen
üzerinde görüntülediğimizde, birinin aldığı değerler, Çözüm:
diğerine nazaran çok küçük olduğundan tam olarak t=0:0.1:10*pi;
ayırdedilemez.Bu durumda iki grafiği plotyy komutuyla a) r1=sin(t);polar(t,r1);
çizdirdiğimizde grafiği daha ayrıntılı ve net görebilirz. Grafik aşağıda verilmiştir.

Kullanımı:
plotyy(ortak_aralık,fonk1,ortak_aralık,fonk2);

Örnek:
[0, 6π] aralığında, f(x)=2x²-10x+5 ile g(x)=cos(x/3)
fonksiyonlarını aynı grafik ekseninde;
a) Normal olarak b) g(x) fonksiyonunu daha belirgin
olarak çizdirelim.

Çözüm:
x=0:0.1:6*pi;f=2.*x.^2-10*x+5;g=cos(x./3);
a) plot(x,f);hold;plot(x,g);
Grafik aşağıda verilmiştir. b) r2=t.*sin(t).*cos(t);polar(t,r2);
Grafik aşağıda verilmiştir.

b) plotyy(x,f,x,g);
Grafik aşağıda verilmiştir. 2 ) Üç Boyutlu Grafikler (Uzayda Grafik):

17 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
Bu konuyla ilgili komut ve açıklamaları görmek için y dizisinin değerlerinin 3 katının çıkarılmasıyla
komut satırına help graph3d yazdığımızda aşağıdaki oluşturalım.Bu durumda belirlenen (x,y,z) noktalarından
bilgiler gelir. oluşan grafiği çizdirelim.
c) b) şıkkında tanımlanan grafiğin çizgi rengini sarı, çizgi
Three dimensional graphs. stilini -., çizgi noktalarının (marker) işaretini *, marker
kalınlığını 2 birim yapalım.
Elementary 3-D plots. Çözüm:
plot3 - Plot lines and points in 3-D space. a) plot3(-3,5,8);
mesh - 3-D mesh surface. b) x=1:10;y=5:5:50;z=2*x-3*y;plot3(x,y,z);
surf - 3-D colored surface. c) x=1:10;y=5:5:50;z=2*x-3*y;plot3(x,y,z,'y-
fill3 - Filled 3-D polygons. .*','linewidth',2);
....
.... Örnek:
Biz bu komutlardan bazılarını göreceğiz. Açı ölçüleri [0, 10π] aralığında 0.1 er artışla elde edilen
değerleri x dizisine, bu değerlerin sinüslerini y dizisine ,
a) plot3 Fonksiyonu: kosinüslerini de z dizisine atayalım.Bu durumda elde
Uzayda (x,yz) koordinatları ile belirli vektörün (vektöre edilen (x,y,z) üçlülerinin grafiğini çizdirelim.Grafik
karşılık gelen uç noktasının) grafiğini çizer. penceresini hem kutu içine alalım hem de grafik ızgara
plot fonksiyonuna benzer biçimde kullanılır. çizgilerini koyalım.

Kullanımı: Çözüm:
plot3(x,y,z); x=[0:0.1:10*pi];y=sin(x);z=cos(x);
plot3(x,y,z,'Çizgi özellikleri',...); plot3(x,y,z);box on;grid on;
plot3(x,y,z,'özellik1',değer1,'özellik2',değer2,...); Buna göre grafik aşağıdaki gibi olacaktır.
biçimindedir.

Not 1) plot3 komutunu uyguladığımızda, ilgili grafik


Figure (şekil) penceresinde oluşur.Grafiği daha iyi
inceleyebilmek için örneğin grafik derinliğini
algılayabilmek için grafiği bir kutu (prizma) içine
alabiliriz.Bunun için komut satırına box on; komutunu
girmeliyiz, kutuyu kaldırmak istediğimizde de box off
komutunu kullanırız.

Not 2) Ayrıca grafikle ilgili ayarlamalar için; şekil


penceresinin üstündeki araçlardan faydalanabiliriz.Bu
araçlar aşağıda gösterilmiştir:

Grafiği Büyütme Aracı: Bu aracı tıkladıktan sonra, b) Yüzey Grafikleri:


grafik penceresine her tıklanışta grafik bize doğru Đki Boyutlu Düzlemin Koordinatlarını Tanımlayan
yaklaşarak büyür. Matris ve meshgrid Fonksiyonu ve Yüzey Grafiği:
Üç boyutlu uzayda, örneğin xOy düzleminde belirli bir
Grafiği Küçültme Aracı: Bu aracı tıkladıktan sonra, dikdörtgen biçimindeki alanın, yatay ve düşey çizgilerle
grafik penceresine her tıklanışta grafik bizden (grid line) daha küçük dikdörtgensel bölgelere ayrıldığını
uzaklaşarak küçülür. varsayalım.Đşte bu çizgilerin kesim noktalarının
koordinatları, grafik çiziminde gerekli olacaktır.Bu
Grafiği Döndürme Aracı: Bu aracı tıkladıktan sonra, koordinatları tutan matris meshgrid fonksiyonu
grafik penceresinin köşelerine yakın bir yerden tutularak yardımıyla elde edilir.Bunun için; önce tanımlanmak
(farenin sol tuşu basılarak) istediğimiz kadar istenen bölgenin x koordinatları bir diziye (örneğin x
döndürebiliriz. dizisine), y koordinatları bir diziye (örneğin y dizisine)
atanır.Ardından [X,Y]=meshgrid(x,y); komutunu
Not 3) Ayrıca üç boyutlu koordinat sistemine, incelemeyi uygulayarak (x ile X in ve y ile Y nin farklı olduğuna
daha rahat yapabilmek için ızgara çizgileri de dikkat edin!) ilgili bölgenin koordinatları X ve Y dizilerine
koyabiliriz.Bunun için komut satırına gird on; komutunu atanmış olur.Daha sonra X ve Y matrislerine bağlı
yazarız.Izgarayı kaldırmak için de gird off; komutu Z=f(X,Y); gibi bir matris elde edebiliriz.Đşte bu Z
uygulanır. fonksiyonu, üç boyutlu uzayda bir yüzey belirler, örneğin
Z fonksiyonu X ve Y ye bağlı birinci dereceden bir
Örnek: fonksiyonsa bir düzlem, daha yüksek dereceden veya
a) (-3,5,8) noktasının grafiğini çizdiren (noktayı trigonometrik, üstel ... gibi fonksiyonlardan oluşan bir
işaretleyen), fonksiyon ise bir yüzey belirler.Bu fonksiyonun grafiğini
b) x değerleri 1 den 10 kadar 1 er artan bir dizide, çizdirebiliriz.: Bunun için;
y değerleri 5 den 50 ye kadar 5 er artan birer dizi olmak surf(Z) ile ilgili bölgenin üç boyutlu yüzey grafiğini,
üzere; z değerleri de x dizisinin elemanlarının 2 katından surface(Z) ile bölgenin iki boyutlu grafiğini ,
18 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni
Matlab Ders Notları
mesh(Z) ile fonksiyonun tanımladığı yüzeyin ağ grafiğini
contour(Z) ile de fonksiyonun tanımladığı yüzeyin
seviye grafiğini çizdirebilirz.

Örnek: xOy düzleminde;


yatay olarak, [0 .. 10] bölgesini 0.1 er artımlı x dizisine;
düşey olarak, [0 .. 8] bölgesini 0.2 er artımlı y dizisine
atayalım.Daha sonra, bu dizileri [X,Y] koordinat
matrisine atayalım.
a) Z=X+Y matrisine karşılık gelen fonksiyonun c) i)surface(Q); ii) surf(Q); iii) mesh(Q); iv) contour(Q);
i) iki boyutlu düzlem grafiğini, Grafikler aşağıda verilmitir.
ii) üç boyutlu düzlem grafiğini,
iii) yüzey ağ grafiğini,
iv) yüzey seviye grafiğini çizdirelim.
b) P=X.^2+Y.^2 matrisine karşılık gelen fonksiyonun
i) iki boyutlu düzlem grafiğini,
ii) üç boyutlu düzlem grafiğini,
iii) yüzey ağ grafiğini,
iv) yüzey seviye grafiğini çizdirelim.
c) Q=sin(X./2)+cos(Y./3) matrisine karşılık gelen
fonksiyonun
i) iki boyutlu düzlem grafiğini,
ii) üç boyutlu düzlem grafiğini,
iii) yüzey ağ grafiğini,
iv) yüzey seviye grafiğini çizdirelim.
Çözüm:
x=[0:0.1:10];y=[0:0.2:8];[X,Y]=meshgrid(x,y);
Z=X+Y;P=X.^2+Y.^2;Q=sin(X./2)+cos(Y./3);
a) i)surface(Z); ii) surf(Z); iii) mesh(Z); iv) contour(Z);
Grafikler aşağıda verilmitir.

peaks Fonksiyonu Đle Kare Matris Oluşturma:


nxn lik bir kare matris oluşturan fonksiyon peaks
dir.Kullanımı peaks(n) biçimindedir.Bu matrisi
oluştururken x ve y koordinatlarıyla ilgili
3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) - 10*(x/5 - x.^3 -
y.^5).*exp(-x.^2-y.^2) - 1/3*exp(-(x+1).^2 - y.^2)
fonksiyon kullanılır.
Bu matrisi z gibi bir matris değişkenine z=peaks(n);
komutuyla atayıp z matrisi ile ilgili grafikler
çizdirilebilr.Örneğin; surface(z) ile z nin iki boyutlu alan
grafiği; surf(z) ile z nin yüzey grafiği, mesh(z) ile ağ
grafiği , contour(z) ile yüzey seviye grafiği çizdirilebilir.

Örnek:
a) 30x30 boyutlarındaki bir kare matrisi z dizisine
atayalım,
b) z matrisinin iki boyutlu alan grafiğini,
c) z matrisinin üç boyutlu yüzey grafiğini,
d) z matrisinin üç boyutlu yüzeyinin ağ grafiğini,
b) i)surface(P); ii) surf(P); iii) mesh(P); iv) contour(P); e) z matrisinin üç boyutlu yüzey seviye grafiğini
Grafikler aşağıda verilmitir. çizdirelim.

Çözüm:
a) z=peaks(30) b) surface(z) c) surf(z)
d) mesh(z) e) contour(z) Grafikler aşağıda verilmiştir:

19 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
Örneğin set(yuzey,'facecolor','texturemap'); gibi.

Örnek:
a) 40x40 boyutlarında peaks fonksiyonu ile tutamac adı
yuzey olan luşturulan yüzey nesnesini oluşturalım.
b) Yüzeyi prism adlı renk haritası ile boyayalım.
c) Yüzeye start.jpg adlı resmi giydirelim.

Çözüm:
a) yuzey=surf(peaks(40));
Grafik aşağıdaki gibidir:

Not 1) Belirlenen yüzeyin rengi Matlab tarafından


otomatik olarak belirlenir.Ancak bu renkten başka
Matlabın hazır yüzey renk haritalarından birisi ile de
b) yuzey=surf(peaks(40));colormap(prism);
boyanabilir.Bu renk haritaları şunlardır:

Color maps.
hsv - Hue-saturation-value color map.
hot - Black-red-yellow-white color map.
gray - Linear gray-scale color map.
bone - Gray-scale with tinge of blue color map.
copper - Linear copper-tone color map.
pink - Pastel shades of pink color map.
white - All white color map.
flag - Alternating red, white, blue, and black color map.
lines - Color map with the line colors.
colorcube - Enhanced color-cube color map.
vga - Windows colormap for 16 colors.
jet - Variant of HSV.
prism - Prism color map. c) yuzey=surf(peaks(40));renk=imread('start.jpg');
cool - Shades of cyan and magenta color map. set(yuzey,'cdata',renk);
autumn - Shades of red and yellow color map.
set(yuzey,'facecolor','texturemap');
spring - Shades of magenta and yellow color map.
winter - Shades of blue and green color map.
summer - Shades of green and yellow color map. Aşağıdaki resim, start.jpg adlı dosyaya aittir.
Aktif penceredeki yüzeyin rengini bone (kemik rengi) ile
boyamak için, komut satırına; colormap(bone); komutu
yazılmalıdır.

Not 2) Đstersek belirlenen yüzeyi, istediğimiz bir resmin


renkleri ile boyayabiliriz (başka bir deyişle yüzeye resmi
giydirebiliriz).Bunun için aşağıdaki adımları takip
edebiliriz:
a) Yüzeyin tutamacını bir değişkene atarız.
Örneğin yuzey=surf(peaks(40)); gibi.
b) Đstediğimiz bir resim dosyasının renk bilgisini bir diziye
atarız.
Örneğin, renk=imread('bayrak.jpg'); gib.
c) Yuzey tutamacınaın Cdata özelliğine istediğimiz renk
bilgisini koyarız.
Örneğin; set(yuzey,'cdata',renk); gibi.Ancak bu
komuttan sonra, dizil boyutlarının uyuşmadığı gibilerden
bazı hata mesajları gelir, bunlara kulak asmayın :)
d) Son olarak ta yüzeyin FaceColor özelliğine
textturemap yaparız

20 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
hist - Histogram.
pareto - Pareto chart.
pie - Pie chart.
plotmatrix - Scatter plot matrix.
rose - Angle histogram plot.
scatter - Scatter plot.
stem - Discrete sequence or "stem" plot.
stairs - Stairstep plot.

Contour and 2-1/2 D graphs.


contour - Contour plot.
contourf - Filled contour plot.
contour3 - 3-D Contour plot.
clabel - Contour plot elevation labels.
ezcontour - Easy to use contour plotter.
ezcontourf - Easy to use filled contour plotter.
pcolor - Pseudocolor (checkerboard) plot.
voronoi - Voronoi diagram.

Specialized 3-D graphs.


bar3 - 3-D bar graph.
bar3h - Horizontal 3-D bar graph.
comet3 - 3-D comet-like trajectories.
ezgraph3 - General purpose surface plotter.
ezmesh - Easy to use 3-D mesh plotter.
ezmeshc - Easy to use combination mesh/contour
plotter.
ezplot3 - Easy to use 3-D parametric curve plotter.
ezsurf - Easy to use 3-D colored surface plotter.
ezsurfc - Easy to use combination surf/contour
Yukarıdaki resmin yüzeye giydirilmiş durumu aşağıda plotter.
görülüyor. meshc - Combination mesh/contour plot.
meshz - 3-D mesh with curtain.
pie3 - 3-D pie chart.
ribbon - Draw 2-D lines as ribbons in 3-D.
scatter3 - 3-D scatter plot.
stem3 - 3-D stem plot.
surfc - Combination surf/contour plot.
trisurf - Triangular surface plot.
trimesh - Triangular mesh plot.
waterfall - Waterfall plot.
Solid modeling.
cylinder - Generate cylinder.
sphere - Generate sphere.
ellipsoid - Generate ellipsoid.
Bazı Özel Garfik Fonksiyonları: patch - Create patch.
Matlab'da daha bir çok grafik fonksiyonları vardır.Bunları surf2patch - Convert surface data to patch data.
görmek ve kullanımları hakkında bilgi almak için komut .....
satırında help specgraph yazabiliriz. Bunların hepsini açıklamaya gerek yok, ancak bazılarını
görelim:
Specialized graphs.
Specialized 2-D graphs. Ezplot Fonksiyonu:
area - Filled area plot. Matlab'ın en güçlü fonksiyonlarından biridir.Bu grafik
bar - Bar graph. fonksiyon; metin olarak girilen f(x,y)=0 biçimindeki
barh - Horizontal bar graph. kapalı fonksiyon grafiklerini çizdirmeye yarar.
comet - Comet-like trajectory.
compass - Compass plot. Kullanımı:
errorbar - Error bar plot. ezplot('kapalı fonksiyon ifadesi'); veya
ezplot - Easy to use function plotter. ezplot('kapalı fonksiyon ifadesi',[xmin xmax]); veya
ezpolar - Easy to use polar coordinate plotter. ezplot('kapalı fonksiyon ifadesi',[xmin xmax ymin ymax]);
feather - Feather plot. biçiminde kullanılabilir.Burada
fill - Filled 2-D polygons. xmin x değerlerinin başlangıç değeri,
fplot - Plot function. xmax x değerlerinin bitiş değeri,

21 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
ymin y değerlerinin başlangıç değeri,
ymax y değerlerinin bitiş değeridir. Çözüm:ezplot('x^2*sin(y)+y^2*sin(x)-3',[-20 20 -20 20]);
grafiği aşağıda verilmiştir.
Örnek:
3
x - 4x
y = x²-2x-3 fonksiyonunun grafiğini ezplot fonksiyonu ile
grafiğini;
a) Normal olarak b) x değerleri [-5, 10] aralığında
c) x değerlerini [-5, 5] aralığında, y değerlerini [-10, 30]
aralığında çizdirelim.

Çözüm:
a) ezplot('y-(x^3-4*x)/(x^2-2*x-3)'); grafiği aşağıda
verilmiştir.

Ezplot3 Fonksiyonu:
Bu da metin olarak girilen f(x,y,z)=0 biçimindeki kapalı
fonksiyon grafiklerini üç boyutlu uzayda çizdirmeye
yarar.Burada x, y ve z vektörleri t gibi bir parametreye
bağlı birer fonksiyonlardır.Yani, x=f(t), y=g(t) ve z=h(t)
gibi birer fonksiyondur.

Kullanımı:
ezplot3('f(t)','g(t)','h(t)'); veya
ezplot3('f(t)','g(t)','h(t)',[tmin tmax]);

Not 1) Burada tmin t parametresinin başlangıç değeri,


b) ezplot('y-(x^3-4*x)/(x^2-2*x-3)',[-5 10]); grafiği tmax t parametresinin bitiş değeridir.
aşağıda verilmiştir. Not 2) tmax ve tmin değerleri belirtilmezse Matlab bunu
[0 2π] olarak alır.
x
Örnek:x=sin(t), y=e ve z=t.cost parametrik
denklemleriyle verilen üç boyutlu eğrinin grafiğini ;
a) Normal varsayılan aralıkta
b) t değerleri [-10π, 10π] aralığında çizdirelim.

a)
ezplot3('sin(t)','exp(t)','t*cos(t)');

c) ezplot('y-(x^3-4*x)/(x^2-2*x-3)',[-5 5 -10 30); grafiği


aşağıda verilmiştir.

b)
ezplot3('sin(t)','exp(t)','t*cos(t)',[-10*pi 10*pi]);

Örnek:
x²siny+y²sinx=3 bağıntısının grafiğini x ve y değerlerinin
her ikisi de [-20, 20] aralığında çizdirelim.

22 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları

cylinder Fonksiyonu: sphere Fonksiyonu:


Silindir çizdirmeye yarayan fonksiyondur. 1 birim yarıçapında bir küre çizdirmeye yarayan
fonksiyondur.
Kullanımı: cylinder; veya cylinder(r,n); biçimindedir. Kullanımı: sphere; veya sphere(n);

Not 1) Buradaki r silindirin çapı, n de silindiri oluşturan Not: Buradaki n sayısı küre yüzeyini oluşturan yüzeylerin
yüzey sayısıdır.varsayılan n değeri 20 dir. sayısıdır varsayılan değeri 20 dir.
Not 2) n değerini küçük alırsak, örneğin 5, 10 gibi silindir Örnek: a) varsayılan değerlerde bir küre; b) Yüzeyini
pirizmaya dönüşür. oluşturan parçaların sayısı 70 olan bir küre çizdirelim.
Örnek:
a) Normal varsayılan değerlerle bir siliindir Çözüm: a)sphere;
b) Taban çapı 3 birim , yüzey sayısı 50 olan bir silindir;
c) Taban çapı 7 birim olan bir üçgen pirizmayı, hsv renk
haritasıyla boyayarak çizdirelim.
Çözüm: a) cylinder;

b) sphere(70);

b) cylinder(3,50);

eval Fonksiyonu ve Kullanımı:


c) cylinder(7,3);colormap(hsv); Matlab'da kuulanıcının metin olarak girdiği ifadeyi,
yorumlayarak hesaplanacak fonksiyon biçimine getiren
fonksiyon eval fonksiyonudur.

Kullanımı:
değişken=eval('hesaplatılacak-fonksiyon-metni')

23 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
Örnek: Kullanıcının girdiği bir x sayısının, istediği d) chekbox (onay kutusu)
fonksiyon altındaki görüntüsünü (değerini) hesaplatan bir e) edit (metin düzenleme kutusu)
program yazalım. f) text (sabit metin kutusu)
g) listbox (liste kutusu)
Çözüm: h) popupmenu (açılır liste kutusu)
clc;x=input('Sayıyı gir :'); ı) slider (kaydırma çubuğu)
y=input('Fonksiyonu gir f(x)=','s');y=eval(y); i) frame (çerçeve)
fprintf('f(%d) = %d',x,y); cc
Örnek: x değerleri -5 ile 15 aralığında, 0.1 er artışla
tanımlanan sayı aralığında olan, kullanıcının istediği bir Bazı Grafik Đşleme Fonksiyonları:
fonksiyonun grafiğini çizdiren bir program yazalım.
a) Bir Nesnenin Özelliklerini Elde Etme: get
Çözüm: Kullanımı: get(nesne_tanımlayıcı,'özellik_adı');
x=[-5:0.1:10];
ifade=input('Fonksiyonu gir f(x)=','s'); Örnek: resim adlı bir figure nesnesi oluşturup bu
y=eval(ifade); nesnenin units (birim) özelliğini elde edelim.
plot(x,y);
Çözüm:
Örnek: x değerleri kullanıcının belirlediği bir aralıkta olan resim=figure; (enter)
ve kullanıcının istediği bir fonksiyonun grafiğini çizdiren get(resim,'units') (enter) tuşuna basıldığında ekranda;
bir program yazalım. ans =
pixels
Çözüm: görülür.Bunun da resim adlı figure nesnesinin units
clc;x=input('x aralığını gir :','s');x=eval(x); özelliğinin, pixel olduğu anlaşılır.
y=input('Fonksiyonu gir f(x)=','s');y=eval(y);
plot(x,y); b) Bir Nesnenin Özelliklerini Değiştirme: set
".... Kullanımı:
Grafik Nesneleri ve Grafiksel Arabirim Đle set(nesne_tanımlayıcı,'özellik_adı','yeni_değer');
Programalama: veya
Matlab'da grafiksel işlemler, grafik nesneleri ile set(nesne_tanımlayıcı,'özellik_adı1','yeni_değer1',
yapılır.Grafik nesneleri ve arasındaki hiyerarşi aşağıdaki 'özellik_adı2','yeni_değer2,...,
gibidir: 'özellik_adıN','yeni_değerN);

I. Root(Kök) Örnek: Bir önceki örnekteki resim adlı figure nesnesinin


II.Figure (Şekil) units özelliğini centimeters yapan komutu yazalım.
a) Axes(Eksen)
1. Image (Resim) Çözüm:
2. Light (Işık) set(resim,'units','centimeters')
3. Line (Çizgi)
4. Patch (Yama) Örnek:
5. Rectangle (Dikdörtgen) Bir önceki resim adlı figure nesnesinin pozisyonunu, sol
6. Surface (Yüzey) alt köşesinin, ekranın sol alt köşesinden yatay olarak 1
7. Text (Metin) cm, düşey olarak 2 cm uzaklıkta, yatay uzunluğunun 10
b) Uicontrol (Kontrol) cm düşey uzunluğu 7 cm olarak belirleyelim.Resim adlı
c) Uimenu (Menü) pencerenin zemin renginin RGB renklerini 0.6 0.7 0.8
d) Uicontextmenu (Kısayol menüsü) oranında olmasını (açık mavi) ve pencerenin ismini
Bu nesneler bir hiyerarşi içerisinde birbirlerine bağımlı 'Şekil Penceresi' olmasını sağlayalım.
olarak oluşturulabilirler.Örneğin, grafik kullanıcı arabirimi
oluşturmak istediğimizde, düğme, liste kutusu, onay Çözüm:
kutusu ... gibi (uicontrol) kontrol nesnelerini bir set(resim,'position',[1 2 10 7],
(figure) şekil penceresi üzerine yerleştirebilirsiniz.Bu 'color',[0.6 0.7 0.8],'name','Şekil Penceresi')
durumda şekil penceresi, kontrol nesnelerinin (parent)
ebeveyni iken, kontrol nesneleri de şekil penceresinin c) Bir Nesneyi Silmek: delete
(children) çocuklarıdır. Kullanımı: delete(nesne_tanımlayıcı)
Grafik nesnelerini görmek, düzenlemek için ; komut
satırında guide yazarak veya File>New>GUI sekmesi Örnek: Bir figure penceresinde adı eksen olan bir eksen
tıklanırsa; karşımıza aşağıdaki GUI (Grafiksel Arabirim) nesnesi ve yazi adında üzerinde Deneme yazan bir text
penceresi gelir. nesnesi açıp sonra bunları teker teker silen komutları
Bu arabirim penceresinde aşağıdaki, uicontrol yazalım.
nesnelerini oluşturabiliriz. Çözüm:
a) pushbutton (komut düğmesi) eksen=axes
b) togglebutton (açma-kapama düğmesi) yazi=uicontrol('style','text','string','Deneme')
c) radiobutton (radyo düğmesi) Şimdi de teker teker silelim:

24 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
delete(yazi) b) set(0,'units','centimeters');set(0,'pointerlocation',[3 5]);
delete(eksen)
Grafik Nesneleri ve Özellikleri: 2. figure Nesnesi ve Özellikleri:
1. root Nesnesi Programların grafik arabirimlerini, verilerin
Matlab'da hiyerarşinin en tepesinde olan nesnesidir.Bu görselleştirilme işlemlerinin üzerinde yapmayı sağlayan
nesne Matlab'ı çalıştırdığımızda otomatik olarak oluşur. şekil penceresi nesnesidir.
Bu nedenle root nesnesinin tutamacı (handle) yani
tanımlayıcı sayısı daima 0 dır.Bu nesne ekranımızın figure Nesnesinin Bazı Özellikleri:
çözünürlüğü, boyutu, o anda açık bulunan pencerelerinin Children: Şekil penceresinin çocuk (axes, uicontrol,
(children) tanımlayıcı sayıları, farenin ekrandaki uimenu, uicontextmenu gibi) nesnelerinin tutamaçlarını
konumunu ve Matlab komut penceresi gibi bir çok ayarı tutan dizidir.
tutan bir nesnedir. Color: Şekil penceresinin zemin rengini düzenlemeye
Örnek: yarayan 1x3 boyutlu bir dizidir.Dizinin elemanları yerine
a) root nesnesinin tüm özelliklerini ve o andaki ayarlarını 0 ile 1 arasında değişen reel sayılar yazılabilir ki bu
görüntülemek için; değerler tanımlanan rengin RGB renk oranlarını
b) root nesnesinin tüm özelliklerini ve olası ayarları nı gösterir.[0 0 0] değeri siyah rengi, [1 1 1] değeri beyaz
görüntülemek için komut satırına hangi komut rengi, [1 0 0] değeri kırmızıyı, [0 1 0] değeri yeşili, [0 0 1]
yazılmalıdır? değeri maviyi, [0.6 0.7 0.8] değeri açık maviyi belirtir.
Menubar: Şekil penceresinin üst tarafında bulunan
Çözüm: a) get(0) b) set(0) standart menüleri kapatıp-açmaya yarar.
Name: ekil penceresi üstündeki başlığı düzenlemeye
root Nesnesinin Bazı Özellikleri: yarayan özelliktir.
CurrentFigure Aktif olan pencere tutamacını tutan NextPlot: Grafik işlemleri aktif pencere üzerinde nasıl
özelliktir. gerçekleşeceğini belirleyen özelliktir.Değeri add,
Format: Komut satırında sayıların nasıl görünmesi replace veya replacechildren olabilir
gerektiğini belirleyen özelliktir. NumberTitle:. Şekil penceresinin üst bölümündeki şekil
FormatSpacing: Komut satırında satırlar arası penceresi numarasının görünüp görünmemesini
boşlukları tutan özelliktir.Değeri loose veya compact sağlayan özelliktir.Değeri off yaparak numaranın
olabilir, loose değeri verilirse satır aralrı boşluklar görünmemesi, on yaparak görünmesi sağlanır.
bulunur, compact değeri verilirse boşluk olmaz. Pointer: Pencere üzerine geldiğinde, farenin biçimini
Language: Đşletim sisteminin bölgesel ayarlardaki belirleyen özelliktir.Bu değerler crosshair , fullcrosshair ,
tanımlanan dili tutan özelliktir. arrow, ibeam , watch ,right,bottom, circle , cross gibi
PointerLocation: Farenin ekrandaki o andaki olabilir.
konumunu tutan özelliktir. Position: Şekil penceresinin ekran üzerindeki
Units: Uzunluk ve konum bilgilerinin birimini tutan konumunu belirleyen 1x4 boyutlu bir diziyi düzenleyen
özelliktir, centimeters, pixels , inches, characters ... gibi özelliktir.
değerler alabilir. Resize: Şekil penceresinin boyutlarını değiştirmeye
Tag: Đstenen herhangi bir metni tutmaya yarayan yarayan özelliktir.Değeri on olursa şekil penceresi
kullanıcıya ayrılmış bir özelliktir. boyutları değiştirilebilir, off olursa değiştirilemez.
UserData: Đstenen bir veriyi (dizi, hücre, yapı, sınıf vs.) Units: Şekil penceresinin uzunluk ve konum bilgilerinin
tutmaya yarayan kullanıcıya ayrılmış bir özelliktir. birimini tutan özelliktir, centimeters, pixels , inches,
characters ... gibi değerler alabilir.
Örnek:
Komut satırında sayıların a) Noktadan sonra 4 3. uicontrol Nesnesi
basamaklı (tek hassasiyetli) b) Noktadan sonra 14 Bir şekil penceresi üzerinde kullanıcı ile iletişim
basamaklı (çift hassasiyetli) c) Rasyonel (kesir) olarak sağlayacak bazı nesneler oluşturmaya ve düzenlemeye
görünmelerini sağlayan komuları yazalım. yarar.uicontrol nesneleri aşağıda verilmiştir:
a) pushbutton (komut düğmesi)
Çözüm: a) set(0,'format','short') b) set(0,'format','long') b) togglebutton (açma-kapama düğmesi)
c) set(0,'format','rational') c) radiobutton (radyo düğmesi)
d) chekbox (onay kutusu)
Örnek: Ekran üzerindeki uzunluk birimini a) bildiren e) edit (metin düzenleme kutusu)
b) cm c) pixel olarak düzenleyen komutu yazalım. f) text (sabit metin kutusu)
g) listbox (liste kutusu)
Çözüm: a) get(0,'units') b) set(0,'units','centimeters') h) popupmenu (açılır liste kutusu)
c) set(0,'units','pixels') ı) slider (kaydırma çubuğu)
i) frame (çerçeve)
Örnek: Farenin ekrandaki konumunu a) bildiren
b) Ekranın sol alt köşesinden yatay olarak 3 cm sağ, uicontrol Nesnesinin Bazı Özellikleri:
düşey olarak 5 cm cm yukarıda olmasını sağlayan BackGroundColor: Nesnenin arka plan rengini
komutu yazalım. belirlemeye yarayan özelliktir.

Çözüm: a) get(0,'pointerlocation')

25 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
Callback: Kontrol düğmesinin fare ile tıklandığında uimenu Nesnesinin Bazı Özellikleri:
tetiklenecek geri çağırmalı fonksiyonu belirleyen Callback: Menü nesnesinin fare ile tıklanarak
özelliktir. seçildiğinde tetiklenecek geri çağırmalı fonksiyonu
CData: Komut düğmesi ya da açma-kapama düğmesi belirleyen özelliktir.
üzerinde görüntülenebilecek gerçek renklerden oluşan Checked: Menü seçeneği tıklandığında, sol tarafında
resmi tanımlayan bir matristir. seçildiğine dair onay işareti belirlenmesini sağlayan bir
Enable: Kontrolün kullanılıp-kullanılamayacağını özelliktir.Değeri on olduğunda onay işareti konur, off
belirleyen özelliktir.Değeri on ise düğme kullanılabilir ve olduğunda konmaz.
normal renktedir, off ise düğme kullanılamaz ve rengi Enable: Menü seçeneğinin kullanılıp kullanılamayaca-
siliktir, inactive ise düğme yine kullanılamaz fakat rengi ğını belirleyen özelliktir.Değeri on ise seçenek
normaldir. kullanılabilir ve normal renktedir, off ise düğme
FontAngle: Nesnenin string özelliğinin tutuğu yazı kullanılamaz ve rengi siliktir.
biçimini düzenlemeye yarayan özelliktir, .normal,italic ForeGroundColor: Menü seçeneğinin string (etiket
veya oblique değerlerini alabilir. yazısının) rengini belirlemeye (RGB kodlarını tutan 1x3
FontName: Nesnenin string özelliğinin tutuğu yazı boyutunda bir dizi) yarayan özelliktir.
fontunu düzenlemeye yarayan özelliktir.. Label: Menü seçeneğinin üstünde görüntülenecek
FontSize: Nesnenin string özelliğinin tutuğu yazı tipi metni belirlemeye yarayan özelliktir.Menü açıkken, kısa
boyutunu düzenlemeye yarayan özelliktir. yoldan çalışmasını istersek, ilgili kısayol karakterinin
FontUnits:.Fontsize özelliği ile belirlenen yazıtipi önüne & işareti konmalıdır.
büyüklüğünü birimini belirlemeye yarayan Position: Menü seçeneğinin, ebeveyni içerisindeki
özelliktir.Değeri centimeters, inch, points veya göreceli pozisyonunu belirlemeye yarayan özelliktir.Đlk
normalized olabilir. menü değeri 1 dir.
FontWeight: Nesnenin string özelliğinin tutuğu yazı Separator: Menü nesnesi üzerinde bir ayırıcı işaret
tipinin ağırlığını düzenlemeye yarayan özelliktir.normal, konulmasını düzenler.Değeri on ise ayırıcı işaret konur,
bold veya light olabilir off ise konmaz.
ForeGroundColor: Nesnenin string özelliğinin tutuğu Tag: Menüye bir etiket ismi vermeye yarayan
yazının rengini (RGB) tutan 1x3 boyutunda bir diziyi özelliktir.Bu özellik sayesinde nesne findobj komutuyla
belirlemeye yarar. bulunabilir.
HorizontalAlignment: Metin kutusu ve statik metin Visible: Menünün görünüp-görünmemesini düzenleyen
nesnelerinin etiket metnini hizalamaya yarayan özelliktir.Değeri on ise menü görünür, off ise görünmez.
özelliktir.left, right veya center değerlerini alabilir.
Position: Nesnenin şekil penceresi üzerindeki Örnek: Tutamac ismi hesap , etiket ismi Hesapla , şekil
pozisyonunu belirleyen 1x4 boyutlu bir diziyi penceresinde ana menünün 3. sırasında bulunan ve
düzenlemeye yarayan özelliktir. kısayol tuşu H harfi olan bir menü oluşturalım.
String: Nesnenin üzerinde bulunması gereken yazıyı Çözüm:
düzenlemeye yarayan özelliktir. hesap=uimenu('label','&Hesapla','position',3,
Style: Kontrol nesnesinin tipini belirleyen özelliktir. 'parent',figure);
Değeri pushbutton olduğunda nesne komut düğmesi,
togglebutton olduğunda nesne açma-kapama düğmesi, 5. axes Nesnesi
radiobutton olduğunda nesne radyo düğmesi, Üzerinde çizim, animasyon, resim ve video
chekbox olduğunda nesne onay kutusu, görüntüleme gibi bir çok işlemler yapmaya yarayan
edit olduğunda nesne metin düzenleme kutusu, nesnedir.
text olduğunda nesne sabit metin kutusu,
listbox olduğunda nesne liste kutusu, axes Nesnesinin Bazı Özellikleri:
popupmenu olduğunda nesne açılır liste kutusu, Box: Grafiğin, iki boyutlu çizimlerde bir dikdörtgen
slider olduğunda nesne kaydırma çubuğu, içinde, üç boyutlu çizimlerde bir küp içinde görünüp
frame olduğunda nesne çerçeve nesnesine dönüşür. görünmemesini sağlayan özelliktir.Değeri on ya da off
Tag: Nesneye bir etiket ismi vermeye yarayan olabilir.
özelliktir.Bu özellik sayesinde nesne findobj komutuyla CameraPosition: Eksen koordinatlarında kameranın
bulunabilir. sahneyi gördüğü pozisyonu tanımlayan 1x3 lük bir diziyi
TooltipString: Fare nesnenin üzerine geldiğinde bir belirleyen özelliktir.
ipucu ya da açıklama metni görüntülemeye yarayan CameraPositionMode: Kamera pozisyonu ayarını
özelliktir. düzenleyen özelliktir.Değeri auto olduğunda Matlab
Units: Nesnenin uzunlık ile ilgili birimini düzenlemeye pozisyonu otomatik belirler, manual olduğunda ise
yarayan özelliktir.Değeri centimeters, pixels , inches, CameraPosition daki değer geçerlidir.
characters ... olabilir. CameraTarget: Eksen koordinatlarında kameranın
baktığı noktayı tanımlamaya yarayan 1x3 lük diziyi tutan
4. uimenu Nesnesi özelliktir.
Şekil penceresi üzerinde oluşturulabilecek menü CameraTargetMode: Kamera hedefini tayin etmeye
nesneleridir.Üst seviye ve alt seviye menüler olabilir.Üst yarayan özelliktir.Değeri auto olduğunda Matlab kamera
seviye menülerinin ebeveyni (parent) şekil penceresidir, hedefini otomatik belirler, manual olduğunda ise
alt seviye bir menünün ebeveyni ise başka bir menüdür. CameraTarget daki değer geçerlidir.

26 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
CameraUpVector: Kameranın CameraTarget ve NextPlot: Grafik işlemlerinin aktif eksen üzerindenasıl
CameraPosition ile tayin edilen bakış doğrultusu gerçekleşeceğini belirleyen özelliktir.Üç farklı değer
etrafındaki dönmeyi belirleyen 1x3 lük vektördür. alabilir bunlar: add,replace ve replacechildren dir.
CameraUpVectorMode: Kameranın bakış doğrultusu Position: Eksen nesnesinin şekil penceresi üzerindeki
etrafındaki dönmesini tayin etmeye yarayan pozisyonunu belirleyen 1x4 boyutlu bir diziyi
özelliktir.Değeri auto olduğunda Matlab kameranın bakış düzenlemeye yarayan özelliktir.
doğrultusu etrafındaki dönmeyi otomatik belirler, manual Projection: Eksen üzerindeki grafiğin üç boyutlu
olduğunda ise CameraUpVector daki değer geçerlidir. görüntüleme yöntemini belirleyen özelliktir.Đki değer
CameraViewAngle: Görme alanını belirleyen açıdır.0° alabilir, bunlar: ortographic ve perspective dir.
ile 180° arasında bir de ğer olabilir. Tag: Eksen nesnesine bir etiket ismi vermeye yarayan
CameraViewAngleMode: Görme alanını belirleyen özelliktir.get fonksiyonu ile değerini öğrenebilir set
açının modunu belirleyen özelliktir.Değeri auto fonksiyonu ile istediğimiz bir değeri atayabiliriz.
olduğunda Matlab kameranın görme açısını bütün Title:Eksenin başlık metninin tutamacıdır.
sahneyi görecek biçimde en küçük açıya ayarlar, Units: Eksen nesnesinin uzunlık ile ilgili birimini
manual olduğunda ise CameraViewAngle daki değer düzenlemeye yarayan özelliktir.Değeri centimeters,
geçerlidir. pixels , inches, characters ... olabilir.
Children: Eksen üzerinde oluştulmuş çocuk Visible: Eksen nesnesinin görünüp-görünmemesini
nesnelerinin (line, light, patch, surface, rectangle ...gibi) düzenleyen özelliktir.Değeri on ise eksen görünür, off
tutamaçlarını tutan dizidir. ise görünmez.
Color: Eksenin arka rengini tanımlayan 1x3 lük XColor, YColor, ZColor: x, y, z eksenlerinin renklerini
dizidir.Ayrıca değeri none de olabilir.Bu durumda eksen düzenleyen özelliktir.
şeffaflaşarak arkasındaki nesneleri de gösterir. XDir,YDir,ZDir: X,y,z eksen değerlerinin artış yönünü
DataAspectRatio: Eksen çizgilerinin (x, y ve z) belirler.Değeri normal ise artış normal yöndedir,
birbirlerine göre oranını belirleyen 1x3 lük bir diziyi tutan reverse ise artış ters yöndedir.
özelliktir. XGrid,YGrid,ZGrid: Çizimalanı eksen çizgilerine dik
DataAspectRatioMode: Eksen çizgilerinin birbiri ile ilgili yönde bölen çizgilerin (gridlines) görünüp
oranını belirlemeye yarayan özelliktir.Değeri auto görünmemesini belirleyen özelliktir.Değeri on ya da off
olduğunda Matlab eksen çizgililerinin birbirine oranını olabilir.
otomatik olarak ayarlar, manual olduğunda ise XLabel,YLabel,ZLabel: Eksen çizgi etiketlerini
DataAspectRatio daki değer geçerlidir. düzenlemeye yarayan özelliktir.
FontAngle: Eksen çizgilerinin etiketleri ve çentik XLim, YLim, ZLim: Eksenin x, y ve z çizgilerinin sayısal
değerleri için kullanılan yazı biçiminin eğimini aralıklarını belirleyen özelliktir.Örneğin x çizgisinin
düzenlemeye yarayan özelliktir, .normal,italic veya sayısal değeri 10 ile 120 arasında olmasını istersek;
oblique değerlerini alabilir. XLim özelliğinin değeri [10 120] olmalıdır.
FontName: Eksen çizgilerinin etiketleri ve çentik XLimMode, YLimMode, ZLimMode: Eksen çizgi
değerleri için kullanılan yazı fontunu düzenlemeye değerlerinin sayı aralıklarını düzenlemeye yarayan
yarayan özelliktir.. özelliktir.Değeri auto olduğunda Matlab eksen
FontSize: Eksen çizgilerinin etiketleri ve çentik değerleri çizgilerinin sayısal aralıkları otomatik olarak belirlenir,
için kullanılan yazı tipi boyutunu düzenlemeye yarayan manual olduğunda XLim, ZLim veya ZLim özelliğinin
özelliktir. değeri geçerlidir.
FontUnits:.Fontsize özelliği ile belirlenen yazıtipi XScale, YScale, ZScale: Eksen çizgilerinin sayısal
büyüklüğünü birimini belirlemeye yarayan ölçeğini belirlemeye yarayan özelliktir.Değeri linear
özelliktir.Değeri centimeters, inch, points veya olduğunda sayı artışı düzgün artar, log olduğunda
normalized olabilir. logaritmik artar.
FontWeight: Eksen çizgilerinin etiketleri ve çentik
değerleri için kullanılan yazı tipinin ağırlığını Örnek: Adı eksen olan, şekil penceresinin sol alt
düzenlemeye yarayan özelliktir.normal, bold veya light köşesinden yatay ve düşey olarak 1 cm, 1 cm uzaklıkta
olabilir olan ve yatay uzunluğu 8 cm düşey uzunluğu 5 cm olan
GridLineStyle: Çizim alanını eksen çizgilerine dik olarak bir eksen nesnesi oluşturalım.
bölen çizgilerin (grid lines) stilini belirleyen
özelliktir.Değeri; -, --, :, -. ve none olabilir. Çözüm:
Layer: Eksen çizgilerinin eksen çizim alanının üst ya da eksen=axes('units','centimeters','position',[1 1 8 5]);
alt tarıfında olmasını sağlayan özelliktir.Değeri top veya
bottom olabilir. Örnek: Bir önceki örnekte tanımlanan eksen adlı eksen
LineStyleOrder: Çoklu bir grafik çizimi yapıldığında, nesnesinin zemin rengini [0.3 0.4 0.5] kodlu (lacivert) ,
sırasıyla grafik çizgilerini belirlemeye yarayan yapan komutu yazalım.
özelliktir.Örneğin ilk grafik * lardan, ikincisi - lerden
üçüncüsü + lardan oluşması isteniyorsa; bu özelliğe Çözüm: set(eksen,'color',[0.3 0.4 0.5])
atanan değer '*|-|+' olmalıdır.
LineWidth: Eksen çizgilerinin kalınlıklarını düzenlemeye Örnek: Eksen başlığına Grafik başlığını verelim.
yarayan özelliktir.Varsayılan değer 0.5 noktadır. Çözüm:
baslik=get(eksen,'title');set(baslik,'string','Grafik');

27 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
Örnek: Grafiğin x ekseninin etiketini x Ekseni, y a) Đndeksi Resimler: Đndeksli resimler, resmin
ekseninin etiketini de y Ekseni olarak düzenleyen ölçülerinde bir matris ile birlikte mx3 boyutlu bir renk
komutları yazalım. haritası matrisi (Colormap) ile belirlenir.Resmi oluşturan
renk sayısı, renk haritasındaki satır sayısı kadardır.
Çözüm:
xetiket=get(eksen,'xlabel');yetiket=get(eksen,'ylabel'); b) Gri Tonlu Resimler: Bu resimler de, indeksli resimler
set(xetiket,'string','x Ekseni');set(yetiket,'string','y Ekseni'); gibidir, ancak renk haritası 2x3 boyutunda bir matristir.

Örnek: x ekseninin sayı değerlerini 5 ile 25 arasında, y c) Gerçek Renkli Resimler: 150x140 ebadında bir
dekseninin sayı değerlerini de -10 ile 50 değerleri gerçek renkli resim için Matlab 140x150x3 ölçülerinde bir
arasında düzenleyelim. matris ile temsil edilir.

Çözüm: set(eksen,'xlim',[5 25],'ylim',[-10 50]) image Nesnesinin Bazı Özellikleri:

Örnek: Eksen çizgi kalınlıklarını 2 nokta yapan komutu AlphaData: Resim ölçülerinde ve resmin her bir pixelinin
yazalım. şeffaflığını tutan bir dizidir.
AlphaDataMapping: AlphaData dizisinin nasıl
Çözüm: set(eksen,'linewidth',2) yorumlanarak kullanılacağını belirleyen özelliktir.
CData: Đndeksli resimlerde mxn, gerçek renkli
Örnek: x ekseni sayı değerlerini 5 ile 25 arasında 2 şer resimlerde ise mxnx3 boyutlarında bir matristir
birim aralıklarla, y ekseni sayı değerlerini de -10 ile 50 Parent:. Resim nesnesinin ebeveynini belirleyen
arasında 3 er birim aralıklarla işaretleyen komutu özelliktir.Daima ebeveyni eksen nesnesidir.Bu durumda
yazalım. parent özelliği resim nesnesinin üzerinde
Çözüm: set(eksen,'xtick',[5:2:25],'ytick',[-10:3:50]) görüntülenecek eksen nesnesinin tutamacını
belirlemeye yarar.
Örnek: Kamera pozisyonunu x=1, y=0, z=9 olacak Selected: Resmi seçili duruma getirmeye yarar.Değeri
biçimde düzenleyelim. on ise resim seçilir, off yapılırsa seçili durum iptal edilir.
SelectionHighlight: Seçili olan resmin kenarlarına 8
Çözüm: adet kulp ile görselleştirmesi sağlanır.Değeri on ise
set(eksen,'box','on');set(eksen,'cameraposition',[1 0 9]); resim kulp takılır , off yapılırsa kulp durumu iptal edilir.
Tag: Đmage nesnesine bir etiket ismi vermeye yarayan
Örnek: özelliktir.get fonksiyonu ile değerini öğrenebilir set
a) Ekranda y= 25 - x² fonksiyonun (yarım çember) fonksiyonu ile istediğimiz bir değeri atayabiliriz.
grafiğini çizdirelim. Type: Grafik nesnesinin türünü tutan özelliktir, her
b) Grafiğin tam bir çember parçası değil, U harfine zaman değeri image olur.
benzediğini görürüz.Şekil penceresinin boyutlarını Visible: Resim nesnesinin görünüp-görünmemesini
kareye benzettiğimizde ancak yarım çember tam olarak düzenleyen özelliktir.Değeri on ise resim görünür, off
görünür.Sebebi de şekil penceresine göre değişen ise görünmez.
dataaspectratio oranının 1 olmamasından XData: Resim nesnesini oluşturanCData dizisinin eksen
kaynaklanır.Yarım dairenin, şekil penceresinin nesnesinin x ekseni üzerinde hangi aralığa
boyutlarına bağımlı kalmaksızın tam olarak yarım daire konumlanacağını belirleyen 1x2 lik bir dizidir.Đlk değer
görünmesini sağlayan işlemleri yapalım. balangıç, ikinci değer de bitiş değerini temsil
eder.Varsayılan olarak bu değer [1 size(CData,2)] dir.
Çözüm: YData: Resim nesnesini oluşturanCData dizisinin eksen
a) x=-5:0.1:5;y=sqrt(25-x.^2);plot(x,y); nesnesinin y ekseni üzerinde hangi aralığa
b) sekil=get(0,'currentfigure'); konumlanacağını belirleyen 1x2 lik bir dizidir.Đlk değer
eksen=get(sekil,'currentaxes'); balangıç, ikinci değer de bitiş değerini temsil
get(eksen,'dataaspectratio'); eder.Varsayılan olarak bu değer [1 size(CData,1)] dir.
set(eksen,'dataaspectratio',[1 1 1]);
Not: Aynı işlemi axis equal komutuyla da yapabiliriz. Örnek: a) iflbmp.bmp adlı resim dosyası hakkında bilgi
edinelim
6. image Nesnesi b) Bu resim dosyasını okutalım ve ans değişkenini
Eksen nesnesi üzerinde resim dosyalarını inceleyerek dosyanın hangi tür resim dosyası olduğunu
görüntülemeye yarayan grafik nesnesidir.Matlab'da söyleyelim.
resimler indeksli (indexed) , gerçek renkli (true color) c) Bu resim dosyasını Matlab şekil penceresinde
veya gri tonlu (gray scale) olabilirler.Bir resmin ölçüleri görüntüleyelim.
genişlik ve yüksekliğine düşen piksel sayısı ile d) resume.tif adlı dosyayı okutarak res adlı değişkene
belirlenir.Örneğin 150x140 ölçülerinde bir resim nesnesi, atayalım.
yatay 150 piksel, düşey 140 piksel büyüklüğündedir.Bu e) res değişkenini incelediğimizde size değerinin
durumda bu resmi temsil edebilecek matris 150 satır, 3296x2528 olduğunu varsayalım.Buradan resim dosyası
140 sütunlu yani 140x150 mertebesindedir. özellikleri hakkında ne diyebiliriz?

28 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
Çözüm: d elmas (diamond) işareti
a) imfinfo('iflbmp.bmp') ^ yukarı gösteren üçgen işareti
b) imread('iflbmp.bmp') komutu sonucu workspace v aşağı gösteren üçgen işareti
(çalışma alanında) oluan ans değişkeninin size > sağa doğru gösteren üçgen işareti
(boyutu) değerini incelersek; 239x324x3 olduğunu < sola doğru gösteren üçgen işareti
görürüz.Buradan resim dosyasının 324 piksel yatay, 239 p 5 noktalı (pentagon) yıldız işareti
düşey piksel boyutlarında ve gerçek renkli (true color) h 6 noktalı (hexagram) yıldız işareti
olduğunu anlayabiliriz. none işaretsiz
c) imageview('iflbmp.bmp');
d) res=imread('resume.tif'); MarkerEdgeColor: Çizgi ile çizilecek kapalı bölge
e) Resim dosyasının 2528 piksel yatay, 3296 düşey çeperinin (sınırının) rengini belirleyen özelliktir.
piksel boyutlarında olduğunu anlayabiliriz. MarkerFaceColor: Çizgi ile çizilecek kapalı bölgenin
res değikenini görüntülemeye çalıştığımızda, dosyanın rengini belirleyen özelliktir.
içinin 0 ve 1 lerden olutuğunu görebiliriz.Bu da resmin 0 MarkerSize: Çizgi işaretlaerinin büyüklüğünü belirleyen
(siyah), 1 (beyaz) renklerden oluşan bir resim olduğunu özelliktir.Matlab bu büyüklüğü 6 olarak varsayar.
söyleyebilirz. Selected: Çizgiyi seçili konuma getirmeye yarayan
özelliktir.Değeri on veya off olabilir.
Örnek: a) bmp resim formatlı iflbmp.bmp resim SelectionHighlight: Selected ile seçilmiş çizginin
dosyasını ve gif formatlı iflgif.gif adlı resim dosyalarını etrafına 8 adet kulp koymaya yarayan özelliktir.Değeri
sırasıyla res1 ve res2 değişkenlerine, colormap (renk on veya off olabilir.
haritalarını) da harita1 ve harita2 değişkenlerine Visible: Çizgi nesnesinin görünüp-görünmemesini
atayalım. düzenleyen özelliktir.Değeri on ise çizgi görünür, off ise
b) harita1 ve harita2 renk haritalarını incelediğimizde, görünmez.
harita1 değikeninin boş bir dizi, harita2 değişkeninin ise XData, YData, ZData: Çizginin x, y, z koordinatlarını
256x3 boyutlarında bir dizi olduğunu görebiliriz.res1 ve belirleyen vektörlerdir.
res2 değikenlerini resim olarak şekil penceresinde
inceleyelim.res1 in normal görüntülenmesine rağmen, Örnek: (20,30) noktasını grafik olarak gösteren komutu
res2 nin düzgün görüntülenmediğini görürüz.res2 nin yazalım.
düzgün görünmesi için ne yapılması gerektiğini
araştıralım. Çözüm: line(20,30);
Çözüm: Örnek: y=x^2-8x+5 fonksiyonunun grafiğini x değerlerini
a) [res1,harita1]=imread('iflbmp.bmp'); [-5 15] aralığında, 0.01 artış ile çizdiren komutları
[res2,harita2]=imread('iflgif.gif'); yazalım.
b) Renk haritası olan resim dosyalarını düzgün
görüntülemek için imageview fonksiyonunu kullanırken Çözüm:
ikinci parametre olarak renk haritası dosyasını x=-5:0.01:15;y=x.^2-8*x+5; line(x,y);
belirtmektir.O halde komutu aşağıdaki gibi kullanmalıyız: Not: line(x,y); yerine plot(x,y); fonksiyonunu da
imageview(res4,harita4); kullanabilirdik.
7. line Nesnesi Örnek:
a) f(x)=x^3-4x+7 fonksiyonu ile g(x)=xsinx-5cosx
Eksen (axes nesnesi) üzerinde verilen x, y (ve z) fonksiyonlarının grafiklerini, x değerleri [-5 5] arasında
koordinatları noktayı belirleyen grafik çizdiren komutları yazalım.
nesnesidir.Noktaların birleşiminden de çizgi (line) b) f(x) in grafiğinin rengini mavi, g(x) in grafiğini kırmızı
oluşur.line nesnesi yardımıyla çizginin, rengi, biçimi, renkte olmasını sağlayalım.
kalınlığı ... gibi bir çok özelliği düzenlenebilir. c) f(x) in grafiğinin çizgi biçimini :, g(x) in çizgi biçimini -.
lmasını sağlayalım.
line Nesnesinin Bazı Özellikleri: d) Çizgi kalınlıklarını 2 şer birim ve 1. grafiği yukarıya
Color: line nesnesinin rengini düzenlemeye yarar. bakan üçgenlerle ,2. grafiği yıldızlarla işaretleyelim.
LineStyle: Çizgi stilini belirleyen özelliktir.Alabileceği Çözüm:
değerler; -, --, -., :, ve none dir.Değeri none olursa çizgi a) x=-5:0.1:5;
görünmez. f=x.^3-4*x+7;g=x.*sin(x)-5*cos(x);
LineWidth: Çizginin kalınlığını düzenleyen özelliktir. gra1=line(x,f);
Marker: Çizginin işaretini belirleyen özelliktir.Marker ile gra2=line(x,g);
ilgili değerler ve anlamı aşağıdaki tabloda gösterilmiştir. Not:gra1 ve gra2 tanımlamaları yapılmadan da grafikler
Değer Anlamı sadece line(x,f);line(x,g); komutları ile
+ + işareti çizdirilebilir.Ancak grafiklerde başka değişiklikler
o daire işareti yapacağımızdan dolayı gra1 ve gra2 değişkenlerine
* yıldız işareti (tutamaçlarına) ihtiyaç duyarız.
. nokta işareti b) set(gra1,'color','b');set(gra2,'color','r');
x çarpı işareti c) set(gra1,'linestyle',':');set(gra2,'linestyle','.-');
s kare (square) işareti d) set(gra1,'linewidth',2,'marker','^');
29 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni
Matlab Ders Notları
set(gra2,'linewidth',2,'marker','p'); patch Nesnesinin Bazı Özellikleri:
CData: Yama rengini tanımlayan özelliktir.Her bir
8. rectangle Nesnesi bağlantı noktası (vertex), yüz (face) veya bütün yama
(patch) için ayrı ayrı renk tanımlanabilir.
Eksen (axes nesnesi) üzerinde belirlenen koordinat ve DiffuseStrength: Yama üzerine düşen ışığın yayılma
ölçülerde dikdörtgen çizmeye yarayan grafik nesnesidir. yoğunluğunu belirten 0 ile 1 arasında bir sayıdır.
EdgeAlpha: Yamanın kenar çizgilerinin şeffaflığını
rectangle Nesnesinin Bazı Özellikleri: belirleyen 0 ile 1 arasında değişen sayılara karşılık
Curvature: Dikdörtgenin köşelerini eğriye dönüştürme gelen özelliktir.
oranlarını belirlemeye yarayan 1x2 lik bir dizidir .Sayılar EdgeColor: Yamanın kenar çizgilerinin rengini
0 ile 1 arasında değişir.[0 0] dizisi dikdörtgeni korur, [1 1] belirleyen özelliktir.
dizisi elipse dönütürür, dikdörtgen kare ise çembere FaceAlpha: Yama yüzlerinin şeffaflığını belirleyen 0 ile
dönüşür. 1 arasında değişen sayılara karşılık gelen özelliktir.
EdgeColor: Dikdörtgenin kenar çizgisinin (sınırının) FaceColor: Yama yüzlerinin rengini belirleyen özelliktir.
rengini belirleyen özelliktir. Faces: Bir yüzeyin vertices dizisinin hangi satırındaki
FaceColor: Dikdörtgenin iç bölgesinin rengini belirleyen bağlantı noktalarından oluşturulacağını belirleyen
özelliktir. özelliktir.
LineStyle: Dikdörtgenin kenar stilini belirleyen LineStyle, LineWidth: rectangle nesnesinde açıklanan
özelliktir.Alabileceği değerler; -, --, -., :, ve none özelliklerle aynıdır.
dir.Değeri none olursa dikdörtgen görünmez. Marker: Bağlantı noktalarının işaretini belirleyen
LineWidth: Dikdörtgenin kenar kalınlığını düzenleyen özelliktir.
özelliktir. MarkerEdgeColor: Bağlantı noktalarında görünmesi
Position: Dikdörtgenin şekil penceresi üzerindeki istenen kapalı şekildeki işaretlerin çeper (sınır) rengini
pozisyonu ve ölçülerini belirleyen özelliktir.Đlk iki değer belirleyen özelliktir.
dikdörtgenin sol alt köesinin şekil penceresinin sol alt MarkerFaceColor: Bağlantı noktalarında görünmesi
köesine göre koordinatlarını, üçüncü sayı dikdörtgenin istenen kapalı şekildeki işaretlerin iç bölgesi rengini
yatay uzunluğunu dördüncü sayı da düşey uzunluğunu belirleyen özelliktir.
belirtir. MarkerSize: Bağlantı noktalarında görünmesi istenen
Selected, SelectionHighlight, Visible: Bu özellikler de kapalı şekildeki işaretlerin büyüklüğünü belirleyen
line nesnesinin özellikleri ile aynıdır. özelliktir..Matlab bu büyüklüğü 6 olarak varsayar.
Selected,SelectionHighlight,Visible: Dikdörtgen
Örnek: Tutamaç değeri dd olan, şekil penceresinin sol nesnesindeki özelliklerle aynıdır.
alt köesine göre koordinatları 5 5, yatay uzunluğu 6 XData, YData, ZData: Bağlantı noktalarının x, y, z
düşey uzunluğu 4 birim olan kırmızı kenarlı dikdörtgeni koordinatlarını belirleyen vektörlerdir.
çizdiren komutu yazalım..
Çözüm:dd=rectangle('position',[5 5 6 4],'edgecolor','r'); Örnek: Düzlemde adı yama olan, (1,3), (2,5), (4,7),
(7,5), (3,2) koordinatlı noktalardan oluan yama esnesini
Örnek: Eksen nesnesinin boyutları dikdörtgenin oluşturalım.
boyutlarında oluştuğu için, dikdörtgen ekseni
kapladı.Eksen nesnesinin boyutlarını, x ekseni 15 birim, Çözüm: Önce x ve y koordinatlarının dizilerini oluturalım
y ekseni 10 birim olarak düzenleyelim x=[1;2;4;7;3];y=[3;5;7;5;2];
Yama düzlemsel olacağından z koordinatları 0 lardan
Çözüm: Bunun için rectangle nesnesinin ebeveyni olan oluşacaktır.
eksen nesnesinin tutamacına ihtiyacımız var.Daha sonra z=[0;0;0;0;0];
xlim ve ylim değerlerini set fonksiyonu ile Sonra yamayı oluşturan komutu yazabiliriz.
düzenleyebiliriz.Buna göre komut şöyle olmalıdır: yama=patch('xdata',x,'ydata',y,'zdata',z);
set(get(dd,'parent'),'xlim',[0 15],'ylim',[0 10]); Not 1) z vektörünü; z=zeros(size(x,1),1); biçiminde de
oluşturabiliriz.
9. patch (yama) Nesnesi Not 2) Aynı yamayı, köşe koordinatlarından oluşan k
matrisinde tutarak ta gerçekleştirebiliriz.
Bir çok kenarlardan oluşan iki veya üç boyutlu k=[1 3 0;2 5 0;4 7 0;7 5 0;3 2 0];
karmaşık şekli görselleştirmeye yarayan, Matlab'ın en yama=patch('vertices',k);
zor kullanılan grafik nesnesidir.Bu nesne aslında çok
kenarlıdır.Bir yama en az üç olmak üzere bir çok Örnek: Önceki örnekte oluşturulan tutamaç adı yama
bağlantı noktasından (vertices) oluşur.Yama olarak olan yamanın, dış çeper rengini kırmızı, iç bölge rengini
adlandırılmasının sebebi, sadece düzlemsel değil üç mavi renkli yapalım.
boyutlu olabilmesidir.Đlk bağlantı noktası ile son bağlantı
noktası birleştirildiğinde yama tamamlanmış Çözüm: set(yama,'edgecolor','r','facecolor','b');
olur.Yamanın iç bölgesi ise yüz (face) olarak adlandırılır.
10. surface Nesnesi

x ve y değişkenlerine bağlı z fonksiyonunun


oluşturduğu ( z=f(x,y) ) yüzeyi görselleştiren nesnedir.

30 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
surface Nesnesinin Bazı Özellikleri: Örnek: Klavyeden girilen iki sayının çarpımını, beyaz
CData, EdgeAlpha, EdgeColor, FaceAlpha, zeminde , mavi renkli olarak; örneğin sayılar, -13 ve 7
FaceColor, LineStyle, LineWidth, Marker, girilmişse; figure penceresinde -13 x 7 = 91 biçiminde
MarkerSize, Selected,SelectionHighlight,Visible, yazdıran bir program yazalım.
XData, YData, ZData: Bu özellikler patch nesnesinin
özellkileri ile aynıdır. Çözüm:
Vertices: Yamanın bağlantı noktalarını koordinatlarını function ikisayicarpimi;
sekil=figure('units','centimeters','position',[5 8 15 10]);
tutan, (x, y, z) üçlülerinin matrisi.
sorular={'1. Sayı: ','2. sayı'};
Örnek: cevaplar=inputdlg(sorular);
Örnek: Bu kadar öğrendiklerimizle, basit bir grafik sayi1=cevaplar{1};sayi2=cevaplar{2};
arabirimli program yazalım.Sol alt köşesi, ekranın sol alt sayi1=str2num(sayi1);sayi2=str2num(sayi2);
köşesinden yatay uzaklığı 5 cm, düşey uzaklığı 8 cm, carpim=sayi1*sayi2;carpim=num2str(carpim);
yatay uzunluğu 15 cm, yüksekliği 10 cm olan sekil adlı
figure penceresinde, pencerenin sol alt köşesinden 1 yazi1=uicontrol('style','text','units','centimeters',
cm yatay, 5 cm düşey uzaklığında, 10 cm uzunluğunda, 'position',[1 5 2 1], 'fontsize',20,'backgroundcolor','w',
1 cm yüksekliğinde mesaj adlı static text nesnesine, 'foregroundcolor','b'); set(yazi1,'string',sayi1);
20 punto büyüklüğünde Đzmir Fen Lisesi yazdıran yazi2=uicontrol('style','text','units','centimeters',
'position',[3 5 1 1], 'fontsize',20,'backgroundcolor','w',
program yazalım. 'foregroundcolor','b'); set(yazi2,'string','x');
yazi3=uicontrol('style','text','units','centimeters',
Çözüm: 'position',[4 5 2 1], 'fontsize',20,'backgroundcolor','w',
function mesaj; 'foregroundcolor','b'); set(yazi3,'string',sayi2);
sekil=figure('units','centimeters','position',[5 8 15 10]); yazi4=uicontrol('style','text','units','centimeters',
mesaj=uicontrol('style','text','units','centimeters','position', 'position',[6 5 1 1], 'fontsize',20,'backgroundcolor','w',
[1 5 10 1],'string','Đzmir Fen Lisesi','fontsize',20); 'foregroundcolor','b'); set(yazi4,'string','=');
yazi5=uicontrol('style','text','units','centimeters',
Klavyeden Giriş Alma: 'position',[7 5 5 1], 'fontsize',20,'backgroundcolor','w',
Bunun için inputdlg fonksiyonu kullanılır. 'foregroundcolor','b'); set(yazi5,'string',carpim);
Genel kullanımı aşağıdaki gibidir:
Örnek: Aşağıdaki şekil penceresinde görüldüğü gibi, 1.
girdiler={'1.girdi başlığı','2. girdi başlığı','3. girdi başlığı'...}; sayı ve 2. sayıyı girdikten sonra, Çarp butonuna
değişken=inputdlg(girdiler); basıldığında çarpım sonucunu, Sonuç bölümünde
görüntüleyen bir program yazalım.
Örnek: Klavyeden girilen bir mesajı, bir önceki örnekteki
figure penceresindeki pozisyonda, beyaz zeminde , mavi
renkli olarak yazdıran bir program yazalım.

Çözüm:
function mesaj2;
sekil=figure('units','centimeters','position',[5 8 15 10]);
mesaj={'Mesaj: '};
cevap=inputdlg(mesaj);
yazi=uicontrol('style','text','units','centimeters',
'position',[1 5 10 1], 'fontsize',20,'backgroundcolor','w',
'foregroundcolor','b'); set(yazi,'string',cevap);

Not: Matlab'da renk tanımlaması bir kaç yoldan


yapılabilir.Birincisi, RGB (Red Green Blue) renk
oranlarını 0 ile 1 arasında olacak şekilde sayılar vererek
oluşturmaktır.Đkinci olarak bazı özel renkleri, ister
tamamını istenirse baş harfini yazarak
tanımlamaktır.Örneğin; kırmızı 'red' veya 'r' ile, yeşil Çözüm:
'green' veya 'g' ile, mavi 'blue' veya 'b' ile,... belirtilebilir. function carpma;
Aşağıdaki tablo renk tanımlamaları için bir fikir verebilir: sekil=figure('units','centimeters','position',[1 1 12 8]);
uicontrol('units','centimeters','style','text',
RGB değeri Kısa Kul. Uzun Kul. 'position',[1 5.5 2 1],'string','1. Sayı');
uicontrol('units','centimeters','style','text',
[1 0 0] 'r' 'red'
'position',[3.5 5.5 2 1],'string','2. Sayı');
[0 1 0] 'g' 'green' uicontrol('units','centimeters','style','text',
[0 0 1] 'b' 'blue' 'position',[6 5.5 2 1],'string','Sonuç');
[1 1 0] 'y' 'yellow' sayi1=uicontrol('units','centimeters','style','edit','position',[
[1 0 1] 'm' 'magenta' 1 5 2 1],'backgroundcolor',[0 1 0],'string','','tag','sayi1');
[0 1 1] 'c' 'cyan' sayi2=uicontrol('units','centimeters','style','edit','position',
'w' 'white' [3.5 5 2 1],'backgroundcolor',[0 1 0],'string','','tag','sayi2');
[1 1 1]
sonuc=uicontrol('units','centimeters','style','text','position',
[0 0 0] 'black' [6 5 2 1],'backgroundcolor',[1 0 1 ],'tag','sonuc');
carpimdugmesi=uicontrol('units','centimeters',

31 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
'style','pushbutton','position',[3 3 3 1],'backgroundcolor', sayi2=findobj(gcbf,'tag','sayi2');y=get(sayi2,'string');
[1 1 1 ],'string','Çarp!','callback',@carpim); y=str2num(y);
function carpim(tutamac,bos); s=x-y;s=num2str(s); sonuc=findobj(gcbf,'tag','sonuc');
sayi1=findobj(gcbf,'Tag','sayi1');x=get(sayi1,'string'); set(sonuc,'string',s);
x=str2num(x);
sayi2=findobj(gcbf,'Tag','sayi2');y=get(sayi2,'string'); function carp(tut,bosver);
y=str2num(y); sayi1=findobj(gcbf,'tag','sayi1');x=get(sayi1,'string');
sonuc=findobj(gcbf,'tag','sonuc');s=x*y;s=num2str(s); x=str2num(x);
set(sonuc,'string',s); sayi2=findobj(gcbf,'tag','sayi2');y=get(sayi2,'string');
y=str2num(y);
Örnek: Aşağıdaki şekil penceresinde görüldüğü gibi, 1. s=x*y;s=num2str(s);sonuc=findobj(gcbf,'tag','sonuc');
sayı ve 2. sayıyı girdikten sonra, Topla!, Çıkar!, Çarp! set(sonuc,'string',s);
ve Böl! butonlarından hangisine basılırsa, ilgili işlemin
sonucunu Sonuç nesnesinde görüntüleyen bir program function bol(tut,bosver);
sayi1=findobj(gcbf,'tag','sayi1');x=get(sayi1,'string');
yazalım.Örneğin 1.sayı ve 2. sayı bölümlerine sırasıyla x=str2num(x);
120 ve -15 girilip Böl! butonuna basıldığında, Sonuç: sayi2=findobj(gcbf,'tag','sayi2');y=get(sayi2,'string');
bölümünde -8 görüntülensin. y=str2num(y);
s=x/y;s=num2str(s);sonuc=findobj(gcbf,'tag','sonuc');
set(sonuc,'string',s);

...
Derleme Nedir ve Matlab Dosyaları Nasıl Derlenir?

Bir programlama dili ile yazılan bir programın,


hazırlanan ortamdan bağımsız olarak çalıştırılması için,
yapılan işleme derleme (compile) denir.Böylece ilgili
dilde yazılan komut ve deyimler, işletim sisteminin
Çözüm: yorumlayıp çalışmasını sağlayan komutlar topluluğu
function dortislem; haline gelir ki, bu dosyaların genel olarak uzantısı exe
sekil=figure('units','centimeters', (executable) olur.
'position',[1 1 10 7],'color',[0.5 0.6 0.7]); Aynı mantıkla, Matlab dosyalarını da derleyerek,
uicontrol('units','centimeters','style','text', matlab ortamı dışında çalıştırılabilir dosyalar biçimine
'string','1. sayı ','position',[0.5 5.5 2 1]);
getirmek için derlemek gerekir.Ancak matlab m
uicontrol('units','centimeters','style','text',
'string','2. sayı: ','position',[3 5.5 2 1]); fonksiyon dosyaları derlenebilir, m dosyaları
uicontrol('units','centimeters','style','text', derlenemezler!
'string','Sonuç: ','position',[5.5 5.5 2 1]);
sayi1=uicontrol('units','centimeters','style','edit', Derleme komutu ve kullanımı:
'position',[0.5 5 2 1],'tag','sayi1'); Derleme komutu mcc (Matlab C/C++) dir.
sayi2=uicontrol('units','centimeters','style','edit', Komut satırında kullanımı aşağıdaki gibidir:
'position',[3 5 2 1],'tag','sayi2'); mcc -seçenek dosyaadı
sonuc=uicontrol('units','centimeters','style','text',
'position',[5.5 5 2 1],'tag','sonuc');
Burada dosyaadı yerine work klasörüne kaydedilmiş m
topla=uicontrol('units','centimeters','style','pushbutton', fonksiyon dosyasının adı yazılır.Seçenek yerine ise
'position',[0.5 3.5 2 1],'tag','topla', aşağıdaki
'string','Topla!','callback',@topla); ifadeler yazılabilir.
cikar=uicontrol('units','centimeters','style','pushbutton'
,'position',[3 3.5 2 1],'tag','cikar', Seçenek Açıklama
'string','Çıkar!','callback',@cikar); -m C tabanlı exe uzantılı uygulama
carp=uicontrol('units','centimeters','style','pushbutton', oluşturmaya yarar
'position',[5.5 3.5 2 1],'tag','carp',
-p C++ tabanlı exe uzantılı uygulama
'string','Çarp!','callback',@carp);
bol=uicontrol('units','centimeters','style','pushbutton','posi oluşturmaya yarar
tion',[8 3.5 2 1],'tag','bol','string','Böl!','callback',@bol); -B sgl C tabanlı grafik kütüphaneli ve grafik
arabirimli matlab uygulama dosyaları
function topla(tut,bosver); oluşturmaya yarar.
sayi1=findobj(gcbf,'tag','sayi1');x=get(sayi1,'string'); -B sglcpp C++ tabanlı grafik kütüphaneli ve grafik
x=str2num(x); arabirimli matlab uygulama dosyaları
sayi2=findobj(gcbf,'tag','sayi2');y=get(sayi2,'string'); oluşturmaya yarar.
y=str2num(y);
s=x+y;s=num2str(s);sonuc=findobj(gcbf,'tag','sonuc');
set(sonuc,'string',s); Örnek: Temiz ekrana Đyi Günler! Mesajı yazdıran bir
programı DOS ortamında çalışabilir biçime getiren
function cikar(tut,bosver); işlemleri yapalım.
sayi1=findobj(gcbf,'tag','sayi1');x=get(sayi1,'string');
x=str2num(x);

32 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni


Matlab Ders Notları
Çözüm: Önce aşağıdaki m dosyasını yazalım.
clc; disp('Đyi Günler!');
Bu dosyayı iyigun.m adıyla work dizinine
kaydedelim.Komut satırında iyigun yazıp (enter) tuşuna
basarak çalışma sonucunu görebiliriz.
Bu dosyayı mcc -m iyigun komutuyla derlemeye
çalıştığımızda; aşağıdaki hata mesajlarını görürüz:

mcc -m iyigun
??? Error: File "iyigun" is a script M-file and cannot be
compiled with the current Compiler.

Error in ==> C:\MATLAB6P5\toolbox\compiler\mcc.dll

Çünkü derlemeye çalıştığımız dosya bir m dosyasıdır, m


fonksiyon dosyası değil!Bunun için bu dosyayı m
fonksiyon dosyası biçimine getirmemiz gerekir.Bunun
için aşağıdaki basit eklentileri yapıp dosyayı yeniden
kaydedelim:

function laf=iyigun
clc; disp('Đyi Günler!');
laf=1;

Sonra mcc -m iyigun komutuyla derleyelim.Bu durumda


hiçbir hata mesajı ile karılaşmadan derlendiğini ve work
klasöründe iyigun.exe adlı dosyanın olutuğunu
görebiliriz.Dos ortamında iyigun yazıp entere basarak
dosyanın çalışmasını görebiliriz

33 Hasan KORKMAZ- Đzmir Fen Lisesi Matematik Öğretmeni

You might also like