3._HAFTA_MATLAB_

advertisement
Birim Vektör
A vektörünün birim vektörü uA olsun A vektörü ile aynı yön ve doğrultuda fakat normu yani
uzunluğu 1 olan vektöre birim vektör denir ve aşağıdaki gibi hesaplanır. Örnekleri
inceleyelim.
uA 
A
A
(1)
>> A
A=
1
2
5
6
>> UA=A/norm(A)
UA =
0.1231
0.2462
0.6155
0.7385
UA vektörü A vektörünün birim vektörüdür denir.
İki vektör arasındaki açı hesaplama
İki vektör arasındaki açı aşağıdaki ifade ile hesaplanır.
cos 
( A, B)
A B
>> A=[1 2 3]
A=
1
2
3
>> B=[5 8 1]
B=
5
8
1
>> tet=acos(dot(A,B)/( norm(A)*norm(B) ) )
tet =
0.8283
(2)
Yukarıdaki örnekde A ve B vektörü arsasındaki açı tet adında bir değişkene atanmış ve sonuç
ise radyan cinsinden elde edilmiştir. İstenildiği taktirde 3.14 rad. 180° eşitliği kullanılarak
dönüşüm gerçekleştirilir. Burada acos ifadesi arccosinüs olup kosinüs fonksiyonunun tersini
temsil etmektedir. Matlab ortamında ters fonsiyon acos ve asin ifadeleri ile belirlenir.
İki vektörün ortoganallik şartı:
İki vektör arasındaki açı 90° ise bu iki vektör ortoganaldir denir . Diğer bir deyişle denklem
(2) ile verilen ifade 0 ise burada A ve B vektörleri ortoganaldir olarak düşünülür.
( A, B)
0
A B
cos 
(3)
Bir vektörün diğer bir vektör üzerinde izdüşümü
A vektörünü B vektörü üzerindeki iz düşümü x vektörü olsun. X vektörü aşağıdaki gibi
hesaplanır.
x
( A, B)
( A, B)
B
B
2
( B, B )
B
örnek
>> A
A=
1
2
3
8
1
>> B
B=
5
>> x=(dot(A,B)/(norm(B)^2))*B
x=
1.3333
2.1333
0.2667
(4)
A
x
B
MATRİSLER
Daha öncede belerttiğimiz gibi vektörler tek boyutku sayı dizleri matrisler ise iki boyutlu sayı
dizileridir. M satır sayısı n sütun sayısı olmak üzere mxn boyurunda bir matris aşağıdaki gibi
yazılır.
 a11 a12 ... a1n 
a
a22 ... a2 n 
21

A
,
 .
.
.
. 


 am1 am 2 ... amn 
