9.MATLAB Temel Komutlar, Grafik Çizimi, Eğri Geçirme

Download Report

Transcript 9.MATLAB Temel Komutlar, Grafik Çizimi, Eğri Geçirme

MATLAB İle Teknik Hesaplama
• MATLAB içerisinde birçok hazır fonksiyonlar ve araçlar içeren, aynı
zamanda program geliştirmeye izin veren, temeli C program diline
dayanan, mühendislikde, bilimde ve uygulamalı matematikde kullanılan
teknik hesaplama programıdır.
• The Mathworks, Inc. (http://www.mathworks.com) firması tarafından
geliştirilmiştir.
• Mühendislik
problemlerinde
karşılan
değişik
tipte
denklemlerin
(cebirsel, diferansiyel, matris) çözümü MATLAB ile gerçekleştirilebilir.
• MATLAB ortamında, sayısal hesaplama, sembolik hesaplama, bilimsel
görselleştirmeler
(grafik
çizme,
resim
işleme)
ve
ileri
derecede
programlamlar gerçekleştirilebilir.
Yrd.Doç.Dr.Levent Malgaca,2010
1
• MATLAB ortamında hesaplama için Komut Penceresi (Command
Window)
veya
Düzenleyici
(Editör)
kullanılabilir.
Editörde
kaydedilen “m” uzantılı dosyalar komut penceresinde çalıştırılır.
Yrd.Doç.Dr.Levent Malgaca,2010
2
Değişken İsmi ve Fonksiyonlar için Kurallar
• MATLAB, küçük/büyük harfe duyarlıdır (Case Sensitive). Küçük ve
Büyük harf farklı değişkenler olarak algılanır. Örneğin; Name, NAME,
name üç farklı değişken ismidir.
• MATLAB’ de fonksiyon ve değişken isimleri harf ile başlar. Değişken
ismi mevcut fonksiyon ismi ile aynı olmamalıdır ve 31 karakter
uzunluğunu aşmamalıdır.
Örnek:
>> N=3;n=6;a=N*n
N, n değerleri “;” ile ekranda gizlenir.
a=
18
a sonucu 18 olarak hesaplanır.
Yrd.Doç.Dr.Levent Malgaca,2010
3
MATLAB’de Yardımcı Komutlar
• Ders kapsamında MATLAB ortamında kullanılan bazı yardımcı komutlar
aşağıda verilmiştir.
>>clc
 komut penceresinde ekranı temizler.
>>clear
 hafızasında tanımlanan değişkenleri temizler.
>>cd
 dizin değiştirir.
>>pwd
 aktif dizini görüntüler.
>>dir
 aktif dizin içindeki dosyaları görüntüler.
>>whos
 tanımlanmış değişkenleri görüntüler
>>help komutadı
 istenen komutun kullanımını ve amacını listeler.
>>lookfor anahtarkelime
 istenen bir anahtar kelime için arama yapar.
Yrd.Doç.Dr.Levent Malgaca,2010
4
MATLAB’de Özel Karakterler
• MATLAB’de bazı karakterler (% , ; :) özel amaçlar için kullanılmaktadır.
• + - * / ^ operatörler ile cebirsel işlemler yapılır.
• .* ./ .^ opratör önünde “.” ile kullanıldığında eleman işlemleri yapılır.
>>% a=2
 açıklama satırıdır, % sonrası programda işletilmez.
>>a=2,b=3
 aynı satırda iki değişken tanımlanır,ekranda a ve b
görüntülenir .
>>a=2;b=3;
 ; karakteri ile ekranda a ve b görüntülenmez .
>>a=0:2:10
 : karakteri 0 ile 10 arasında 2 artımla sayı dizisi oluşturur.
>>a=0:1:3;b=a'
 ' karakteri matris işlemlerinde transpoze (satırı sütun veya
tersi) alır.
Yrd.Doç.Dr.Levent Malgaca,2010
5
Örnek:
Aşağıdaki örnek işlemleri MATLAB’ de çalıştırınız.
x=2:2:10
y=4:4:20
z=3
x=
2
y=
4
z=
3
r1=z*z
r1 =
9
r2 =
6 12
r3 =
12 24
r4 =
16 64
r5 =
8 32
r6 =
4 16
r7 =
0.5000
r2=z*x
r3=z*y
r4=y.*y
r5=x.*y
r6=x.^2
r7=x./y
4
6
8
10
8
12
16
20
18
24
30
36
48
60
144 256 400
72 128 200
36
64 100
0.5000
0.5000
Yrd.Doç.Dr.Levent Malgaca,2010
0.5000
0.5000
6
MATLAB’de Temel Matematiksel Fonksiyonlar
• MATLAB’de temel matematiksel fonksiyonlar ve açıklamaları aşağıda
verilmiştir. Tüm fonksiyonları “help elfun” ile listelenir.
>>sin(x)
 x’in sinüsü, x radyan olarak.
