MATLAB ile Sembolik Analiz

advertisement
MATLAB ile Sembolik
Analiz
MATRİSLER VE MATRİSLERLE İŞLEMLER
DİZİLER – Bir Boyutlu Dizi (Vektör)
 Liste şeklinde dizi oluşturma
Değişken_adı = [ Vektör Elemanları]
Satır Vektör: x = [ 1 5 7 -3 6 4 5 8 ] veya x = [ 1, 5, 7, -3, 6, 4, 5, 8 ]
Sütun Vektör: x = [ 1; 5; 7; -3; 6; 4; 5; 8 ] veya x=[2
3
5]
DİZİLER – Bir Boyutlu Dizi (Vektör)
• Belli bir kurala göre sıralı giden diziler
•
İlk eleman, artım miktarı, son eleman ile belirlenen diziler
Değişken_adı = [ m:q:n] veya Değişken_adı = m:q:n
m=dizinin ilk elemanı, q=artım miktarı, n=dizinin son elemanı
•
İlk eleman, son eleman ve terim sayısı ile belirlene diziler
Değişken_adı = linspace(xi, xf, n)
xi=ilk eleman, xf=son eleman, n=eleman sayısı (Bu değer girilmezse, varsayılan olarak 100 kabul edilir.)
MATRİSLER
• Matris Oluşturma
Değişken_adı=[ilk satır elemanları; ikinci satır elemanları; … ; son satır elemanları]
VEYA
Örnek
A matrisini oluşturan komutu yazınız.
Zeros, Ones ve Eye
Sıfır Matrisi
‘ : Transpoze İşleci
Bir Matrisi
Birim Matris
Dizi Adresleme
• V bir vektör ise V(n) ile vektörün n inci elemanına erişilir.
• A bir matris ise A(m,n) ile matrisin m inci satır n inci sütun elemanına erişilir.
Dizi Adresleme – Kolon Operatörü (:)
• Vektörler
•
•
V(:) – Vektörün tüm elemanlarını ifade eder. (Yani, V ile aynıdır)
V(m:n) – Vektörün m ile n arasındaki elemanlarını ifade eder.
Dizi Adresleme – Kolon Operatörü (:)
• Matrisler
•
•
•
•
•
A(:,n) – Matrisin n inci sütunundaki tüm elemanlar
A(m,:) – Matrisin n inci satırındaki tüm elemanlar
A(:,m:n) – Matrisin m ve n arasındaki (m ve n dahil) tüm sütun elemanları
A(m:n,:) – Matrisin m ve n arasındaki (m ve n dahil) tüm satır elemanları
A(m:n, p:q) – Matrisin m ve n satırları ile p ve q sütunları arasındaki tüm elemanlar
Dizi Adresleme – Kolon Operatörü (:)
Dizi Adresleme – Daha Fazlası
v vektörünün 3 üncü, 5 inci ve 7-10
arası elemanlarını nasıl alırız?
A matrisinin 1 inci, 3 üncü satırı, 1 inci 3 üncü
sütunu ve 5 ile7 inci sütun arası elemanlarını nasıl
alırız?
Var olan değişkenlere elemanlar ekleme
• Bir Vektöre Elemanlar Ekleme
DF vektörünün sonuna 10 15 20 25 30 35 elemanlarını ekleme
Var olan değişkenlere elemanlar ekleme
• İki Vektörü Birleştirme ve bir vektöre yeni vektör ilave etme
Var olan değişkenlere elemanlar ekleme
• Matrise eleman ekleme
Var olan değişkenlere elemanlar ekleme
Eleman Silme
6 ıncı elemanı siler
3-6 arasındaki tüm elemanı siler
Var Olan Diziler İçin Yerleşik (Built-in) Fonksiyonlar
A vektörünün uzunluğunu verir
A matrisinin boyutunu verir
A matrisinin elemanlarından mxn tipinde
yeni bir matris oluşturur.
Var Olan Diziler İçin Yerleşik (Built-in) Fonksiyonlar
v bir vektör ise köşegen elemanları v nin
elemanları olan skaler matris oluşturur.
A bir matris ise A nın köşegen
elemanlarından oluşan bir vektör oluşturur.
Problem 1
• ones ve zeros komutlarını kullanarak aşağıdaki matrisi oluşturunuz.
VEYA
Problem 2
• ones ve zeros komutlarını kullanarak aşağıdaki matrisi oluşturunuz.
Problem 3
• Aşağıdaki matrisleri oluşturan Matlab komutlarını yazınız.
Problem 4
• Tek komutla aşağıdaki matrisleri oluşturunuz.
Problem 5
• Yukarıdaki vektör için aşağıdaki komutların ekran görüntüsü ne olur?
• Aşağıdaki komutlar çalıştırılırsa ekran görüntü ne olur?
Problem 6
• zeros, ones ve eye komutları ile aşağıdaki matrisleri oluşturunuz.
•
Tüm elemanları 1 olan 2x2 lik bir A matrisi oluşturduktan sonra matrisin kendisini
kullanarak (gerekirse birkaç kez) aşağıdaki matrisi oluşturunuz.
Diziler ve Matrislerle Matematiksel İşlemler
• Toplama ve Çıkarma
Bölme ve Matris Tersi
Bir A matrisinin tersini bulmak için inv(A)
komutu veya A^-1 komutu kullanılabilir.
/ (Sol Bölme) ve \ (Sağ Bölme)
işleçleri
VEYA
VEYA
Eleman Bazlı İşleçler
*, ^ ve /, \ işleçleri matrissel anlamda işlem yapar.
Eleman Bazlı İşleçler
*
Matris Anlamında Çarpma
.*
Eleman eleman çarpma
^
Matris Anlamında Üs Alma (A^2=A*A)
.^
Eleman eleman üs alma
/
Matris Anlamında Sol Bölme
./
Eleman eleman sol bölme
\
Matris Anlamında Sağ Bölme
.\
Eleman eleman sağ bölme
Eleman Bazlı İşleçler
fonksiyonunun x=1,2,…,8 için değerlerini hesaplayınız.
fonksiyonunun x=1,3,5,7,9,11 için değerlerini hesaplayınız.
Matlabde yerleşik matematik fonksiyonları eleman bazlı çalışırlar.
Dizi Analizleri için Yerleşik Fonksiyonlar
Fonksiyon
Görevi
C=mean(A)
A bir vektör ise C, A nın elemanlarının ortalama
değeridir. A bir matris ise C, A nın her sütunun
ortalama değerlerinden oluşan bir satır vektördür.
C=max(A)
A bir vektör ise C, A daki en büyük elemandır. A bir
matris ise C, A nın her sütununun en büyük
elemanlarından oluşan bir satır vektördür.
[d,n]=max(A)
A bir vektör ise d, A daki en büyük eleman, n ise en
büyük elemanın indis numarasıdır. A bir matris ise d,
A nın her sütunun en büyük elemanından oluşan satır
vektör, n ise en büyük elemanların sütundaki yerine
gösteren satır vektördür.
C=min(A)
C=max(A) ile aynıdır. En büyük eleman yerine en
küçük eleman için çalışır.
[d,n]=min(A)
[d,n]=max(A) ile aynıdır. En büyük eleman yerine en
küçük eleman için çalışır.
Örnek
Dizi Analizleri için Yerleşik Fonksiyonlar
Fonksiyon
Görevi
C=sum(A)
A bir vektör ise C, A nın elemanlarının toplamıdır. A
bir matris ise C, A nın her sütunundaki elemanların
toplamından oluşan bir satır vektördür.
C=sort(A)
A bir vektör ise C, A nın elemanlarının sıralı
(küçükten büyüğe) halidir. A bir matris ise C, A nın
her sütunun sıralı halidir.
C=median(A)
A bir vektör ise C, A daki elemanların medyan
değeridir. A bir matris ise her sütunun medyan
değerinden oluşan bir satır vektördür.
C=std(A)
A bir vektör ise C, A daki elemanların standart
sapmasıdır. A bir matris ise her sütunun standart
sapmasından oluşan bir satır vektördür.
Örnek
Dizi Analizleri için Yerleşik Fonksiyonlar
Fonksiyon
Görevi
det(A)
A kare matrisinin determinantı
dot(a,b)
a ve b vektörlerinin skaler çarpımı (iç çarpımı)
cross(a,b)
a ve b vektörlerinin vektörel çarpımı
inv(A)
A kare matrisinin tersini verir.
Örnek
Rasgele (Random) Sayı Üretme
Komut
Görevi
rand
0 ile 1 arasında rasgele bir sayı üretir.
rand(m,n)
Tüm elemanları 0 ile 1 arasında rasgele sayı olan
mxn boyutunda bir matris üretir.
rand(n)
Tüm elemanları 0 ile 1 arasında rasgele sayı olan
nxn boyutunda bir kare matris üretir.
randperm(n)
1 ve n arasındaki tam sayıların rasgele diziliminden
(permütasyonundan) oluşan bir vektör oluşturur.
Örnek
a ile b arasında rasgele sayı nasıl üretirsiniz?
Düzgün dağılmış rasgele sayı üretme (randi)
Komut
Görevi
randi(imax)
1 ve imax arasında rasgele bir sayı üretir.
(imax bir tamsayıdır)
randi(imax,n)
1 ve imax arasında rasgele sayılardan oluşan nxn
tipli bir matris üretir.
randi(imax,m,n)
Tüm elemanları 0 ile 1 arasında rasgele sayı olan
mxn boyutunda bir kare matris üretir.
Yukarıdaki komutlarda imax
yerine [imin imax] kullanılırsa
imin ile imax arasında sayılar
üretilir.
Örnek
Normal dağılmış rasgele sayı üretme (randn)
Normal standart dağılımda ortalama 0, varyans ise 1 dir.
rand(m,n) komutu 0 ortalamalı, 1 varyanslı normal dağılmış sayılardan
oluşan mxn boyutunda rasgele bir matris oluşturur.
50 ortalamalı, 6 varyanslı normal dağılmış sayılardan oluşan bir matris nasıl
oluşturursunuz?
Normal dağılmış tamsayı üretmek
Problem 7 (Vektörlerin Toplanması)
Şekilde gösterilen bir dirseğe üç kuvvet etki etmektedir. Dirseğe etki eden
net kuvveti bulunuz?
Bir kuvvet bir vektördür (yönü ve büyüklüğü olan fiziksel bir niceliktir).
Kartezyen koordinat sisteminde iki boyutlu bir F vektörü
clear
F1M=400; F2M=500; F3M=700;
Th1=-20; Th2=30; Th3=143;
F1=F1M*[cosd(Th1) sind(Th1)];
F2=F2M*[cosd(Th2) sind(Th2)];
F3=F3M*[cosd(Th3) sind(Th3)];
Ftot=F1+F2+F3;
FtotM=sqrt(Ftot(1)^2+Ftot(2)^2);
Th=atand(Ftot(2)/Ftot(1));
şeklinde yazılabilir.
F : Kuvvetin büyüklüğü
: Kuvvetin x ekseni ile yaptığı açı
Eğer Fx ve Fy bilinirse F ve belirlenebilir.
Dirseğe etki eden toplam kuvvet, dirseğe etki eden kuvvetlerin toplamıdır.
Buna göre aşağıdaki üç adımı takip ederek, çözümün matlab kodunu
yazınız.
• Her kuvveti iki elemanlı bir vektör olarak yaz. Vektörün ilk elemanı
vektörün x bileşeni, ikinci elemanı ise vektörün y bileşeni olacaktır.
• Vektörleri toplayarak toplam vektörünü oluştur.
• Toplam vektörünün büyüklüğü ve yönünü bul.
Problem 8 (Eleman Eleman Hesaplama)
m
F
Sürtünme ( )
Sürtünme katsayısı bir kütleyi hareket ettirmek için uygulanması gereken
kuvvetin ölçüsüyle belirlenebilir. Eğer m kütleli bir cismi hareket ettirmek
için uygulanması gereken kuvve F ise
formülü hesaplanır. Buna göre aşağıda verilen kütle ve kuvvet
değerlerine göre sürtünme katsayısını ve bu katsayıların ortalamasını
hesaplayan matlab komutlarını yazınız.
Problem 9 (Lineer denklem sistemi çözme)
Şekildeki elektrik devresinde dirençler ve voltaj kaynakları gözükmektedir. Kirchoff’un
Voltaj Kanunu üzerine kurulan ızgara akım yöntemine (mesh current method) kullanarak
herbir direnç üzerindeki akımı belirleyen matlab script dosyasını yazınız.
Kirchoff’un Voltaj Kanunu: Kapalı bir devre üzerindeki toplam voltaj sıfırdır.
Izgara akım yöntemine göre, ilk olarak her bir ızgara için bir akım (i1, i2, i3, i4) belirlenir.
Kirchoff Kanunu her bir ızgara için uygulanırsa, akımlar için bir lineer denklem sistemi elde
edilir.
İki ızgaraya ait bir dirençteki akım, ilgili ızgaralardaki akımların toplamıdır. O halde bütün
akımların aynı yönde olduğunu varsaymak uygundur.
O halde problemdeki 4 ızgara için denklemler:
Problem 10 İki Parçacığın Hareketi
Bir tren ve bir otomobil bir geçide yaklaşmaktadır. Tren geçidin güneyinden
400 ft uzaklıkta sabit 54mi/h hızla kuzeye doğru, otomobil ise geçidin
batısından 200 ft uzaklıkta 28mi/h hız ve 4 ft/s^2 ivme ile doğuya doğru
gitmektedir. Gelecek 10 saniye için tren ve otomobilin pozisyonlarını,
aralarındaki mesafeyi, otomobilin hızını, trenin otomobile göre hızını 11x6
lık bir matriste saklayan ve ekrana yazan matlab komutlarını yazınız.
Sabit bir ivmeyle düz bir çizgi boyunca hareket eden bir parçacığın konum
denklemi
ile verilir.
Problemler
1) Aşağıda verilen fonksiyonların, verilen noktalardaki değerlerini bulan matlab komutlarını yazınız.
2)
vektörü yönündeki birim vektör
olduğunu biliyoruz. Buna göre
yönündeki birim vektörü tanımlayan matlab komutunu yazınız.
3)
olduğunu gösteriniz. Bunu göstermek için x= 1.5, 1.0, 0.5, 0.1, 0.01, 0.001, 0.0001 vektörünü ve buna
karşılık y=sinx/x değerlerinden oluşan y vektörünü oluşturunuz.
4)
5)
serisinin 1 e yakınsadığını n=10, n=20, n=30, n=40 için seri değerlerini hesaplayarak gösteriniz.
serisinin
ye yakınsadığını n=10, n=20, n=30, n=40 için seri değerlerini hesaplayarak gösteriniz.
Kaynaklar
• MATLAB ile Sembolik Analiz ders notları, Prof.Dr. Erhan ÇOŞKUN, Karadeniz Teknik
Üniversitesi
• MATLAB, An Introduction with Applications, Amos Gilat, The Ohio State University
Download