Satır sayısı ile sütun sayısı eşit olan matris kare matris olarak ifade edilir. A matrisinde aij
elemanı A matrisinin i.satırının j.sütununun elemanıdır.
Matlab ortamında matris iki türlü tanımlanır. Birincisi daha önce bahsettiğimiz gibi her satırın
son elemanı sonuna “;” işareti konarak bütün elemanlar yan yana yazılır. İkinci yöntem ise
matris aynen yazıldığı formda girilir. Aşağıdaki örnekleri inceleyelim.
Örnek:
>> A=[1 2 3; 4 5 3; 2 2 1;]
A=
1
2
3
4
5
3
2
2
1
Örnek:
>> A=[1 2 3
456
7 8 9]
A=
1
2
3
4
5
6
7
8
9
Örnek:
>> A
A=
1
2
3
3
>> A(1,2)
ans =
2
>> A(1,1)
ans =
1
MATRİS TRANSPOZU
Bir matrisin satırları ile sütunlarının yer değiştirilmesi elde edilen matrise o matrisin
transpozu denir. A matrisnin transpozu B ise B=AT ile ifade edilir. Matlab ortamında bu işlem
“ ’ ” ifadesi ile gerçekleştirilir. Aşağıdaki örnekleri inceleyelim.
Örnek
>> A
A=
1
2
3
4
5
6
7
8
9
>> B=A'
B=
1
4
7
2
5
8
3
6
9
BİRİM MATRİS
Ana köşegen üzerindeki elemanları 1, bunun dışındaki bütün elemanları 0 olan matrise birim
matris denir.
1 0 0 
I  0 1 0 
0 0 1 
Matlab ortamında birim matrisi tanımlarken “ eye” komutu kullanılır. Eye komutu kullanırken
parantez içine birim matrisin boyutları yazılır. Örneğin eye(2) veya eye(2,2) komutu 2x2
boyutunda birim matris oluşturulur.
örnek
>> eye(2)
ans =
1
0
0
1
örnek
>> eye(2,2)
ans =
1
0
0
1
Matlab ortamında size komutu herhangi bir matris veya vektörün boyutunu tanımlamak için
kullanılır.
örnek
>> A=[1 2 3; 5 6 2]
A=
1
2
3
5
6
2
>> [m,n]=size(A)
m=
2
n=
3
Yukarıdaki örneğe baktığımızda size komutu İle tanımlanan 2x3 boyutlarındaki matrisin satır
sayısı m , sütun sayısı ise n değişkenine atanmıştır.
Örnek
>> A
A=
1
2
3
5
6
2
>> eye(size(A))
ans =
1
0
0
0
1
0
Matrisin skaler bir sayı ile çarpımı
Bir matrisi skaler bir sayı ile çarpmak demek o matrisin bütün elemanlarını o skaler sayı ile
çarpmak demektir. Aşağıdaki örnekleri inceleyelim.
>> A=[1 2; 3 3]
A=
1
2
3
3
>> 2*A
ans =
2
4
6
6
>> 2*A-1
ans =
1
3
5
5
Matrislerin toplanması ve çıkartılması
Matrislerde toplama ve çıkarma işlemi yapılabilmesi için ele alınan iki matrislerin boyutları
eşit olması gerekir. Eğer boyutlar eşit olan iki matris toplanacakca aynı indilere sahip
elemanlar kendi arlarında toplanarak aynı indis yerine yazılır. Aşağıdaki örnekleri inceleyelim
>> A
A=
1
2
3
3
>> B=[1 5; 8 9]
B=
1
5
8
9
>> A+B
ans =
2
7
11
12
>> A-B
ans =
0 -3
-5 -6
Matrislerin çarpımı
İki matrisin çarpma işlemine tabi tutulabilmesi için birinci matrisin sütün sayısı ikinci
matrisin satır sayısına eşit olmalıdır. Örneğin A matrisi mxn boyutunda olsun . Eğer B
matriside nxk boyutunda ise C=AxB matrisi elde edilebilir. Aşağıdaki örnekleri inceleyelim.
>> A=[1 2 3]
A=
1
2
3
>> B=[2; 3; 4]
B=
2
3
4
>> A*B
ans =
20
Yukarıdaki örnekte 1x2+2x3+3x4=20 elde edilir.
Ters matris
A matrisinin tersi B olsun. Bu durumda bu iki matrisin çarpımı birim matrise eşit olacaktır.
A * B  I , B  A1 , A * B  B * A  I
Matlab ortamında bir matrisin tersi inv() fonksiyonu ile gerçekleştirilir. Aşağıdaki örnekleri
inceleyelim.
>> A=[2 1; 4 3]
A=
2
1
4
3
>> B=inv(A)
B=
1.5000 -0.5000
-2.0000
>> A*B
ans =
1.0000
1
0
0
1
Matrisin tersi alma işlemi “ ^ ” operatörü ilede gerçekleştirilir.
>> A
A=
2
1
4
3
>> A^-1
ans =
1.5000 -0.5000
-2.0000
1.0000
Matrisin rankı
Bir matrisin rankı tamamı 0 olmayan satırların sayısıdır. Matlab ortamında bir matrisin rankı
rank () komutu ile hesaplanır. Aşağıdaki örnekleri inceleyelim.
örnek
>> A=[0 0 ; 1 2]
A=
0
0
1
2
>> rank(A)
ans = 1
örnek
>> B
B=
1.5000 -0.5000
-2.0000
1.0000
>> rank (B)
ans =
2
Not: Matlab ortamında değişken tanımla çok önemlidir. Değişken tanımlama yazılırken her
zaman sol taraftaki ifade değişkenin adı, sağ taraftaki ifade ise değişkenin değeri olmadır.
(a=2, b=3.3, c=b vs…) Ayrıca matlab büyük –küçük karakter ayrımı yapmaktadır. Dolayısıyla
A=2 ile a=3 ifadeleri iki farklı değişkendir.
Matrisin kuvveti
Matlab ortamında tanımlanan matrisin her bir elemanın tek tek kuvvetleri alınmak istediğinde
.^ işlemi kullanılır. Bu işlem matrisin skaler olarak üst alma işlemini gerçekleştirir. Aşağıdaki
örnekleri inceleyelim.
Örnek
>> A=[1 3; 4 3]
A=
1
3
4
3
>> A.^2
ans =
1
9
16
9
Yukarıda yaptığımız işlemi A^2 işlemi ile karıştırılmamalıdır. A^2 işlemi A matrisi kendisi
ile matris çarpma işlemine tutulmasıdır. (AxA).
Örnek:
>> A=[1 3; 4 3]
A=
1
3
4
3
>> A.^2
ans =
1
9
16
9
>> A^2
ans =
13
12
16
21
MATİSİN DETERMİNANTI
Bir matrisin determinantı tek bir skaler sayıdır. Örneğin basitlik olması açısından 2x2
boyutunda bir matrisin determinantı hesaplanırken;
a 
a
A   11 12  ,
 a21 a22 
