Iletişim Matlab Giris

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

MATLAB PROGRAMLAMAYA GR

MATLAB, MATrix LABoratory szcklerinden gelir ve temelde saysal ve analitik olarak


matematiksel fonksiyonlarn ifadelerinin kullanld bata mhendislik alannda olmak zere
saysal analiz yntemlerini kullanan bilimlerde son yllarda olduka sk kullanlan bir hazr
yazlm paketidir. zellikle yksek performans gerektiren algoritma hazrlama ve gelitirme,
saysal analiz, benzetim, mhendislik problemlerinin saysal ve grafik zm tekniklerinde
son derece etkindir.
1.1. M-Dosyalar
M-dosyalar MATLAB ortamnda kullanlan komutlardr ve veri analizini salayan
fonksiyonlardr. Bu fonksiyonlar her amaca yeterli olsa da sonulara daha hzl ulaabilmek
iin kullancya zel fonksiyonlar yani yeni M-dosyalar oluturulabilir. eitli yollarla bu Mdosyalarn hazrlanabilir. Ya bir komutlar dizisi sayesinde sonuca ulalr ya da function
kelimesiyle balayan bir fonksiyonel dosya oluturulur. nemli olan istenilen sonucu ksa
zamanda verebilmesidir. M-dosyas oluturmak iin ilk yol file mensnden new alt
mens ieriklerinden M-file semektir, bu seimle istenilen alan oluturulmu olur. Baka
bir yol ise Command Windowda edit yazarak oluturmaktr. Ardndan kullanc amacna
uygun bir program ya da fonksiyon yazabilir.
1.2. Temel Matematiksel lemler
Bu program yardmyla birok matematiksel ilem kolayca yaplabilir.
>> 5^8
ans =
40
>> sqrt(2)
ans =
1.41421356237310
% ln(14)+sin(p/4) asagidaki sekilde hesaplanir:
>> log(14)+sin(pi/4)
ans =
3.34616411080181

Matematiksel ilemlerden nce aadaki komutlar kullanlrsa oluacak sonucun gsterim


format deitirilebilir.
format long: istenilen sonucun duyarll gsterir.
format rat: sonucu kesirli halde gsterir.
format compact: ilem sonucu arasna ekstra boluk braklmaz.
Temel trigonometrik operatrler: cos, sin, tan, sec, csc, cot
tersleri: acos, asin, atan, asec, acsc, acot
stel fonksiyon: exp
Doal logaritma: log
MATLAB de hazr fonksiyonlarn kullanm ekilleri bilinmek istenirse help komutu
kullanlr.

1.3. Deikenler
Tm yazlabilir karakterler (Trke karakterler dnda) deiken olarak atanabilir ve =
olarak verilir.
>> x=23
x=
23

Deiken isimleri byk ve kk harf ayrmna hassastr. X ve x deikenleri ayr olarak


tanmlanabilir.
>> x^23*x+2
ans =
30
>> log(x)
ans =
1.94591014905531
>> sin(x)
ans =
0.65698659871879

Yeni bir ifade iin bir nceki deiken kullanlabilir. Her ilem sonucu bellekte saklanr.
>>x=7
x=
7
>> y=8*x
y=
56
>> x=x+5
x=
12

who, komutu kullanlan deiken isimlerini verir.


>> who
Your variables are:
ans x y

whos, komutu deikenlerin boyut bilgisini verir.


>> whos
Name Size Bytes Class
ans 1x1 8 double array
x 1x1 8 double array
y 1x1 8 double array
Grand total is 3 elements using 24 bytes

Bellekteki deikenleri silmek iin clear komutu kullanlr.

1.4. Karmak Saylar


Genel format a+ib, a-ib, a+bj, a+jb olan ifadelerdir.
>>2-3i
ans =
2.0000 3.0000i
>> 23*i
ans =
2.0000 3.0000i

Karmak saylarn tanmnda complex fonksiyonu da kullanlabilir. Bu fonksiyon karmak


saynn gerel ve sanal ksmlarn verir.
>> x=3;y=4;
>> complex(x,y)
ans =
3.0000 + 4.0000i

Karmak Say ilemleri


