MATLAP - S. Murat BAĞDATLI

Download Report

Transcript MATLAP - S. Murat BAĞDATLI

MATLAB
MATrix LABoratory
Hazırlayan: S. Murat BAĞDATLI
MATLAB'ın Kullanım Amacı ve Alanı
•
•
•
MATLAB tüm mühendislik alanında,
sayısal
hesaplamalar,
veri
çözümlenmesi
ve
grafik
işlemlerinde kolaylıkla kullanılabilen
bir program dilidir.
FORTRAN ve C dili gibi yüksek
seviyeli programlarla yapılabilen
hesaplamaların pek çoğunu MATLAB
ile yapmak mümkündür. Ayrıca bunu
yanında diğer programlama dillerine
göre MATLAB‘ ta daha az sayıda
komutla çözüm üretmek mümkündür.
Gerçekte MATLAB, M-dosyaları (MFiles) olarak bilinen pek çok sayıda
fonksiyon
dosyalarından,
alt
programlardan ibarettir. Hazırlanması
düşünülen bir program içinde Mdosyalarını
kullanmak
suretiyle
komut sayısını çok kısa tutmak
mümkündür.
Yazılan Program
Dosyaların Bulunduğu
Alan
Dosyaların Nerede
Bulunduğunu Gösteren Kısım
Komut Penceresi:
İlgili komutların girildiği pencere
Eski Komutlar Listesi
Matlap Komut Penceresi
>> ile başlayan Matlabın komut penceresidir.
Komut penceresi kullanıcı ile MATLAB komut
yorumlayıcısı arasında
iletişim
sağlayan
bir ara
yüzdür. Yorumlayıcı hazır hale
geldiğinde “>>” iletisi karşımıza gelir. Bu ileti
MATLAB’ a komut yada komut dizileri
girilebileceğini gösterir.
Genel Komutlar
Eğer MATLAB
ilk defa
kullanılıyor ya
da belli
komutların
çalışmasını
merak
ediliyorsa demo
komutu ile
demostrasyon
listesini
görüntülenebilir.
Listeden
yapacağınız bir
seçimle
seçtiğimiz işlevi
adım adım
izleme imkanı
bulabilirsiniz.
Özel Karakterler
MATLAB‘ da ifadeler formunda veya MATLAB
kontrolünü
kullanabilmeniz
için
özel
karakterlere sahiptir, bu karakterlerin bir özeti
aşağıda verilmiştir.
Sayısal operatörlerden bazıları
Matris İşlemleri
[ ]
: Köşeli parantezler, vektörleri ve matrisleri biçimlendirmek için
kullanılır.
Matris tanimlamak için asagidaki A matrisi verilmis olsun :
A=
1.2 10 15
3 5.5 2
4 6.8 7
Bu matrisi MATLAB’e tanitmak için su sekilde yazilmalidir :
A = [1.2 10 15 ; 3 5.5 2 ; 4 6.8 7]
>> [5 6 45;12 91 2]
ans =
5
12
6 45
91 2
Örnek
>>[5 6 45
12 91 2]
ans =
5
12
6 45
91 2
>>[5 6 45;12 91 2];
Eğer sona noktalı işaret koyarsak ekranda ans gözükmeyecektir… Ama ramda
bilgi depolanacaktır.
Matrislerde işlem
( )’ Transpoz işlemi:
Matrisin satırları ile sütünlarının yer değiştirdiği işlemdir.
>>A=[1 2;3 4]
A=
1
3
2
4
>>(A’)AT
ans =
1 3
2 4
Matrislerde işlem
(inv) Matrisin Tersini Alma
Bir kare matrisin çarpmaya göre tersi ile kendisinin çarpımı birim matristir.
>> A
A=
1
3
2
4
>> A^-1
ans =
-2.0000 1.0000
1.5000 -0.5000
>> A*A^-1
ans =
1.0000
0.0000
0
1.0000
Matrislerde işlem
Matrislerde Elemanlar: iki nokta üst üstte koyarak matrislerde belli bir kısmı alabiliriz.
>> M=[1 2 3;4 5 6;7 8 9;10 11 12]
M=
1
4
7
10
2 3
5 6
8 9
11 12
>> C=M(1,:) (sadece birinci satırı aldık)
C=
1
2
3
>> C=M(:,1) (sadece birinci sütünü aldık)
C=
1
4
7
10
Sembolik Nesne (syms)
>> syms a b x z
>> y=a*x+z^b
y=
a*x+z^b
• Matlabta sembolik bir
ifade kullanmak
istersek önceden
syms komutu ile
sembolik ifadeleri
tanımlamak
zorundayız.
Grafik Komutları (2D)
Grafik Komutları(2D)
Söz Dilimi Kullanımı (syntax)
plot (X1,X2, ‘Çizgi Türü’,….)
>> x = -pi:0.1:pi;
y = sin(x);
plot(x,y,’* b’)
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-4
-3
-2
-1
0
1
2
3
4
Grafik Komutları(2D)
HOLD ON
İki farklı grafiği birbirine üstüne birleştirir.
>> x = -pi:pi/10:pi;
y = tan(sin(x)) - sin(tan(x));
>> m = -pi:0.1:pi;
k = sin(m);
>> plot(x,y,'*')
hold on
>> plot(m,k, '+')
3
2
1
0
-1
-2
-3
-4
-3
-2
-1
0
1
2
3
4
Grafik Komutları
grid
Grafik arka yüzünün ölçekli olarak gösterilmesini saglar.
title(‘...’)
Çizilen grafige baslik yazmak için kullanilir.
xlabel(‘...’)
Çizilen grafigin x-eksenine istenilen açiklamayi yazmak için kullanilir.
ylabel(‘...’)
Çizilen grafigin y-eksenine istenilen açiklamayi yazmak için kullanilir.
text(‘X,Y,‘text’)
Grafik ekrani üzerine istenilen koordinatlar dahilinde herhangi bir
açiklama yazmak için kullanilir.
Örnek
Aşağıdaki örnekte ise y = x2 eğrisini 0 ve 3
aralığında çizdirelim
x = 0:0.1:3;
y = x.^2;
plot(x,y,‘r’);
title(‘y=x2 egrisi’);
xlabel(‘x’);
grid;
ylabel(‘y’)
Solve Komutu
>>[x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0')
x=
1
3
y=
1
-3/2
Solve Komutu (2nci Yol)
>> syms x y
>> f1='x^2 + x*y + y -3'
f1 =
x^2 + x*y + y -3
>> f2='x^2 - 4*x + 3'
f2 =
x^2 - 4*x + 3
>> [x,y] = solve(f1,f2)
x=
1
3
y=
1
-3/2
Kök bulma (Roots)
s3 - 6s2 - 72s -27 = 0
Bir polinomun köklerini bulmak için roots(a) komutu
yazilmalidir. Yukaridaki
karakteristik denklemin köklerini bulmak istersek :
>>p=[1 -6 -72 -27]
>>r = roots(p)
r=
12.1229
-5.7345
-0.3884
Artırımı Ayarlama
1’den 5’e kadar sayilari 0.5’lik araliklarla yazdirmak istersek
iki nokta’yi (:) kullanmak yeterli olacaktir :
>>t =
12345
>>t = 1:0.5:3
t=
1.0000 1.50000 2.0000 2.50000 3.0000
Düzgün azalan biçimde yazdirirsak :
>>t = 5:-1:2
t=5432
Döngüler
Matlabta bir işlemi belirli bir sayıda tekrarlamak için kullanılan iki çeşit döngü
mevcuttur.
For -While döngüsü
>>x=[1 2 3 4 5 6];
for i=1:2:6
x(i)=x(i)^i
end
x=
1
2
3
4
5
6
1
2
27
4
5
6
x=
x=
1
2
27
4
3125
6
Şartlı İfade (if)
if kosul1
deyim1
elseif kosul2
deyim2
elseif kosul3
deyim3
...
elseif kosul_n
deyim_n
else
deyim_n+1
end
Bu yapi içerisinde kontrol edilen kosullardan herhangi biri dogru ise onunla iliskili
deyim icra edilir ve kontrol end’ i izleyen deyime geçer. Kosullarin hepsi de yanlissa,
kontrol else’ i izleyen deyim_n+1’e geçer ve bu deyim de icra edildikten sonra kontrol
end’i izleyen deyime geçecektir.
Örnekler
AB=20 cm
• Dört Kol Mekanizması
BC=60 cm
CD=40 cm
AD=70 cm
q
B
q2=60 
3
3
C
2
q
A
2
4
q
4
D
Konum denklemlerini çıkaralım
Bunun için öncelikle devre kapalılık denklemini yazıyoruz.
AB+BC=AD+DC
AB.cosq2i+ AB.sinq2j+ BC.cosq3i+BC. Sinq3j=ADi+ DC.cosq4 i+DC. sinq4j
i
: AB.cosq2+ BC.cosq3 = AD+DC.cosq4
j
: AB.sinq2+ BC. Sinq3=DC. Sinq4
4 Kol Mekanizması Programı
Kol Kızak Mekanizması
3
B
s34
4
2
q
A
AB=15 cm
AC=20 cm
q2=90 
2
q
4
C
Konum denklemlerini çıkaralım
Bunun için öncelikle devre kapalılık denklemini yazıyoruz.
AB=AC+CB
AB.cosq2i+ AB.sinq2j= 20i+S34.cosq4i+S34. Sinq4j
i
: AB.cosq2= 20+S34.cosq4
j
: AB.sinq2= S34. Sinq4
Kol Kızak Mekanizması Programı
Vargel Mekanizması
s14
4
D
C
s24
E
3
B
q
3
2
q
A
2
s23
AB=40 cm
BC=40 cm
AE=52,9 cm
BE=20 cm
AD=84,66 cm
q2=70,89 
Konum denklemlerini çıkaralım
Bunun için öncelikle devre kapalılık denklemini yazıyoruz.
1 AB+BE=AE
ABj+BE.cosq3i+BESinq3j = S23.cosq4i+S23. sinq4j
i
: BE.cosq3 +S23.cosq4
j
: AB+BE.sinq3= S23. sinq4
2 AC+CD=AD
ACj+S14.i = S24.cosq2i+S24. sinq2j
i
: S14.i=S24.cosq2
j
: AC= S24. sinq2
Vargel Mekanizması Programı