Bilgisayar ve internet forumu  

Geri git   Bilgisayar ve internet forumu > Bigisayar ve İnternet > Bilgisayar Hakkında Genel Bilgiler
Kayıt ol Yardım Üye Listesi Ajanda Arama Bugünki Mesajlar Forumları Okundu Kabul Et

Bilgisayar Hakkında Genel Bilgiler Genel bilgisayar konularının yer aldığı bölüm. Bilgisayar ile ilgili her konu yer alabilir.

Cevapla
 
LinkBack Seçenekler Stil
Alt 04-10-2008, 02:56 AM   #1 (permalink)
Junior Member
 
Üyelik tarihi: Apr 2008
Mesajlar: 1
Tecrübe Puanı: 0 turkuaz77 is on a distinguished road
Standart matlab kurulumu ve matlab ıslemlerı

MATLAB KULLANIMI VE MATRIS ISLEMLERI

“Matlab” programı ( MATrix LABoratory 'nin ilk üç harfleri alınarak isimlendirilmiştir.) mühendislik uygulamalarının, hesaplamalarının ve simülasyonlarının çoğunun gerçekleştirildiği matris ve matematik tabanlı kompleks bir programdır. Her türlü grafiksel sonuçlar istenilen tarzda alınabildiği için kullanimalani çok geniştir. Ayrıca MATLAB versiyonlarından en az 6.0 ve üzeri olanlarininkullanilmasi güncellik açısından daha yararlı olacaktır.

Bu bölümde programı kullanmaya başlamak için giriş komutları, matematiksel fonksiyonlar ve matris operatörleri anlatılacaktır. Ayrıca kılavuzun en son kısmında da en çok kullanılan matris komutları ve fonksiyonları tablo halinde verilmiştir.

help ‘fonksiyon ismi’
komutu yazıldığında yardim istenilen fonksiyon hakkında detaylı bilgiye ulaşılabilmektedir.

help help
yazıldığında ise on-line olarak yardim kılavuzunun nasıl kullanılacağı hakkında bilgilere ulaşılabilmektedir.

-- Matris Operatörleri :
Aşağıda verilen simgeler matris islemlerinde kullanilmaktadir:
+ Toplama
- Çıkarma
* Çarpma
^ Kuvvet alma
‘ Konjüge trans pozunu alma

-- Mantık ve İlişki Operatörleri :

< Küçük & Ve
<= Küçük eşit | Veya
> Büyük ~ Değil
~= Eşit değil
-- Başlangıç olarak komut satırına :
data
yazılırsa program tarafından geçerli olan tarih alınacaktır.Yani :
ans=
30-Oct-2002
-- MATLAB bir işlemin sonucunu ans= .... şeklinde gösterir. ( ans = answer = cevap)
-- MATLAB programından çıkmak için ise exit veya quit yazmak yeterli olacaktır.
-- En son yazılan komutların hepsine üst ve alt yön tuslarina dokunarak kolay bir sekilde ulaşılabilir.
-- En son tanımlanan herhangi bir ‘x’ değeri için yapılan işlemlerden sonra bu ‘x’ değeri komut satırına yazılıp enler tuşuna basılırsa daha önce neye karşılık olarak tanımlandığı ekrana yazılacaktır.
-- nx1 veya 1xn boyutunda vektör tanımlamak için :
x=[1 2 3 -4 -5] veya
X=[1,2,3,-4,-5] yazılmalıdır.
Yukarıdaki iki yazım biçiminden okuma kolaylığı olması için ilk yazılan tip kullanılacaktır.
-- Tanımlanan bu satir vektörünü sütun vektörüne dönüştürmek için :
y=x’ yazılırsa ekranda görülen değer aşağıdaki gibi olacaktır:
y=
1
2
3
-4
-5
-- Matris tanımlamak için asagidaki A matrisi verilmiş olsun :
1.2 10 15
A = 3 5.5 2
4 6.8 7
Bu matrisi MATLAB’e tanıtmak için su şekilde yazılmalıdır :
A = [1.2 10 15 ; 3 5.5 2 ; 4 6.8 7]
Yani her satirin sonunun neresi olduğunu konulan noktalı virgül işareti temsil etmektedir.
-- Örnek olarak asagidaki B matrisini tanıtmak için :
1 e-0.02
B =
v2 3
B = [1 exp(-0.02); sqrt(2) 3] seklinde yazılmalıdır.
Ekranda ise su şekilde gözükecektir:
B = 1.0000 0.9802
1.4142 3.0000
-- Apostrofa işareti (‘) matrisin Konjüge transpozesinin alınmasına yarar. Eğer matris reel bir matris ise basit olarak transpoze alim işlemi olarak da tanımlanabilir..
Yeni bir A matrisi tanımlayalım :
A = [1 2 3 ; 4 5 6 ; 7 8 9]
Ekranda görülecek matris su şekilde olacaktır :
A =
1 2 3
4 5 6
7 8 9
5
Bu matrisin transpozesini almak için :
C = A’ yazılırsa ekranda görülecek transpoze değeri :
C =
1 4 7
2 5 8
3 6 9
-- Kompleks sayıların girilmesi için ise i2=-1 denkleminin kökü i veya j olarak tanımlanır.
Örnek olarak 1+jv3 değerini tanıtmak için :
X = 1+sqrt(3)*i veya
X = 1+sqrt(3)*j olarak yazılmalıdır.
Bu kompleks sayi üstel formatta da yazılabilmektedir :
1+jv3 = 2 exp[(? /3)*j]
Bu durumda komut satırına asagidaki ifade yazilacaltir :
x = 2 exp[pi/3)*j]
i ve j daha önceden değişken olarak kullanılmışsa tanımlama için ii ve jj kullanılacaktır.Yani :
ii = sqrt(-1)
jj = sqrt(-1)
Dolayısıyla asagidaki yazım da mümkün olmaktadır :
X = 1+sqrt(3)*ii
X = 1+sqrt(3)*jj
6
-- Kompleks matris tanımlamak için asagidaki X matrisi verilmiş olsun:
1 j
X =
-j5 2
Komut satırına ise su şekilde girilecektir :
X = [1 j ; -j5 2]
Bu durumda ekranda görülecek deger :
X =
1.0000+0 0+1.0000i
0-5.0000i 2.0000+0
Y = X’ komutu yazılırsa :
Y =
1.0000+0 0+5.0000i
0-1.0000i 2.0000+0 iletisi ekranda okunacaktır.
Daha önce de belirtildiği gibi yukarıdaki işlem Konjüge transpoze olarak algılanmaktadır. Eğer sadece transpoze alınacaksa (konjügesiz) komut su şekilde yazılmalıdır :
Y.’ veya conj(Y’)
Bu durumda ekranda gözükecek değerler :
ans =
1.0000+0 0-1.0000i
0+5.0000i 2.0000+0
-- Toplama ve çıkarma işlemlerinin yapılması için asagidaki M ve N matrisleri verilmiş olsun :
2 3 1 0
M = 4 5 N = 2 3
6 7 0 4
Bu değerleri ekrana girmek için:
M = [2 3 ; 4 5 ; 6 7]
M =
2 3
4 5
6 7
N = [1 0 ; 2 3 ; 0 4]
M =
1 0
2 3
0 4
Toplama işlemi için:
C = M+N
C =
3 3
6 8
6 11
Eğer x vektörü su asagidaki gibi verilirse :
5
X = 4
6
Bu vektörü su şekilde tanıtmak gerekir :
X = [5 ; 4 ; 6]
Örneğin T = X-1 gibi işlemi gerçekleştirmek için :
T = X-1
T =
4
3
5
8
-- Matris çarpımı daha önce de belirtildiği gibi * çarpma operatörüyle yapılmaktadır.
Asagidaki örnek incelenirse çarpmanın da tanımı gereği çarp ilan matrislerin boyutlarının uyuşması gerekmektedir. Aksi takdirde çarpma işlemi yapılmayacak ve hata mesajı verilecektir.
x = [1 ; 2 ; 3]; y = [4 ; 5 ; 6]; A = [1 1 2 ; 3 4 0 ; 1 2 5]
x’*y
ans =
32
x*y’
ans =
4 5 6
8 10 12
12 15 18
b = A*x
b =
9
11
20
Bunların dışında matris bir skiler değerle de çarpılabilir :
5*A
ans =
5 5 10
15 20 0
-- Matris üssü ( expm(A) ) nxn matrise uygulanır.Matematiksel tanımı ise şu şekildedir:
expm(A) = I + A + A2/2! + A3/3! + ...
Eğer A kompleks bir matris ise abs(A) degeri de kompleks modül degerler üzerinden hesaplanacaktir.Yine matematiksel ifadesine bakacak olursak :
abs(A) = sqrt(real(A).^2 + imag(A).^2)
9
angle(A) ise faz açilarini radyan cinsinden A kompleks matrisi için hesaplamaktadir.
Burada tanim degerleri –? ve + ? arasinda kabul edilmektedir.
Sonuç olarak verilen bir K matrisi için asagidaki uygulama incelenebilir :
A = [2+2*i 1+3*i ; 4+5*i 6-i];
abs(A)
ans =
2.8284 3.1623
6.4031 6.0828
angle(A)
ans =
0.7854 1.2490
0.8961 -0.1651
-- Kompleks bir sayinin modülü ve faz açisini bulmak için :
z = x + iy = reiT
r = abs(z)
theta = angle(z)
z = r*exp(i*theta)
-- Bir vektörün elemanlarinin teker teker karesinin alinmasi islemi su sekilde yapilmaktadir :
x = [1 2 3];
x.^2
ans=
1 4 9
Eger kompleks sayilar mevcut ise :
y = [2+5*i 3+4*i 1-i]
y.^2
ans =
-21.0000+20.0000i -7.0000+24.0000i 0-2.0000i
2x2 bir kare matris olursa yine ayni sekilde :
A = [1 2 ; 3 4];
A.^2
ans =
1 4
9 16
-- Eleman elemana çarpma işlemi için çarpma operatörünün önüne bir nokta işareti (.)
konmaktadır :
x = [1 2 3], y = [4 5 6]
z = [x.y]
z = [4 10 18]
Bir örnek daha verilirse :
1 2 3 4 5 6
A = B =
1 9 8 7 6 5
C = A.*B
C =
4 10 18
7 54 40
-- Bir matrisin tüm elemanlarının tek tek karesini almak için :
A=[ 1 2 3 4 ]
A.^2
ans =
1 4 9 16
-- Eleman elemana bölme için ise :
u = x./y
11
u =
0.2500 0.4000 0.4000
0.1429 1.5000 1.6000
-- Bir matrisin tersini bulmak için inv(A) komutu kullanilir :
A = [0 1 0;0 0 1;-6 -11 -6];
inv(A)
ans =
-1.8333 -1.0000 -0.1667
1.0000 0 0
0 1.0000 0
-- Çeşitli komutlar ve durumlar tek bir sırada virgül (,) veya noktalı virgül ile ( ayrılarak yazılabilir.
-- Çıkış formatını istediğimiz uzunlukta elde edebiliriz. Eğer matris elemanları tamsayı ise bu durum sonuçta bir değişiklik yapmayacaktır. Bunun için asagidaki komutları kullanmak gerekmektedir :
format short
format long
x = [1/3 0.00002];
x
x =
0.3333 0.0000
format short; x
x =
0.3333 0.0000
format long; x
x =
0.3333333333333333 0.00002000000000000
12
-- 1’den 5’e kadar sayıları 0.5’lik aralıklarla yazdırmak istersek iki nokta’yı ( kullanmak yeterli olacaktır :
t =
1 2 3 4 5
t = 1:0.5:3
t =
1.0000 1.50000 2.0000 2.50000 3.0000
Düzgün azalan biçimde yazdırırsak :
t = 5:-1:2
t = 5 4 3 2
-- Bir matrisin i. satirini veya j. sütununu görüntülemek için asagida tanimlanan A matrisini komutlarıyla inceleyelim :
Asagidaki A matrisinin 2. satiri görüntülemek için : A(i ,
A = [0 1 0;0 0 1;-6 -11 -6]
A(2 ,
ans =
0 0 1
A matrisinin 3. sütununu görüntülemek için :
A(: , 3)
ans =
0
1
-6
-- Bir matrisin (i,j) ninci elemanını bulmak için :
k = A(3,3)
k = -6
13
-- Bir matrisin boyutlarını öğrenmek için size(A) komutu, rankini bulmak için renk(A) kullanılır.
A=
2 3 2
5 4 1
2 6 8
size(A)
ans =
3 3
rank(A)
ans =
3
-- Bir matrisin determinantını bulmak için det(A) komutu kullanılır.
A=
2 3 2
5 4 1
2 6 8
det(A)
ans =
-18
-- Bir matrisin normunu bulmak için ise norm(x) yazmak gerekmektedir. Matematiksel norm ifadesini verecek olursak :
norm(x) = sum(abs(x).^2)^0.5
x = [2 3 6]
norm(x)
ans =
7
14
-- Bir matrisin özdegerlerini bulmak için eig(A) komutu kullanılır :
A = [0 1 ; -1 0]
eig(A)
ans =
0+1.0000i
0 -1.0000i
-- Öz vektörleri bulmak da tek satirlik bir işlem gerektirmektedir. Aslında özvektörleri bulmak için verilen [X,D] = eig(A) komutu ayni zamanda öz değerleri de bulduğu için her iki bilgiye ayni anda ulaşma imkanı olmaktadır :
A = [0 1 0 ; 0 0 1 ; -6 -11 -6]
[X,D] = eig(A)
X =
-0.5774 0.2182 -0.1048
0.5774 -0.4364 0.3145
-0.5774 0.8729 -0.9435
D =
-1.0000 0 0
0 -2.0000 0
0 0 -3.0000
Burada X sonuç matrisinin her bir sütunu verilen A matrisinin bir öz değerini göstermektedir.D sonuç matrisinin diyagonalindeki (köşegenindeki) elemanların her biri de verilen A matrisinin özdegerlerini göstermektedir. Verilen es boyutlu farkli iki A ve B gibi matrisin genelleştirilmiş öz değerlerini ve öz vektörlerini bulmak için ise [X,D] = eig(A,B) komutu yazılmalıdır.
-- Karakteristik denklemi bulmak için poly(A) komutu kullanılır.
A = [0 1 0 ; 0 0 1 ; -6 -11 -6]
p = poly(A)
p =
1.0000 6.0000 11.0000 6.0000
Burada görülen sonuç katsayıları karakteristik denklemin katsayılarıdır.
Yani :
s3 + 6s2 + 11s + 6 = 0
-- Bir polinomun köklerini bulmak için roots(a) komutu yazılmalıdır. Yukarıdaki karakteristik denklemin köklerini bulmak istersek :
r = roots(p)
r =
-3.0000
-2.0000
-1.0000
-- Polinomlarin çarpımı için conv(a,b) komutu kullanılır.
a(s) = s2 – 20.6
b(s) = s2 + 19.6s + 151.2
a(s) ve b(s) Polinomlarin çarpmak için :
a = [1 0 -0.26]; b = [1 1.96 151.2]
c = conv(a,b)
c =
1.0e+003
0.0010 0.0196 0.1306 -0.4038 -3.1147
Dolayısıyla çarpım sonucu su şekilde yazılabilir :
c(s) = s4 + 19.6s3 + 130.6s2 – 403.8s – 3114.7
-- Bir polinomda herhangi bir tamsayı değerini hesaplatmak için polyval(c) komutu kullanılır :
p(s) = 3s2 + 2s + 1
p = [3 2 1];
polyval(p,5)
ans =
86
-- 1 ve 0 sayılarının istenilen matrissel boyutta çabuk olarak üretilebilmesi için ones(m,n) ve zeros(m,n) komutları kullanılabilir :

16
ones(2,2)
ans =
1 1
1 1
zeros(3,3)
ans =
0 0 0
0 0 0
0 0 0
-- Birim matris de eye(n) komutuyla istenilen boyutta olusturulabilir :
eye(5)
ans =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
-- Bir matrisin köşegenindeki elemanları listelemek için diag(A) komutu kullanılır :
A = [1 2 3 ; 4 5 6 ; 7 8 9] ;
diag(A)
ans =
1
5
9
Köşegenin elemanları haricindeki matris bileşenleri 0 olarak göstermek istersek :
diag(diag(A))
ans =
1 0 0
0 5 0
0 0 9
17
Köşegen matrisi oluşturmayla alakalı asagidaki diğer örnekler de incelenebilir :
diag(1:5)
ans =
1 0 0 0 0
0 2 0 0 0
0 0 3 0 0
0 0 0 4 0
0 0 0 0 5
diag(0:4)
ans =
0 0 0 0 0
0 1 0 0 0
0 0 2 0 0
0 0 0 3 0
0 0 0 0 4
[diag(1:5) – diag(0:4)]
ans =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
-- Bir matrisi rasgele olarak oluşturmak için rand(n) komutu kullanılır.0 ile 1 arasındaki sayıları alır.
rand(4)
ans =
0.3654 0.6739 0.3603 0.0493
0.1400 0.9994 0.5485 0.5711
0.5668 0.9616 0.2618 0.7009
0.8230 0.0589 0.5973 0.9623





















turkuaz77 isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla



Seçenekler
Stil

Yetkileriniz
Yeni Mesaj yazma yetkiniz aktif değil dir.
Mesajlara Cevap verme yetkiniz aktif değil dir.
Eklenti ekleme yetkiniz aktif değil dir.
Kendi Mesajınızı değiştirme yetkiniz aktif değil dir.

Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Bütün Zaman Ayarları WEZ +2 olarak düzenlenmiştir. Şu Anki Saat: 03:39 AM .


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Reklam İçin: İletişim formu

eXTReMe Tracker

Danışmanlık Hizmetleri