abs: Mutlak deer alr (Genlik bilgisi).
angle: Faz as.
conj: Karmak elenik.
imag: Karmak sanal ksm.
real: Karmak gerel ksm.
1.5. Temel statistiksel lemler
zellikle grlt gibi stokastik veriler zerinde yaplacak analizler ve deerlendirilmeler iin
istatistiksel yntemleri MATLABde kullanmak mmkndr. Bilinen en temel komutlar;
max: Veri kmesindeki en byk deeri bulur.
min: Veri kmesindeki en kk deeri bulur.
length: Kme iinde ka eleman olduunu verir.
sum: Kmenin iindeki elemanlarn toplamn verir.
prod: Verilerin arpmn hesaplar.
median: Verilerin ortanca deerini hesaplar.
std: Standart sapma.
mean: Ortalama deer ya da aritmetik ortalama.
geomean: Geometrik ortalama.
harmmean: Harmonik ortalama.
sort: Kme elemanlarn azalan srada hazrlar.
1.6. Yuvarlatma lemleri
fix: Sfra doru yuvarlatr.
floor(x):. x ten kk veya eit en yakn
tam sayya doru yuvarlatr.

ceil(x): x ten byk veya eit en yakn


tam sayya doru yuvarlatr.
round: En yakn tamsayya yuvarlatr

1.7. Matrisler ve Vektrler


Matris oluturmak iin keli parantez kullanlr ve ; ile satrlar ayrlr.
>> A=[2 11 -3 8; 1 0 8 -3; 7 1 2 5]
A=
2 11 -3 8
1 0 8 -3
7125

Sonu verecek olan bir komut satr sonuna ; konulursa komut penceresinde o komutun
oluturduu deikenin deeri yazl olarak grnmez.
>> B=[2 0 3; 1 1 3];

Vektrler matrislerin tek kolon halidir ve gsterimleri;


>> v = [ 2; 3; -4]
v=
2
3
-4

Bir satr vektr bir satr olan bir matristir.


>> w=[3 -2 5 11]
w=
3 -2 5 11

rnein iki say arasnda sral satir vektr oluturmak iin 'a:b';
>> 2:5
ans =
2345

'j:i:k' bir satir vektrn tanmlar ve j balang, i artm ve k son eleman gsterir.
>> 3:2:9
ans =
3579

Matrisin transpozu
>> A=[5 -2 9; 11 7 8]
A=
5 -2 9
11 7 8
>> A'
ans =
5 11
-2 7
98

Nokta arpm
MATLAB dilinde nokta ilemler arpma *. Blme ./ veya .\ st alma .^ olarak
kullanlr. Yani nokta iaretli ilemler matrislerde elemanter ilem yaplacan gsterir. n bir
skaler olmak zere a n , a matrisindeki her bir elemann n. kuvvetinin alnacan ifade eder.
Vektrlerin nokta arpmnda, karlkl her eleman arplr ve birikmi toplam elde edilir.
Nokta arpm simetriktir ayn sonu alnr.
>> v=[7; 23; 15; 2], w=[5; -2; 1; -8]
v=
7
23
15
2
w=
5
-2
1
-8
>> dot(v,w)
ans =
-12

Bir vektrn boyu v =

( v.v ) .

>> vlength=sqrt(dot(v,v))
vlength =
28.4077

Ya da 'norm' komutu ile de elde edilir.


>> norm(v)
ans =
28.4077

v.w
ki vektr arasndaki a , v.w = v w cos ( ) buradan = arccos
olarak elde
v
w

edilir.
>> theta=acos(dot(v,w)/(norm(v)*norm(w)))
theta =
1.6144
>> theta*180/pi
ans =
92.4971
%radyan ckan sonucun derece olarak karslg

Bir matrisin tm karesel alt matrislerinden, determinant sfrdan farkl olan en yksek
boyutlusunun boyutuna A matrisinin rank denir.

>> A=[1 2 1 4; 2 3 1 3; 3 2 1 2; 4 3 1 1]
A=
1214
2313
3212
4311
>> rank(A)
ans =
3

Ters lemler