A  a11 * a22  a12 * a21
Fakat bu basit işlem matris boyutları arttıkça geçerliliğini kaybetmekte, zorlaşmaktadır.
Matlab ortamında matrisin boyutları ne kadar büyük olursa olsun determinant hesabı oldukça
kolaydır. det( ) komutu matlab ortamında bir matrisin determinantı hesaplamada kullanılır.
Aşağıdaki örnekleri inceleyelim.
Örnek:
>> A=[1 2 3; 4 2 5; 5 6 8]
A=
1
2
3
4
2
5
5
6
8
>> det(A)
ans =
14.0000
ÖZDEĞER VE ÖZ VEKTÖRLER
A bir kare ve I birim matris olmak üzere
det( A   I ),
İfadesini 0 yapan  değerlerine A matrisinin öz değerleridir denir.
Aynı zamanda Ax   x  0 ifadesinde   0 olmak üzere eşitliği sağlayan x değerlerine A
matrisinin öz vektörü denir.
Örnek:
2 5
A
 , matrisinin özdeğerlerini bulunuz.
 1 2 
det( A   I ),
2  
A
 1

,
2   
5
(2   )(2   )  5(1)
1  i, 2  i
Matlab ortamında bir matrisin öz değerleri eig ( ) fonksiyonu kullanılarak elde edilir.
Aşağıdaki örnekleri inceleyelim.
>> A
A=
2
5
-1 -2
>> eig(A)
ans =
-0.0000 + 1.0000i
-0.0000 - 1.0000i
[m,n]=eig(A) ifadesi m sütunları A matrisinin öz vektörlerinden oluşur, n ise köşegenlerinde
A matrisinin öz değerlerini bulunduran matrisidir. (Sistemin öz değerleri doğal frekans
kareleridir.) Aşağıdaki örnekleri inceleyelim
Örnek:
>> A
A=
2
5
-1 -2
>> [m,n]=eig(A)
m=
0.9129
-0.3651 + 0.1826i
0.9129
-0.3651 - 0.1826i
n=
-0.0000 + 1.0000i
0
0
-0.0000 - 1.0000i
[Q,R]=qr(A) A matrisini Q ve R adında iki matrisin çarpımı haline getirir. Aşağıdaki
örnekleri inceleyelim.
Örnek:
>> A
A=
2
5
-1 -2
>> [m,n]=qr(A)
m=
-0.8944
0.4472
0.4472
0.8944
n=
-2.2361
-5.3666
0
0.4472
>> m*n
ans =
2.0000
5.0000
-1.0000 -2.0000
[s, v, d]=svd(A) A matrisini s, v, d adında üç matrisin çarpımı haline dönüştürür.
Örnek:
>> A
A=
2
5
-1 -2
>> [s,v,d]=svd(A)
s=
-0.9239
0.3827
0.3827
0.9239
v=
5.8284
0
0
0.1716
d=
-0.3827 -0.9239
-0.9239
>> s*v*d
0.3827
ans =
2.0000
5.0000
-1.0000 -2.0000
Orth Fonksiyonu Ve Ortonormalizasyonu
Herhangi bir A kare matrisi ile aynı boyutta olan bir Q matrisi ve bu Q matrisinin
transpozesinin çarpımı birim matrisi veriyorsa Q matrisi A matrisi için ortonormal biz baz
oluşturur. MATLAB’DA bir A matrisinden ortonormal baz oluşturmak için “orth” fonksiyonu
kullanılır. Aşağıdaki örnekleri inceleyelim
Örnek:
>> A=[1 2 4; 3 2 1; 8 5 9]
A=
1
2
4
3
2
1
8
5
9
>> Q=orth(A)
Q=
-0.2967
0.7323 -0.6130
-0.2339 -0.6781 -0.6968
-0.9259 -0.0634
0.3725
>> Q*Q'
ans =
1.0000
0.0000
0.0000
0.0000
1.0000
0
0.0000
0
1.0000
% BU BİR BİRİM MATRİSİDİR.
BÖLÜM 3:
MANTIKSAL İŞLEMLER
Programlama dillerin birçoğunda sonucun doğru olası (1) yanlış olması (0) ile gösterilir.
Karşılaştırma operatörleri
Bu operatör iki değişkenin değer bakımından karşılaştırmasını yapar. Eğer doğru ise (1) yanlış
ise (0) değeri oluşur. Aşağıdaki tabloda karşılaştırma operatörleri gösterilmiştir.
OPERATÖR
==
~=
>
>=
<
<=
AÇIKLAMA
Eşittir.
Eşit değildir.
Büyüktü
Büyük eşittir
Küçüktür
Küçük eşittir.
Kısaltması
eq(x,y)
ne(x,y)
qt(x,y)
ge(x,y)
lt(x,y)
le(x,y)
Aşağıdaki örnekleri inceleyelim.
Örnek:
>> 5>1
ans =
1
Yukarıdaki örnekte görüldüğü gibi büyüktür karşılaştırma operatörü kullanılmıştır. 5 büyük
müdür 1’den , EVET doğru ( 1 ).
Örnek:
>> 1>5
ans =
0
Bu örnekte yine büyüktür operatörü kullanılmıştır. 1 büyük müdür 5’den hayır yanlış (0).
Örnek:
>> 5==5
ans =
1
Örnek:
>> 9~=6
ans =
1
9 eşit değil midir 6’ya , EVET (eşit değildir) doğru (1).
Örnek:
>> 'A'<'B'
ans =
1
Yukarıdaki örnekte tırnak içi ifadeler string olarak değerlendirilir ve alfabetik sıralamasına
bakılır.
Örnek:
>> A=[1 2; 5 6]
A=
1
2
5
6
>> A>3
ans =
0
0
1
1
Yukarıdaki örnekte A matrisi bir skaler ile (3) karşılaştırılmıştır. Bu durumda A matrisinin
elemanları ayrı ayrı bu skaler ile karşılaştırılır ve değerleri yazılır.
Download