Professional Documents
Culture Documents
all|any|fminbnd|diff|sum|ode|cos|tan
|acos|atan|feval|factorial|exp|log|abs
|round|rand|linspace|median|std|imr
ead|fopen|imwrite|eye|zeros|ones|pl
ot|fplot|ceil|surf|mesh|plot3|contour
|sin|sqrt|quad|trapz|find|plot|fprintf|
all|any|fminbnd|diff|sum|ode|cos|tan
MATLAB
|acos|atan|feval|factorial|exp|log|abs
|round|rand||linspace|median|std|im
read|fopen|imwrite|eye|zeros|ones|p
lot|fplot|ceil|surf|mesh|plot3|contour
|sin|sqrt|quad|trapz|find|plot|fprintf|
all|any|fminbnd|diff|sum|ode|cos|tan
|acos|atan|feval|factorial|exp|log|abs
|round|rand|linspace|median|std|imr
ead|fopen|imwrite|eye|zeros|ones|hl
nsz
Matlabn ok geni kullanm alan olmakla birlikte en ok ;grnt ileme, yapay sinir
alar,sinyal ileme, optimizasyon, veri elde etme, veritaban, szge tasarm, bulank mantk, sistem
kimliklendirme gibi alanlarda kullanlmaktadr. Bu kitapkta temel matlab kurallar anlatlacak ve
rnekler verilecektir. Ayrca elde edilen rneklerden grafikler karlarak, grafik izmek de
anlatlacaktr. Matlabda komut yazarken yaplan hatalardan bahsedilecektir. ncelikle matlabn ne
olduu, nasl alt anlatlacak okuyucunun kolayca anlamasna ve uygulamasna yardmc olacaktr.
Bu tutorial Ali Cafer grbz hocamn istei zerine yazdm. Tutorial yazmak iin ilk bata
matlab rendim. Tutorial iin 4-5 tane kitab taradm. Gerekli sorular zdm cevaplarn kontrol
ettim. Kendime gre uygun olanlar buraya ekledim. Genel olarak Amos Gilatn kitabn kullandm.
Onun kitabndaki zml ve zmsz rneklerin uygun olanlarn ekledim, bazlarn deitirdim.
Baka kitaplardan da rnekler eklemeye gayret ettim. Anlayacanz baya sk hazrlandm. Umarm
yardmc olur.
Kitaptaki rnekleri kontrol eden, imlasn dzelten, nerilerini eksik etmeyen arkadalarma
ok teekkr ediyorum. stek ve nerileriniz iin mail adresim aadadr.
Osman Tutaysalgr
osmantutaysalgir@hotmail.com
indekiler
Matlab nedir?. .........................................................................................................................................4
Matlaba giri ...........................................................................................................................................4
Matematiksel ifadeler ..........................................................................................................................4
Diziler ve Matrisler ..................................................................................................................................6
Matrislerle lgili Sorular ..................................................................................................................... 10
Matrislerde Matematiksel ilemler ................................................................................................... 13
Matrislerde lineer denklem zm ................................................................................................. 14
Matris elemanlar ile yaplan ilemler ............................................................................................... 15
Vektr analizleri iin matlab fonksiyonlar ........................................................................................ 15
Script dosyalar............................................................................................................................17
2 boyutlu grafikler ................................................................................................................................ 19
Birden fazla grafii ayn sayfa zerine izdirmek............................................................................... 22
Grafik zellikleri ................................................................................................................................. 23
Farkl grafikleri ayn sayfaya ayr ayr izdirmek ................................................................................ 24
Fonksiyon dosyalar ve Program yazma ............................................................................................... 25
Fonksiyon dosyalar ........................................................................................................................... 25
Fonksiyon dosyalar ile script dosyalar arasndaki farklar ................................................................ 27
Koul ifadeleri .................................................................................................................................... 32
Dngler ........................................................................................................................................... 32
3 boyutlu grafikler ................................................................................................................................ 37
izgi grafikleri .................................................................................................................................... 37
Mesh ve Yzey grafikleri .................................................................................................................... 38
Fonksiyonlarda saysal zmleme(Nmerik analiz)........................................................................... 44
Tek deikenli fonksiyonlarn zm ............................................................................................... 44
Maksimum ve Minimum deer bulma .............................................................................................. 46
ntegral zme ................................................................................................................................... 46
Adi diferansiyel denklem zm ..................................................................................................... 48
Genel sorular......................................................................................................................................... 51
Kaynaka ............................................................................................................................................... 54
Matlab nedir
MATLAB program, ilk olarak 1985 ylnda C.B. Moler tarafndan gelitirilmi olup, teknik
hesaplamalar ve matematiksel problemlerin zm ve analizi iin tasarlanm bir yazlm gelitirme
aracdr. Matlabn kullanld alanlar
MATLABin nasl bir yazlm olduunu anlamak iin onu ok gelimi zellikleri olan,
programlanabilen bir bilimsel hesap makinesine benzetebiliriz. MATLABde yazlan programlar ,
MATLABin kendine zg dili kullanlarak yazlr ve MATLAB iinden altrlr. Ayrca yazdnz
programlar DLL ve EXE olarak oluturabildiiniz gibi C/C++ kodlarna da evirebilirsiniz.
Matlaba giri
Bir komut yazp enter tuuna basldnda komut altrlr.Komut altrlrken sadece son
komut altrlr.Daha nde altrlan komutlarda herhangi bir deiiklik olmaz.
Bir satrda birden fazla komut yazlrken komutlar arasna virgl konur.Yazlan komut
altrldnda verilen kt yazlan komuta gre soldan saa doru yer alr.
altrlm komut zerinde deiiklikler yaplmaz.Ancak o komutu tekrar yazp dzeltmeler
yaplabilir.
Daha nce yazlan bir komuta yn tular ile yeniden ulalabilir.
Eer yazlacak komut 1 satra smyorsa komutun sonuna 3 nokta koyarak bir alt satra inilir
ve yazmaya devam edebilir.
Eer bir komutu yazldktan sonra noktal virgl konulursa yazdmz komutun kts ekrana
verilmez.
Yazdmz programla ilgili bir yorum eklenmek isternirse yazlanlardan nce % semboln
eklenir.Bu sembol sayesinde matlab yazlan yerleri altrmaz.
Clc komutu sayesinde matlab daha nce komut satrnda yazlan verileri siler.
Matematiksel ifadeler
lem
Sembol
Toplama
karma
arpma
Sadan Blme
Soldan blme
st alma
Kk alma
sqrt(x)
Exponansiyel
exp(x)
Mutlak deer
abs(x)
log(x)
10 tabanl logaritma
log10(x)
Faktoriyel
factorial(x)
Sins
sin (x)
Cosins
cos(x)
Tanjant
tan(x)
Kontanjant
cot(x)
Eer ayn ncelie sahip ilemler var ise ilem soldan saa doru yaplr.
Aklama
round(x)
fix(x)
ceil(x)
floor(x)
rem(x)
rnekler:
>> x=sin(pi/6)
x=
0.5000
>> round(x)
ans =
1
>> fix(x)
ans =0
y=1/3
y=
0.3333
>> ceil(y)
ans =
1
Diziler ve Matrisler
Matris tanmlarken;
Dizi_ad=*1.satr;2.satr;.;son satr +
komutu kullanlr.
Dizi tanmlarken, iimizi kolaylatran komutlarda vardr.
x=[0:1:15]
x=
Columns 1 through 14
0
9 10 11 12 13
Columns 15 through 16
14 15
6
linspace(10,15,6)
ans =
10 11 12 13 14 15
Matris ad
m satr n stn 0 matrisi oluturur
m*m birim matsi oluturur.
m satr n stnluk bir matrisi oluturur.
>> eye(3)
ans =
1
0
0
0
1
0
0
0
1
>> zeros(2,3)
ans =
0
0
0
0
0
0
>> ones(3,2)
ans =
1
1
1
1
1
1
Bir matrisin istediimiz herhangi bir elemann geri arlabilir. Matrisin arlan elemanlar ile
matematiksel ilemler yapmak iin kullanlabilir.Matris transpoze ilemine de rnekte yer
verilmitir.
>> mtrs=[10 11 14 16;25 36 33 28;0 12 19 11]
mtrs =
10 11 14 16
7
25 36 33 28
0 12 19 11
>> mtrs(2,4)+mtrs(1,3)*mtrs(1,1)
ans =
168
>>c=mtrs'
c=
10
11
14
16
25 0
36 12
33 19
28 11
Matriste sadece istediimiz elemanlar tek tek deil bir satr bir stunu yada belli satr yada stn
arasndaki deerleri alarakta yeni vektr ve matrisler oluturabiliriz.
Bir matris iin;
A(:,n) n.stun elemanlarn ekrana verir.
A(m,:) m. satr elemanlarn ekrana verir
A(:,m:n) m. stun ile n.stun arasn ekrana verir.
A(m:n,: ) m ile n. Satr arasn ekrana verir.
A(m:n,a:b) m ile n. satr ile aile b. Stun aras deerleri ekrana verir.
13 12 11 10 9 8
1
1 1
1 1 1
6
8 10 12 14 16
0
0 0 0
0 0
>> mtrs(3,5)
ans =
12
>> mtrs(:,5)
ans =
10
1
12
0
>> mtrs(4,:)
ans =
0 0 0
>> mtrs(3:4,5:7)
0
(3 ile 4 satr ile 5ile 7. Sutun elemanlaryla yeni bir matris oluturuyor)
ans =
12 14 16
0 0
0
Matrislere yeni elemanlar da eklenebilir.Bu ilemi yaplrken , linspace komutunu ve lineer artan
ktlar oluturmak iin kullandmz metot da kullanlabilir.Ayrca matrislerden elemanlar da
silinebilir.Ancak eleman eklerken de silerken de matris tanmn bozulmamas gerekmektedir.
mtrs=[14:-1:8;ones(1,7);4:2:16;zeros(1,7)]
mtrs =
14
1
4
0
13 12 11
1
1
1
6
8 10
0
0
0
10 9 8
1
1 1
12 14 16
0
0 0
>> mtrs(5,:)=linspace(10,16,7)
mtrs =
14 13 12 11 10 9 8
1
1 1 1
1 1 1
4
6 8 10 12 14 16
0
0 0 0
0 0 0
10 11 12 13 14 15 16
>> mtrs(:,8)=*0:3:9+
mtrs =
14 13 12 11 10 9 8 0
1
1
1 1 1
1 1 3
4
6
8 10 12 14 16 6
0
0
0 0 0 0 0 9
10 11 12 13 14 15 16 12
>>mtrs(:,1:3)=*+
(mtrs matrisinden 1.ve 3. Satrlar ve aradaki satrlar sildi.)
mtrs =
11 10 9 8 0
1
1 1 1 3
10 12 14 16 6
0 0 0 0 9
13 14 15 16 12
>> mtrs(2:4,1:3)=*+
zm
A=ones(3)
A=
1
1
1
1
1
1
1
1
1
>> B=5*ones(2)
B=
5 5
5 5
>> A(4:5,4:5)=B
A=
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
5
5
0
0
0
5
5
Soru 2
Aadaki matrisi matris komutlarn kullanarak oluturunuz.
2
2
3
0
4
4
4
2
2
3
0
4
4
4
2
2
3
0
7
7
7
0
0
0
1
0
0
0
5
5
5
0
9
9
9
zm
a=eye(7)
a=
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
>> a(2:3,1:3)=3*ones(2,3)
a=
1
3
3
0
0
0
0
0
3
3
0
0
0
0
0
3
3
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
>> a(1:2,1:3)=2*ones(2,3)
11
5
5
5
0
9
9
9
5
5
5
0
9
9
9
a=
2
2
3
0
0
0
0
2
2
3
0
0
0
0
2
2
3
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
>> a(1:3,5:7)=5*ones(3,3)
a=
2
2
3
0
0
0
0
2
2
3
0
0
0
0
2
2
3
0
0
0
0
0
0
0
1
0
0
0
5
5
5
0
1
0
0
5
5
5
0
0
1
0
5
5
5
0
0
0
1
>> a(5:7,5:7)=9*ones(3,3)
a=
2
2
3
0
0
0
0
2
2
3
0
0
0
0
2
2
3
0
0
0
0
0
0
0
1
0
0
0
5
5
5
0
9
9
9
5
5
5
0
9
9
9
5
5
5
0
9
9
9
>> a(5:7,1:3)=7*ones(3,3)
a=
2
2
3
0
7
7
7
2
2
3
0
7
7
7
2
2
3
0
7
7
7
0
0
0
1
0
0
0
5
5
5
0
9
9
9
5
5
5
0
9
9
9
5
5
5
0
9
9
9
>> a(5:7,1:2)=4*ones(3,2)
a=
2
2
3
2
2
3
2
2
3
0
0
0
5
5
5
5
5
5
5
5
5
12
0
4
4
4
0
4
4
4
0
7
7
7
1
0
0
0
0
9
9
9
0
9
9
9
0
9
9
9
ans =
2 7 13
6 20 36
63 32 18
>> vktr1*vktr2
(1. Matrisin stn says ile 2. Matrisin satr says birbirine eit)
ans =
298 172 141
303 192 180
608 392 376
>> A=[1 2 3];
>> B=[1;2;3];
>> C=A*B
C=
14
Bir matrisin tersini ve determinantn almak iin matlabta baz komutlar vardr. Matrisin tersini almak
iin inv(matris ad),determinantn almak iin det(matris ad) komutlar kullanlr.
13
1 . . = 1 .
= 1 .
= 1 \
bu ilem matlabta soldan blme(ters blme) ilemi ile gerekletirilir.
b)sadan blme ilemi:
sadan blme ilemi XA=B tipindeki matrislerin zmnde kullanlr.(Burada X ve B satr
matrisleridirler.)
. . 1 = . 1
= . 1
= /
Soru:
Aadaki lineer denklemin kklerini bulunuz.
3x+2y-9z=-65
-9x-5y+2z=16
6x+7y+3z=5
>> A=[3 2 -9;-9 -5 2;6 7 3];
>> B=[-65;16;5];
>> A\B
(B ve X stn matrisleridir)
(Soldan blme ilemi ile zm)
ans =
2.0000
-4.0000
7.0000
>> B=[-65 16 5];
>> A=[3 -9 6;2 -5 7;-9 2 3+;
>> B/A
ans =
2.0000 -4.0000 7.0000
Aklama
arpm
Sadan blme
Soldan blme
st alma
14
Matlab, yukarda verilen semboller kullanlarak matrislerdeki elemanlarn hepsini ayn ileme
sokar.Eer ileme giren matrisler ise her eleman kar taraftaki ayn elemanla ileme sokar.
x=linspace(0,5,3)
x=
0 2.5000 5.0000
>> y=linspace(6,11,3)
y=
6.0000 8.5000 11.0000
>> x.*y
ans =
0 21.2500 55.0000
>>x.^2+2
ans =
2.0000 8.2500 27.0000
std(x)
det(x)
dot(x,y)
cross(x,y)
nv(x)
max(x)
min(x)
rand(m,n)
Aklama
Vektrdeki elemanlar ortalama deerlerini bulur
Vektrdeki elemanlarn toplamlarn bulur.
Vektrdeki elemanlar artan srayla sralar.
Vektrdeki orta eleman bulur eer ift sayda
eleman varsa ortadaki 2 eleman toplar 2 ye
bler
Vektrdeki elemanlarn standart sapmasn
hesaplar
Kare matrisin determinantn hesaplar
Vektrlerin skalar arpmn bulur
Vektrlerin vektrel arpmn bulur. Vektrler 3
er elemana sahip olmak zorundadr.
Kare matrisin tersini bulur.
Vektrdeki en byk eleman verir
Vektrdeki en kk eleman verir
M satr n stnluk rastgele matris
oluturur.matris elemanlar 0-1 aras saylardan
oluur.
15
Soru
1)
=0 1\(2
+ 1)(2 + 2)
>>n=0:1:50;
>> v=1./((2.*n+1).*(2.*n+2));
>> sum(v)
ans =
0.6883
18
-5
-2
ans =
18 -45 24
>> sum(str2);
ans =
18
>> stn1=mtrs(:,1);
(1.stunu setik ve stn1 e atadk)
>> stn2=mtrs(:,2);
(2.stunu setik ve stn2 e atadk)
>> stn3=mtrs(:,3);
(3.stunu setik ve stn3 e atadk)
>> min(stn1),max(stn1),min(stn2),max(stn2),min(stn3),max(stn3)
ans =
-5
ans =
3
ans =
-2
ans =
8
ans =
0
ans =
18
Script Dosyalar
Matlabta bir script dosyas amak iin file->new->script yolu izlenir.
nput komutu:
nput komutu sayesinde belirlediimiz bir deikene deerini sonradan atanabilir.
17
Sorular:
1)
0 dan 100 km kadar olan aralktaki kilometre deerlerini mile eviren bir script dosyas
yaznz.Elde ettiimiz verileri bir dosyaya kaydedelim.
vkm=0:5:100;
vmil=vkm./1.609;
x=fopen('mil_karst.txt','w');
fprintf(x,'mil
kilometre \n');
tablo=[vmil;vkm];
fprintf('\n')
fprintf(x,'%8.2f
%8.2f \n',tablo);
fclose(x);
2) 0-30 derece aras sins deerleri iin bir vektr oluturun ve bu deerleri bir dosyaya
kaydedin.
aci=0:30;
radyan=aci.*pi./180;
degerler=sin(radyan);
tablo=[aci;degerler];
x=fopen('sins deerleri.txt','w');
fprintf(x,'a deerleri sins deeri
fprintf(x,'%8.2f \n',tablo);
fclose(x);
');
2 Boyutta Grafik
Belirte tr
19
Solid
Dashed
Dotted
Dash-dot
izgi rengi;
-:
-.
Belirte tr
r
g
b
y
K
aretleme tipi;
aretleme tipi ayn sayfadaki birden fazla grafik izilirse grafikleri ayrt etmek iin kullanlabilir.
aretleme tipi
Art iareti
Yuvarlak
arp
Belirte
+
o
*
aretleme tr
Kare
Elmas
Nokta
Belirte
s
d
.
20
100
90
80
70
60
50
40
30
20
10
0
10
15
>> x=[-3:0.05:5];
>> y=sin(-2*x).*cos(4*x);
>> plot(x,y)
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-3
-2
-1
Eer x vektrnn art orann artarsa, elde edilmek istenen grafikten uzaklalr.
21
X=[-3:0.3:5];
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-3
-2
-1
Elde edilen grafikler, edit -> copy figure dan kopyalayarak istenilen yerde kullanlabilir.
fplot
komutu ile de grafikler izilebilir.fplot komutu ile plot komutu arasndaki fark; fplot komutu
ile grafik izerken,izilecek grafiin limitleri ve izilecek grafiin komut iinde tanmlanmasdr.
fplot(fonksiyon,limitler,izgi belirteleri)
rnek olarak;
fplot(sin(-2*x).*cos(4*x),*-3 3])
22
yd=9*x.^2-26;
ydd=18*x;
plot(x,y,'-b')
hold on
plot(x,yd,'--r')
plot(x,ydd,':k')
hold off
120
100
80
60
40
20
0
-20
-40
-2
-1
grid komutu
grid on
23
grid off
Grafie gridler ekler ve karr.
rnek:
%script dosyasna yazlmtr.
x=[10:0.1:22];
y=95000./x.^2;
xd=[10:2:22];
yd=[950 640 460 340 250 180 140];
plot(x,y,'-');
xlabel('UZAKLIK (CM)')
ylabel('DDET (LUX)')
title('Uzakla Bal Olarak Ik Younluu')
axis([8 24 0 1200])
text(14,700,'Teoriyle Deneyin Karlatrlmas')
hold on
plot(xd,yd,'--ro')
legend('Teori','Deney',0)
hold off
DDET (LUX)
800
Teoriyle Deneyin Karlatrlmas
600
400
200
10
12
14
16
18
UZAKLIK (CM)
20
22
24
y = stun says,
z = indeks numaras'dr.
Sorular:
1)Depremin Richter leine gre bykl;
E
B=log10
10 4,4
11
x 10
7
6
5
4
3
2
1
0
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
Matlabta fonksiyon dosyas amak iin script dosyalar ile ayn yol izlenir.Script dosyalar ile
aralarndaki farklar ilerleyen blmlerde anlatlacaktr.(file->new->script).
Matlabta fonksiyon dosyalarn alma mant; kendilerine verilen girdileri bir ileme sokan
ve bu ilem sonucunda oluan verileri de ka vermektir.
Fonksiyon Dosyalarnn Yaps:
Fonksiyon dosyalarnda;
o Fonksiyon tanmlama satr
o Girdi ve kt deikenleri
o Yardm satr(istee bal)
o Fonksiyon gvdesi
olmaldr.
Fonksiyon tanmlama satr:
Fonksiyon tanmlama satr her fonksiyon iin olmaldr.fonksiyon tanmlama satrnda
fonksiyonun ismi,giri ve k deikenlerinin sras ve says belirtilmelidir.
function *k deikenleri+=fonk_ismi(giri deikenleri)
eklinde fonksiyon tanmlama satr yazlabilir.
Girdi ve kt deikenleri:
Fonksiyonun girdi deikenleri genelde en az bir tanedir.Eer birden fazla deiken varsa;
deikenler virglle ayrlr.Eer girdi deikenleri vektrler yada matrislerse; fonksiyon ilemleri
lineer cebir kurallarna gre yaplmaldrlar.Fonksiyon kt deikenleri eer yalnzca bir tane ise
bracket*+ kullanmaya gerek yoktur.
Yardm satr:
Yardm satr % iareti ile balar.% iareti ile balaynca ,matlab buradaki yazlm herhangi bir
kodu ileme almaz.Yardm satrnn amac kullancya fonksiyonla ilgili bilgiler vermektir.Kullanc
komut satrna help fonksiyon_ad yazdnda bu yardm satr ekrana verilecektir.
Fonksiyon gvdesi:
Fonksiyon gvdesinden fonksiyona yaptrmak istediimiz ileri tanmlarz.Fonksiyon dosyalar
kullanlmadan nce kaydedilmek zorundadr.Kayt iin file mensnden save as seenei
kullanlabilir.Kayt ismi iin fonksiyon ad ile ayn isim tercih edilmelidir.
rnek:
function y= etu (x)
%bu fonsiyon ile y=f(x)cinsinden bir ifadeyi fonksiyon kullanarak
%hesaplayacaz.fonksiyonun iine hem matris hemde skalar bir ifade
%alabiliriz.
y=(x.^2.*2.^(x))./(2.*x);
Komut satrna
>> x=[-1 1 2 3 4]
26
x=
-1
>> etu(x)
ans =
-0.2500 1.0000 4.0000 12.0000 32.0000
>> help etu
bu fonsiyon ile y=f(x)cinsinden bir ifadeyi fonksiyon kullanarak
hesaplayacaz.fonksiyonun iine hem matris hemde skalar bir ifade
alacaz.
Script dosyas
s1=input('fahrenatn ilk deerini giriniz:');
s2=input('dier fahrenayt deerini giriniz');
delta=FtoC(s2)-FtoC(s1);
alpha=input('deiim orann giriniz
');
a1=input('ilk kenar deerini giriniz');
b1=input('2. kenar deerini giriniz');
a2=a1+a1*alpha*delta;
b2=b1+b1*alpha*delta;
alandegisim=b2*a2-a1*b1;
fprintf('bu verilere gre alan deiimi %f',alandegisim);
>> feval('tan',pi/4)
ans =
1.0000
>> a=feval('etu',4)
a=
32
2)Matlabta Programlama
Matlab bir programn akn dzenlemek iin birok zellie sahiptir.Koul ifadeleri iin if ve switch
komutlar,bir komut dizinini bir ok kez altrmak iinde for ve switch komutlar vardr.
Koul ve mantksal operatrler:
Koul operatr
<
>
<=
>=
==
~=
Aklama
Kktr
Byktr
Kk eittir
Byk eittir
Eittir
Eit deildir
28
>> 7<8
ans =
1
>> a=(2<=3)+(3==60/20)*(6>5)
a=
2
>> A=[18 22 32 21 0 5 6]
A=
18 22 32 21
>> B=[1 3 35 28 -8 7 5]
B=
1
3 35 28 -8
>> A==B
ans =
0
>> A>=B
ans =
1
>> A~=B
ans =
1
>> c=A-B<3
c=
0
29
Mantksal
operatr
smi
aklama
A&B
Ve
A|B
Veya
~A
Deil
Eer A operatr sfrdan farkl bir say ise doru, eer sfr ise yanl verir.
>> 3&8
ans =
1
>> ~0
ans =
1
>> 38*((18&0)-(~0)+(12|11))
ans =
0
>> 0|0
ans =
0
lem ncelii:
1. Parantezler (i ie parantezlerde en iteki parantezden balayarak)
2. stsel ilemler
3. Mantksal deil(~)
4. Blme ve arpma
5. Toplama ve karma
6. Koul operatrleri
7. Mantksal ve
8. Mantksal veya
Fonksiyon
and(a,b)
or(a,b)
not(a)
Aklama
a&b ile ayn
a|b ile ayn
~a ile ayn
30
xor(a,b)
all(a)
any(a)
find(a)
find(a>x)
rnek:
Bir ehirdeki nisan ay scaklk deerleri 2 6 18 1 20 16 11 13 5 10 21 12 11
11 14 15 9 8 22 1 19 20 18 2 6 7 15 3 16 (scaklk deerlerini
round(22*rand(1,30)) ile oluturuldu)
a)scakln 10 dan byk olduu gnler hangileridir?
b)scakl 8 ile 12 arasnda olduu gnler hangileridir?
c)scakln 15 olduu gn says ka tanedir?
>> a=round(22*rand(1,30))
a=
Columns 1 through 24
2 6 18
20 18
1 20 16 11 13
5 10 21 12 11
5 11 14 15
Columns 25 through 30
2 6 7 15 3 16
>> x=find(a>10) (a kknn zm)
x=
3 5 6 7 8 11 12 13 15 16 17 20 22 23 24 28 30
>> y=find((a>=8)&(a<=12)) (b kknn zm)
y=
7 10 12 13 15 18 19
31
8 22
1 19
>> z=(a==15);
>> sum(z)
ans =
2
Koul ifadeleri
Koul ifadeleri; bir komut grubunun altrlp altrlmayacana programn karar vermesini
salayan ifadelerdir.Koul ifadeleri olarak if ile switch-case komutlar kullanlr.
if komutu
if koul ifadesi
elseif koul ifadesi
..
..
..
else
end
eklindedir.
Switch-case komutunu
switch seilecek ifade
case deer1
case deer2
.
.
.
otherwise
end
eklindedir.
Dngler:
for komutu
for a=b:c:d
..
.......
end
eklindedir.
32
while komutu
while durum ifadesi
.
.
.
End
eklindedir.
rnekler
1) Para birimlerini eviren bir program yaznz.
1 tl=1.566 dolar=2.035 euro=2.42 is(ngiliz sterlini)=1.55 ad(Avustralya dolar)
% 1 tl=1.566 dolar=2.035 euro=2.42 is(ngiliz sterlini)=1.55 ad(Avustralya
dolar)
% bu tip bir soruda ilk bata alnan deeri biline bir deere eviririz.
paramik=input('evirilecek para miktarn giriniz');
parabir=input('evirilecek parann uanki birimini girin','s');
cparabir=input('evrilecek birimi girin','s');
hata=0;
switch parabir
case 'tl'
a=paramik;
case 'dolar'
a=paramik*1.566;
case 'euro'
a=paramik*2.035;
case 'is'
a=paramik*2.43;
case 'ad'
a=paramik*1.55;
otherwise
hata=1;
end
switch cparabir
case 'tl'
b=a;
case 'dolar'
b=a/1.566;
case 'euro'
b=a/2.035;
case 'is'
b=a/2.42;
case 'ad'
b=a/1.55;
otherwise
hata=1;
end
if hata
disp('hatal girdi')
else
fprintf('para= %g %s',b,cparabir)
end
33
2)Kp 4000 de byk ve 3 ile blnebilen en kk sayyy bulan bir script dosyas yaznz.
%kp 4000 den byk ve 3 e blnebilen program
x=1;
a=1;
while x==1
if ((a^3)>=4000)&(rem(a,3)==0)
disp('istenilen rakam:\n');
disp(a);
x=0;
else
disp('olmad');
disp(a);
a=a+1;
end
end
3)
1.4t
0t10 sn
v(x)=
10t25 sn
25t35 sn
9
5
9- ( 35)
35t40 sn
Yukarda verilen verilere gre hz ve ivmeyi hesaplayan 2 ayr fonksiyon dosyas ve bu fonksiyonlar
kullanp bir grafik izdiren bir script dosyas yaznz.
Hz fonksiyonu
function x=hiz(t)
%verilen sre iindeki hz ler ve sonucu verilen denkleme gre verir
lt=length(t);
for in=1:lt
if t(in)>0& t(in)<=10
x(in)=1.4*t(in);
elseif t(in)>10&t(in)<=25
x(in)=14+5*sin(pi/10*(t(in)-10));
elseif t(in)>25&t(in)<=35
x(in)=9;
elseif t(in)>35&t(in)<=40
x(in)=9-9/5*(t(in)-35);
end
end
vme fonksiyonu
function a=ivme(t)
lt=length(t);
for in=1:lt
34
if t(in)>0& t(in)<=10
a(in)=1.4;
elseif t(in)>10&t(in)<=25
a(in)=5*pi/10*cos(pi/10*(t(in)-10));
elseif t(in)>25&t(in)<=35
a(in)=0;
elseif t(in)>35&t(in)<=40
a(in)=-9/5;
end
end
Script dosyas
t=0:1:40
v=hiz(t)
subplot(2,1,1);
plot(t,v);
grid
xlabel('zaman');
ylabel('hz');
axis([0 40 0 20]);
a=ivme(t);
subplot(2,1,2);
plot(t,a);
grid
xlabel('zaman');
ylabel('ivme');
axis([0 40 -2 2]);
Grafik kts
20
hz
15
10
5
0
10
15
20
zaman
25
30
35
40
10
15
20
zaman
25
30
35
40
ivme
1
0
-1
-2
35
4)
newyork=[31 26 30 33 33 39 41 41 34 33 45 42 36 39 37 45 43 36 41
37 32 32 35 42 38 33 40 37 36 51 50]
alaska=[37 24 28 25 21 28 46 37 36 20 24 31 34 40 43 36 34 41 42 35
38 36 35 33 42 42 37 26 20 25 31]
Yukarda iki blgenin bir aydaki gnlk scaklklar verilmitir.
a)Her iki blgenin scaklk ortalamalarn bulunuz,
b)Her iki blgede ka gn ortalamann altnda kmtr,
c)Alaskann Newyorktan daha scak olduu gnler ve ka gn olduu,
d)2 blgedeki scakln ayn dolduu gn says,
e)2 blgedeki scaklklarn 32 F kk olduu gnler ve toplam says,
sorular iin bir program yaznz.
format short;
stny=[31 26 30 33 33 39 41 41 34 33 45 42 36 39 37 45 43 36 41 ...
37 32 32 35 42 38 33 40 37 36 51 50];
tanc=[37 24 28 25 21 28 46 37 36 20 24 31 34 40 43 36 34 41 42 35 ...
38 36 35 33 42 42 37 26 20 25 31];
ortny=mean(tny);
ortanc=mean(tanc);
fprintf('newyork sehrindeki ortalama %f',ortny);
fprintf('\n anchorage sehrindeki ortalama %f',ortanc);
ortbny=find(tny<ortny);
sayibuyukny=length(ortbny);
fprintf('\n newyork sehrindeki ortalama alt %f',sayibuyukny);
ortbnanc=find(tanc<ortanc);
sayibuyukanc=length(ortbnanc);
fprintf('\n anchorage sehrindeki ortalama alt %f',sayibuyukanc);
lt=length(tny);
sayi=1;
for in=1:lt
if tanc(in)>tny(in)
x(sayi)=in;
sayi=sayi+1;
end
end
fprintf('\n');
disp('anchorage ehrinin scaklnn newyorktan byk olduu gnler');
disp(x);
fprintf('\n');
disp(' scakln byk olduu toplam sayi ');
disp(sayi-1);
(say deikenini 1 den balattmz iin)
sayi=1;
x=0;
for in=1:lt
if tanc(in)==tny(in)
x(sayi)=in;
sayi=sayi+1;
end
end
fprintf('\n anchorage ehrinin scaklnn newyorka eit olduu
gnler');
disp(x);
fprintf('\n');
36
3 Boyutlu Grafikler:
Matlab iki boyutta olduu gibi boyutta da izim komutlarna sahiptir.
1)izgi Grafikleri:
izgi grafikleri 3 boyuttaki notlarn birletirilmesi ile izilir.
plot3(x,y,z,izgi belirteleri)
Komutu ile izilir.
rnek
>> t = 0:pi/50:10*pi;
>> plot3(sin(t),cos(t),t);
37
40
30
20
10
0
1
0.5
1
0.5
-0.5
-0.5
-1
-1
>> t = 0:pi/50:10*pi;
>> plot3(sin(3.*t).*cos(t),sin(3.*t).*sin(t),t);
35
30
25
20
15
10
5
0
1
1
0.5
0.5
-0.5
-0.5
-1
-1
38
1.adm:
x=a:b;
y=c:d;
[X,Y]=meshgrid(x,y)
2.adm
Z=f(X,Y);
3.adm
mesh(X,Y,Z) (mesh grafii iin)
surf(X,Y,Z) (yzey grafikleri iin)
rnek:
1)
( 2 . 2 )
= 2
( + 2 )
>> x=0:0.1:5;
>> y=2:0.1:6;
>> *X,Y+=meshgrid(x,y) (1.adm yaplmtr.)
>>Z=(X.^2.*Y.^2)./(X.^2+Y.^2) (2.adm yaplmtr.)
>>mesh(X,Y,Z)
>>surf(X,Y,Z)
(GRAFKLER KOD SIRASINA GREDR.)
15
10
0
6
5
4
3
2
39
15
10
0
6
5
5
4
3
2
3
2
1
0
40
0.4
0.2
-0.2
-0.4
4
2
4
2
-2
y
-2
-4
-4
>> surf(X,Y,Z)
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
41
0.4
0.2
-0.2
-0.4
4
2
4
2
-2
y
-2
-4
-4
Matlab 3 boyutlu grafikler iin fazlaca komuta sahiptir genel olarak ayn ekilleri kullanrlar fakat
aralarnda az da olsa farklar vardr.
Komutlar :
Komutun ad
Mesh curtain
Mesh ve kontur
Yzey ve kontur
Iklandrlm yzey
Waterfall
3 boyut kontur
Komut
meshz(X,Y,Z)
meshc(X,Y,Z)
surfc(X,Y,Z)
surfl(X,Y,Z)
waterfall(X,Y,Z)
contour3(X,Y,Z,n)(buradaki
n kontur saysn belirtir)
rnekler :
1) q1=2.1010 yk (0,25,0,0) noktasnda q2=3.1010 ykde (-0.25,0,0) noktasndadr.x-y
dzlemindeki -0.2x0.2 ve -0.2y0.2 noktalarndaki elektrik potansiyeli hesaplaynz.ve
izdiriniz.( = 8.85.1012 )
=
42
1
4
>> eps=8.85e-12;
>> q1=2e-10;
>> q2=3e-10;
>> x=-0.2:0.001:0.2;
>> y=-0.2:0.001:0.2;
>> [X,Y]=meshgrid(x,y);
>> r1=sqrt((X+0.25).^2+(Y).^2);
>> r2=sqrt((X-0.25).^2+(Y).^2);
>> V=1/(4*pi*eps).*(q1./r1+q2./r2);
>> mesh(X,Y,V)
Grafik ekleyemedim
2) Yuvarlak bir merdiven aagdaki gibi modellenmektedir.
x = Rcos(2 )
y = Rsin 2
=
Burada R merdivenin yarap,h katn uzunluu,n ise merdivenin her katta yapt dn
saysdr.Yaplmakta olan iki katl bir bina iki merdivene sahiptir.Birinci merdivenin yarap 1.5
m,dn says ise 3tr. kinci merdivenin yarap 4m dn says ise 2 dir. ki merdiveni de
kapsayan bir ekil iziniz.(0t5)
>> r1=1.5;
>> r2=4;
>> n1=3;
>> n2=2;
>> t=0:0.01:5;
>> h=3;
>> x1=r1*cos(2.*pi.*n1.*(t./h));
>> x2=r2*cos(2.*pi.*n2.*(t./h));
>> y1=r1*sin(2.*pi.*n1.*(t./h));
>> y2=r2*sin(2.*pi.*n2.*(t./h));
>> z1=t./h;
>> z2=t./h;
>> plot3(x1,y1,z1,x2,y2,z2)
Soru ile ilgili olarak ilk bata kontur kullanmak gerektiini dnebilirsiniz fakat kontur ile izim iin 2
bamsz bir baml deiken olmaldr. Ayn zellik mesh ve yzey izimleri iinde geerlidir.
43
1.5
0.5
0
4
2
4
2
-2
y
-2
-4
-4
3) = ( + 3)2 + 1.5 2 2 denklemini -3x3 ,-3y3 snrlar iinde grafik iinde hem
yzey hemde kontur olacak ekilde iziniz.
>> x=-3:0.01:3;
>> y=-3:0.01:3;
>> [X,Y]=meshgrid(x,y);
>> Z=(Y+3).^2+1.5.*X.^2-X.^2.*Y;
>> surfc(X,Y,Z)
>> xlabel('X')
>> ylabel('Y')
>> zlabel('Z')
>> fplot('x*exp(-x)-0.2',[0,8])
>> grid
44
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
>> x1=fzero('x*exp(-x)-0.2',0.7) (fonksiyonda 2 adet sfra yakn nokta olduu iin 2 adet nokta var)
>>x1 =
0.2592
>> x2=fzero('x*exp(-x)-0.2',2.8)
x2 =
2.5426
fzero komutu fonksiyon x eksenini kestiinde cevap bulabilir.eer fonksiyon ekseni kesmeden
teet geerse fzero komutu bir sonu bulamaz.
>> fplot('x^3-12*x^2+40.25*x-36.5',[0,8])
>> grid
30
20
10
-10
-20
-30
-40
45
>> x1=fzero('x^3-12*x^2+40.25*x-36.5',0.7)
x1 =
1.4776
fval =
-11.8043
>> [x fval]=fminbnd('-x*exp(-x)+0.2',0,8)
x=
1.0000
fval =
-0.1679
46
quad-quadl komutlar
a=quad(fonksiyon,a,b)
b=quadl(fonksiyon,a,b)
eklinde yazlr.
(.
0.8
+ 0.2)
trapz komutu
a=trapz(x,y) (x,y ler birer vektrdirler.)
>>q =[32 36.96 46 51.84 120 109.04 88.56 79.04 74 51.52 44 38.64 32]
32.0000 36.9600 46.0000 51.8400 120.0000 109.0400 88.5600 79.0400 74.0000 51.5200
44.0000 38.6400 32.0000
>> d=[1 32 60 91 121 152 182 213 244 274 305 335 366]
d=
1 32 60 91 121 152 182 213 244 274 305 335 366
>> trapz(d,q)
47
ans =
2.3506e+004
>> a=trapz(d,q)
a=
2.3506e+004
= (, )
1.
( = (, ) 0 1
= 0
= 0
2.
3.
zm metodunu seeriz.
Diferansiyel denklem zm metodu
ode45
ode23
ode113
ode15s
ode23s
ode23t
ode23tb
zm metotlarn farkll kullandklar metotlar ve problem zorluuna gre seime
dayanyor.En zor problemleri zme sralar yazm srasna gredir.
4.
rnek
3 2
=
1 3 = 4.2 = 1
48
Fonksiyon dosyas
function dydt=diffe(t,y)
dydt=(t^3-2*y)/t;
Denklemin zm
>> [t y]=ode23tb('diffe',[1:0.3:3],4.2)
t=
1.0000
1.3000
1.6000
1.9000
2.2000
2.5000
2.8000
y=
4.2000
2.8038
2.3786
2.4768
2.9533
3.7628
4.8988
2)
function dydx=dif(x,y)
dydx=(0.2*x*y+0.5*y^2);
x y]=ode45('dif',[0:0.4:4],-0.5)
x=
0
0.4000
0.8000
1.2000
1.6000
2.0000
2.4000
2.8000
3.2000
3.6000
49
4.0000
y=
-0.5000
-0.4617
-0.4426
-0.4391
-0.4495
-0.4734
-0.5117
-0.5658
-0.6379
-0.7305
-0.8460
>> plot(x,y)
>> ylabel('y')
>> xlabel('x')
-0.4
-0.45
-0.5
-0.55
-0.6
-0.65
-0.7
-0.75
-0.8
-0.85
0.5
1.5
2
x
2.5
50
3.5
Genel Sorular:
1) Kullancdan alnan bir saynn asal m deil mi olduunu kontrol eden bir program yaznz.
x=input('bir say giriniz asal m deil mi belirleyelim
');
a=2;
for i=1:floor(x/2)
if rem(x,a)==0&&(x~=2)
fprintf('girilen %g says %g ile tam blnyor bu say asal deil\n',x,a)
break;
else
if a==round(x/2)||(x==2)
disp('bu say asal')
end
a=a+1;
end
end
Ana program
>> [t,v]=ode23tb('soru',[0:0.5:12],83.333);
>> plot(t,v)
>>grid
>> axis([0 13 0 100])
>> ylabel('v')
>> xlabel('t')
>> help title
(helpten yardm aldk her komut iin ayn process geerli)
TITLE Graph title.
TITLE('text') adds text at the top of the current axis.
TITLE('text','Property1',PropertyValue1,'Property2',PropertyValue2,...)
sets the values of the specified properties of the title.
TITLE(AX,...) adds the title to the specified axes.
H = TITLE(...) returns the handle to the text object used as the title.
See also xlabel, ylabel, zlabel, text.
Reference page in Help browser
doc title
>> title('hz zaman grafii')
51
hz zaman grafii
100
90
80
70
60
50
40
30
20
10
0
10
12
-Inf
(birbirinden lineer bamsz denklemler olmadklar iin sonu sonsuz kt.)
4)
=1+
2 3
+ +
1! 2! 3!
53
10
100
50
-10
-10
-5
10
0
-10
1000
10000
5000
-1000
-10
-5
10
-5
10
0
-10
-5
10
-5
10
x 10
0
-1
-10
Kaynaka
54