Bir A matrisinin tersi A1 ; A^(-1) ya da inv(A) ile gsterilir. inv ters ilem yapma
operatrdr. Buradaki dikkat edilmesi gereken nokta A matrisin tekil olmamasdr.
>> A=[2 1 1; 1 2 2; 2 1 2]
A=
211
122
212
>> Ainv=inv(A)
Ainv =
2/3 -1/3 0
2/3 2/3 -1
-1 0 1

Sonucun salanmas iin tersi ile kendisinin arpm birim matrisi vermelidir.
1.8. Hazr Matris Fonksiyonlar

rand veya randn fonksiyonlar baz durumlarda yalnzca bir zellii veya bir eyi denemek
ve durumunu gzlemek iin rasgele saylardan olumu bir matris oluturmak iin kullanlr.
rand dzenli olarak dalm randn ise normal olarak dalm rasgele say retir.
rnein; a=-5 ile b=5 arasnda yani -5 ile +5 arasnda rasgele sayl 2x4 (iki satr 4 stunlu)
bir matris retmek istenirse
>>a=-5+10*rand(2,4)
a=
4.3547 -0.8973 -4.4211 3.1317
4.1690 3.9365 -1.4713 -4.9014

ones fonksiyonu elemanlar 1 olan bir matris zeros fonksiyonu elemanlar 0 olan matris
oluturur.

>> s=ones(3)
s=
111
111
111
>> d=zeros(4)
d=
0000
0000
0000
0000

eye fonksiyonu ile birim matris oluturulur.


>> f=eye(3,3)
f=
100
010
001

1.9. zvektrler ve zdeerler

Bir kare matrisin zdeerlerini bulmak iin eig komutu kullanlr.


>> A=[ 3 1 1; 1 3 1; 1 1 3]
A=
311
131
113
>> eig(A)
ans =
2.0000
2.0000
5.0000
>> [Q,D]=eig(A) %A caprazlanabilir ise
Q=
-0.8164 -0.0137 0.5774
0.3963 0.7139 0.5774
0.4201 -0.7001 0.5774
D=
2.0000 0 0
0 2.0000 0
0 0 5.0000

Q matrisinin stunlar A matrisinin zvektrlerini oluturur Q 1 AQ = D .


>> inv(Q)*A*Q
ans =
2.0000 0 0.0000
0.0000 2.0000 0.0000
-0.0000 0.0000 5.0000

Bir matrisin kegen deerlerinin gsterimi iin diag(A) kullanlr.


>> a=[2 4 4;2 3 1;3 -2 5]
a=
244
231
3 -2 5
>> diag(a)
ans =
2
3
5

1.10. Grafik izimleri

plot fonksiyonu belirli bir dzlem verisinin grafik gsterimi iin kullanlr. En temel izim
komutu olan bu komut temel ekilde kullanlabilir:
1. plot(x,y): x ve y matrislerinin elemanlarn koordinat dzleminde (x1,y1), (x2,y2),
(x3,y3) olacak ekilde noktalara yerletirerek aralarn dz bir izgiyle birletirir.
2. plot(y): y matrisinin elemanlarn koordinat dzleminde (1,y1), (2,y2), (3,y3) olacak
eklindeki noktalara yerletirerek aralarn dz bir izgiyle birletirir.
3. plot(x1,y1,x2,y2): y1 matrisini x1e gre, y2 matrisini de x2ye gre izer.
stairs komutu sadece stairs(x,y) ve stairs(y) eklinde kullanlabilir. plot tan farkl olarak
grafikteki noktalar basamak fonksiyonlar eklinde birletirerek izer.
stem komutu da stem(x,y) ve stem(y) eklinde kullanlabilir. plot tan farkl grafikteki
noktalar darbe fonksiyonlar eklinde izer.
subplot ve hold on off komutlar birden fazla grafik ayn ekranda grlmek isteniyorsa
kullanlr. hold on komutu art arda sralanan grafik izim komutlarnda grafikleri ayn grafik
penceresinde st ste izer. Bu zellik hold off ile kapatlr.
subplot(<satr_says>,<stun_says>,<kanc_grafik_oldugu>) eklinde ifade edilebilir.
izilen grafie balk title, x ekseni etiketi xlabel, y ekseni etiketi ylabel ve legand
legend komutlaryla eklenir.
Grafik ekrannda grafiin izgi rengi, iareti ve ekli istendiinde deitirilebilir. Bunun iin
aada verilen harf, ekil ve iaretler plot( ) fonksiyonuna yazlr.
y
m
c
r
g
b
k