>>cos(x)
 x’in cosinüsü, x radyan olarak.
>>atan(x)
 x’in ters tanjantı, x radyan olarak.
>>exp(x)
 e sayısının x. üssü.
>>log10(x)
 10 tabanında logaritma.
>>abs(x)
 x sayısının mutlak değeri.
>>sqrt(x)
 x sayısının karakökü.
>>fix(x)
 x sayısını 0’ a yakın tam sayıya yuvarlar.
>>round(x)
 x sayısını en yakın tam sayıya yuvarlar.
>>help elfun
 MATLAB’in tüm matematiksel fonksiyonlarını listeler.
Yrd.Doç.Dr.Levent Malgaca,2010
7
Örnek:
MATLAB komut penceresinde aşağıdaki işlemleri yapınız.
>>clc
>>clear
>>xd=60;
>>xr=xd*pi/180;
>>a=sin(xr);
>>b=cos(xr);
>>a,b
Örnek:
% ekranı temizle.
% hafızayı temizle.
% derece değerini gir.
% xd‘ yi dereceden radyana çevir.
% xr’nin sinüsünü hesapla.
% xr’nin cosinüsünü hesapla.
% a ve b’ yi ekranda göster.
MATLAB düzenleyicisinde yukarıdaki programı yazınız, ex1.m
olarak kaydediniz, Farklı açı değerleri için hesaplama yapınız.
clc
clear
xd=60;
xr=xd*pi/180;
a=sin(xr);
b=cos(xr);
a,b
% ekranı temizle.
% hafızayı temizle.
% derece değerini gir.
% xd‘ yi dereceden radyana çevir.
% xr’nin sinüsünü hesapla.
% xr’nin cosinüsünü hesapla.
% a ve b’ yi ekranda göster.
Yrd.Doç.Dr.Levent Malgaca,2010
8
Örnek:
Aşağıda verilen vektör diyagramında x değerini hesaplayınız,
sonucu tam sayıya yuvarlayınız.
x=
4.8415
x1 =
5
x2 =
4
clc,clear
b=3
a=3.8;b=3;
x=sqrt(a^2+b^2)
x1=round(x)
a=3.8
x2=fix(x)
Örnek:
Aşağıda verilen denklemde x=0.1, a=0.2 değerleri için S
değerini hesaplayınız, sonucu en yakın tam sayıya
yuvarlayınız.
S
a

sin  a  x
2
2

clc;clear
sin a a  x
x=0.1;a=0.2;
s=a/(sin(pi*a)*sqrt(a^2+x^2))*sin(pi*sqrt(a^2+x^2))
S=round(s)
2
2
Yrd.Doç.Dr.Levent Malgaca,2010
s=
0.9832
S=
1
9
MATLAB’de Temel Hesaplama Komutları
• MATLAB’de
temel
hesaplama
komutlarından
bazıları
aşağıda
listelenmiştir.
>>roots(a)
 a polinomunun köklerini hesaplar.
>>poly(a)
 verilen köklerden polinomun katsayılarını hesaplar.
>>polyval(a,1)
 a polinomunun 1 değeri için sonucunu hesaplar.
>>[y,n]=max(x)
 x sayı dizisinde en büyüğü bulur, y: değer, n: sıra.
>>[y,n]=min(x)
 x sayı dizisinde en küçüğü bulur, y: değer, n: sıra.
>>sum(x)
 x sayı dizisindeki elemaları toplar.
>>mean(x)
 x sayı dizisinin aritmetik ortalamasını hesaplar.