Renk
sar
meganta
pembe
krmz
yeil
mavi
siyah

aret
* yldz
s kare
d elmas
v gen aa
^ gen yukar
< gen sola
> gen saa

izgi
: nokta
.- nokta srekli
- srekli
-- kesikli

1.11. Sembolik Deikenler ve fadeleri

MATLAB simgesel ilemlerde Symbolic Math Toolkiti kullanr. Kullanlacak fonksiyonlar


help symbolic ile grlebilir.
Simgesel deiken ve ilemlere giri yapmak iin symintro yazmak yeterlidir. Saysal
ilemlerde ve karakter indislerinde bildirime gerek yok iken, simgesel ilemlerde kullanlacak
deikenlerin nceden bildirilmesi gerekir. rnein, a gibi bir sembolik deiken aadaki
gibi bildirilir.
>> sym a
ans =
a
%veya
>> sym('a')
ans =
a

Bir fonksiyonda geen deikenler x,y ve z olsun


>> syms x y z
%Anlami x=sym('x'), y=sym('y') ve z=sym('z').
>> S=x^2-y^2
S=
x^2-y^2

Bu ifadenin faktr (arpanlar)


>> factor(S)
ans =
(x-y)*(x+y)

Bir fonksiyonu sadeletirmek iin simplify fonksiyonu kullanlr.


>> S=(x^3-4*x)/(x^2+2*x)
S=
(x^3-4*x)/(x^2+2*x)
>> simplify(S)
ans =
x-2

Fonksiyonlar tanmlamak iin bir baka yol da inline komutunu kullanmaktr. rnek olarak
g ( x, y ) = x 2 3 xy + 2 fonksiyonu aadaki gibi yazlabilir.
>> g=inline('x^2-3*x*y+2')
g=
Inline function:
g(x,y) = x^2-3*x*y+2

1.12. Polinomlar

Polinomlar genellikle tek deikenli ve sabit katsayl fonksiyonlardr. Bu fonksiyonlarn en


genel hali aada verilmitir.
(1.1)

an x n + an 1 x n 1 + + a1 x + a0 = 0
Denklem (1.1) de verilen eitliin kkleri gerek veya karmak say olabilirler.
Polinom Kkleri

MATLABda polinom kklerini bulmak iin ilk nce katsaylar dizini Denklem (1.2) deki
gibi oluturulur daha sonra roots(kat) yazlarak sonular elde edilir.
k = [ an , an 1 , , a1 , a0 ]

(1.2)

rnek 1.1: 4 x5 - x3 + 2 x 2 - x - 20 = 0 denkleminin kklerini MATLAB yardm ile


hesaplaynz.
>> k=[4, 0, -1, 2, -1, -20]
k=
4 0 -1 2 -1 -20
>>roots(k)
ans=
1.3825
0.4639 + 1.3186i
0.4639 - 1.3186i
-1.1552 + 0.7187i
-1.1552 - 0.7187i

Kkleri Bilinen Polinomun Katsaylarn Bulunmas

Bir polinomun zm kmesi biliniyor ise MATLAB onu bir polinom halinden de istenirse
yazabilir. poly([ kk1, kk2, kk3]) yazlarak tretilen polinomun katsaylar elde edilir.
rnek 1.2: Kkleri x1 = 4, x2 = 1ve x3 = 1 olan bir polinom tretiniz.
>> poly([-1,1,4])
ans =
1 -4 -1 4

Bunun anlam x3 4 x 2 x 4 = 0 yani polinom elde edilmi olur.


Polinom Deerini Bulmak

Eer bir polinomun verilen herhangi bir deiken deerine kar gelen polinom deerini
bulmak istersek polyval( ) komutu kullanlr.

10