>>std(x)
 x sayı dizisinin standart sapmasını hesaplar.
Yrd.Doç.Dr.Levent Malgaca,2010
10
Örnek:
Aşağıdaki denklemin köklerini, ve x=1 değeri için p değerini
hesaplayınız.
p  x3  0.5x 2  20x  61
a=[1,0.5,-20,61]; % polinomun katsayıları.
r=roots(a)
% polinomun köklerini hesaplar.
p=polyval(a,1) % x=1 içi p yi hesaplar.
Yanıt:
MATLAB ekran görüntüsünde aşağıdaki sonuçlar elde edilir.
r=
-5.7827
2.6414 + 1.8899i
2.6414 - 1.8899i
p=
42.5000
Örnek:
Elde edilen r köklerinden polinomun katsayılarını hesaplayınız.
r =[-5.7827, 2.6414 + 1.8899i, 2.6414 - 1.8899i];
p=poly(r)
Yrd.Doç.Dr.Levent Malgaca,2010
11
Örnek:
Bir sınıfta alınan notlar; 63,78,82,20,71,65 dir. Sınıfın not
ortalamasını, standart sapmasını, en büyük ve en küçük notu
MATLAB ile hesaplayınız.
not=[63,78,82,20,71,65];
notort=mean(not);
nots=std(not);
[nmax,k1]=max(not);
[nmin,k2]=min(not);
notort,nots,nmax,nmin
Aritmetik ortalama formülünü kullanarak sınıfın
Örnek:
not ortalamasını MATLAB ile hesaplayınız.
not=[63,78,82,20,71,65];
toplam=sum(not);
n=length(not);
notort=toplam/n
Yrd.Doç.Dr.Levent Malgaca,2010
12
MATLAB’de Grafik Çizme
• MATLAB’de sayısal veya sembolik olarak fonksiyonların grafiği
çizilebilir.
>>plot(t,y)
 t-y grafiğini sayısal olarak çizer.
>>ezplot(y,t1,t2)
 sembolik tanımlanan y’nin grafiğini t1-t2 aralığında çizer .
Örnek:
t=-10:1:10;
y=3*t.^3+t.^2-2*t+1;
plot(t,y)
Örnek:
t1=-10;t2=10;
y='3*t^3+t^2-2*t+1';
>> ezplot(y,t1,t2)
Yrd.Doç.Dr.Levent Malgaca,2010
13
MATLAB’de Eğri Geçirme
• Verilen sayı dizilerini temsil edecek eğrinin, istenen dereceden polinom
katsayıları hesaplanabilir.
>>f=polyfit(x,y,n)
y
sayı
dizisi
x’e
göre
değişmekte,
n.
dereceden
hesaplanan polinom katsayıları f değişkenine atanmaktadır.
Örnek:
fval =
0.5089
clc;clear;
x =[0 0.1 0.2 0.3 0.4
y =[0.5 0.65 0.54 0.61
n=2;
f=polyfit(x,y,n)
fval=polyval(f,x);
plot(x,y,'or')
hold on
pause
plot(x,fval);
0.5999
f=
0.6220 -3.4464
0.5751 0.4594
1.2546 0.2746
0.5089
0.5];
0.48 0.26];
f(x)  -3.4464x2  1.2546 0.5089
Yrd.Doç.Dr.Levent Malgaca,2010
14
clc;clear;
x=[0 5 10 15 20 25 30];
y=[10 50 70 95 50 20 10];
f4=polyfit(x,y,4)
f8=polyfit(x,y,8)
t=0:0.25:30;
fval1=polyval(f4,t);
fval2=polyval(f8,t);
plot(x,y,'or')
hold on
pause
plot(t,fval1);
hold on
pause
plot(t,fval2,'g');
100
200
SICAKLIK (derece)
Örnek:
f4 =
f8 =
0.0016 -0.0834 0.9455 4.1659 10.7792
-0.0000 0.0001 -0.0023 0.0422 -0.3878 1.4525 0 0 10.0000
80
150
60
100
40
50
20
0
0
-50
0
10
20
Zaman (dakika)
Yrd.Doç.Dr.Levent Malgaca,2010
30
15