rnek 1.3: f ( x ) = 4 x5 x 3 + 2 x 2 x 20 fonksiyonunun x = 3 iken deerini hesaplaynz.


>>k=[4, 0, -1, 2, -1, 20]
k=
4 0 -1 2 -1 20
>>polyval(k,3)
ans =
980

Polinom arpm ve Blme

Polinom arpm, blme ve karma ilemlerinden daha zordur. Bu ilemlerin daha kolay
yaplabilmesi adna arpma iin MATLAB conv( ) komutunu ve blme ilemi iin de
deconv() komutunu kullanlr. Burada deconv kullanlrken biraz dikkat etmek edilmesi
gereken nokta tam blnememe durumudur. Eer verilen polinomlar tam blnmyor ve
fonksiyonun kalannn gsterilmesi isteniyor ise bu durum da [a,b]=deconv(f,g) eklinde bir
komut kullanlmadr. Burada a, blnen polinomun katsaylarn, b ise blnmeyen ksmn
katsaylarn verir.
rnek 1.4:

f ( x ) = 2 x3 5 x 2 + 3x x

ile

g ( x) = x 1

olarak verilirse

f ( x) g ( x)

ve f ( x ) / g ( x ) fonksiyonlarn MATLAB ile hesaplaynz.


>> fk=[2 -5 3 -3];
>> gk=[ 1 -1];
>> capma=conv(fk,gk)
capma =
2 -7 8 -6 3
>> [bolme,r]=deconv(fk,gk)
bolme =
2 -3 0
r=
0 0 0 -3

1.13. Saysal Trev

Trev matematiksel olarak bir f ( x ) fonksiyonunun x e gre deiim oran olarak tanmlanr
ve Denklem (1.3) deki gibi gsterilir.
f ' ( x ) = lim

x 0

f ( x + x ) f ( x ) df ( x )
=
x
dx

(1.3)

MATLAB da trev ilemi polyder() ve diff(y) fonksiyonlaryla yaplr. Polinomlarn trevi


alnacak ise polyder(katsaylar) komutu ile kullanlr. Eer bir fonksiyonu trevi alnacak ise
diff() komutu kullanlr. n. dereceden trev diff(f,n) olarak verilir.
Bir fonksiyonun bilinmeyen parametrelerine gre trevinin alnmas iin Jacobian matrisin
oluturulmas gerekir. Bunun iin jacobian komutu kullanlr.
Ad diferansiyel denklemlerin zm iin dsolve komutu kullanlmaktadr.

11

1.14. ntegral

Simgesel integral alma fonksiyonu int genel kullanm ekli


int(s) : findsym ile belirlenen simgesel deikene gre Snin belirsiz integralini alr
int(s,v) : Snin vye gre integralini alr.
int(S,a,b) : Snin varsaylan deikene gre a dan b ye kadar belirli integralini alr.
int(S,v,a,b) : Snin tanml a dan b ye kadar belirli integralini alr.
rnek 1.5: ( 2 x5 4 x + 20 ) dx integralinin hesaplanmas
>>int(-2*x^5-4*x+20)
ans =
-1/3*x^6-2*x^2+20*x
>> pretty(int(-2*x^5-4*x+20))
6
2
- 1/3 x - 2 x + 20 x

MATLAB saysal integral almak iin birok komut kullanmaktadr. Bunlardan bazlar trapz,
quad ve dblquad dr.
Trapz(x,y) Komutu
Trapez saysal integralde kullanlan yntemlerde trapez yntemine gre integral hesaplar.
Yani verilen x ve y noktalarnn oluturaca trapezlerin alan integral deerini verir.
Quad(f, xmin, xmax) Komutu
Bu komut integral ilemini nmerik olarak yinelemeli Simpson yntemini kullanarak [a b]
aralnda hesaplar. ntegral I= quad(f,a,b) yazlarak hesaplanabilir.
Dblquad komutu

MATLABde iki deikenli fonksiyonlarn integralleri de alnabilir. Yani f ( x, y ) gibi iki


deikene bal ise fonksiyonun integrali dblquad(f,xmin,xmax,ymax,ymin) eklinde
yazlarak hesaplatlabilir.

12

You might also like