15
MATLABA GİRİŞ Page 1 1. MATLAB MATLAB adı, MAT rix LAB oratory (Matrix Laboratuarı) kelimelerinden gelir. Matlab, komut temelli bir programdır. Command Window penceresinde » işareti Matlab'ın komut prompt'unu gösterir ve bu işaret bulunduğu satır komut satırı olarak adlandırılır. Bu işaretin hemen yanında yanıp sönen I şeklinde ki işaret komut ve metin yazma cursor'u yani imlecidir. Bu işaretin olduğu yerde klavyeden giriş yapılabilir demektir. İFADELER (EXPRESSIONS) Matlabda 3 çeşit pencere vardır. Komut, Grafik ve Program editörü pencereleridir.Masaüstündeki matlab simgesinden yada başlat menüsünden matlab simgesine tıkladıktan sonra karşımıza şöyle bir ekran geliyor. Bu ekran Komut penceresidir. Komut penceresi

MATLABA GİRİŞ - brahms.emu.edu.trbrahms.emu.edu.tr/fbayramoglu/fatos documents... · Matlab'de matematikten bildiğimiz doğal logaritma gösterimi ln olarak değil doğrudan log

Embed Size (px)

Citation preview

MATLABA GİRİŞ

Page 1

1. MATLAB

MATLAB adı, MATrix LABoratory (Matrix Laboratuarı) kelimelerinden gelir.

Matlab, komut temelli bir programdır. Command Window penceresinde » işareti Matlab'ın komut

prompt'unu gösterir ve bu işaret bulunduğu satır komut satırı olarak adlandırılır. Bu işaretin hemen yanında

yanıp sönen I şeklinde ki işaret komut ve metin yazma cursor'u yani imlecidir. Bu işaretin olduğu yerde

klavyeden giriş yapılabilir demektir. İFADELER (EXPRESSIONS)

Matlabda 3 çeşit pencere vardır. Komut, Grafik ve Program editörü pencereleridir.Masaüstündeki matlab

simgesinden yada başlat menüsünden matlab simgesine tıkladıktan sonra karşımıza şöyle bir ekran

geliyor. Bu ekran Komut penceresidir.

Komut penceresi

MATLABA GİRİŞ

Page 2

Program Editörü Penceresi

Grafik Penceresi

MATLABA GİRİŞ

Page 3

Ekranda “To get started, select MATLAB Help or Demos from the Help menu.” Yazıyor. Hemen altında >>

diye bir simge var. Kodlarımızı oraya yazıyoruz. Matlab da işleyip bize çıktısını veriyor

Yada help yazarsam

Matlab diğer programlama dillerinde olduğu gibi bir giriş (input) olarak çeşitli matematiksel ve metinsel

ifadeler sağlar. İfadeleri 4 ana madde altında inceleyebiliriz:

Sayılar (Numbers)

Değişkenler (Variables)

İşleçler (Operators)

Fonksiyonlar (Functions)

MATLABA GİRİŞ

Page 4

2. MATLAB DA İFADELER NASIL GİRİLİR

Matlab'de ifadeler genellikle değişken = ifade veya basitce sadece ifade ormundadır. Bir ifade =

işareti ile bir değişkene atanmamış ise Matlab otomatik olarak sonucu, ans adı verilen özel bir

değişkende saklar.

» b=4*5

b =

20

» log(2)

ans =

0.6931

Normalde ifadeler, tek bir satırda yer alırlar. Ancak bir kaç ifade aralarına virgül konarak yazılabilir

ve işleme konabilir. Virgülden sonraki boşluk sayısında bır sınırlama yoktur. Komut veya değişken

bildirimli ifadelerde ; noktalı virgül işaretini de kullanılabilirsiniz.

» x=3.01, y=(23*7)/5, z = 3^6

x =

3.0100

y =

32.2000

z =

729

Matlab'de herşey bir dizi (array) olarak işleme konur. Bir dizi, skaler, vektör, matris veya metinsel

dizge (karakter dizisi) olabilir.

1x1 dizisi skaler (scaler) veya metin dizgesi (string) gösterir.

a=3 b=-20.56 c=3e-4 d=2+5*i

MATLABA GİRİŞ

Page 5

e='Bir tamsayı giriniz:' gibi.

Metin dizgeleri (text string), '...' arasında verilir.

nx1 veya 1xn dizisi bir vektör (vector) gösterir.

x=[0, 2, 4, 6] ifadesinde x, 1x4 boyutunda bir vektördür.

[ ] köşeli parantezler içindeki sayıların arasında virgül (,) veya en az bir veya daha fazla boşluk

olmalıdır.

nxm veya mxn dizisi bir matris (matrix) gösterir. [ ] köşeli parantezler içindeki sayı

grupları arasında noktalı virgül (;) olmalıdır. ; işareti matrisin sütunlarını ayırır. Sayı gruplarında

virgül (,) veya en az bir veya daha fazla boşluk olabilir.

Örnek:

1 2 1 2 3

1 2 3 0 1 1 3 2

5 1, 2, 3, 4 0 2 3 2 1 1 4 4

0 1 1 3 0 1 1 5

6 1 1 2 6

a v e c

>> a=5;

>> v=1 2 3 4;

>> v=1:5; % v={1’den 5’e kadar olan sayılardan oluşan vektör}

>> e=1 2 3 ; 0 2 3 ; 0 1 1 ;

>> c=[1,2,1,2,3 ; 0,1,1,3,2 ; 2,1,1,4,4 ; 3,0,1,1,5 ; 6,1,1,2,6];

MATLABA GİRİŞ

Page 6

3. MATLAB’DAKİ BAZI İŞLEMLER

+ Toplama ' Transpoze

- Çıkarma det Matrisin determinantı

* Matris çarpması inv Matrisin tersi

* Vektör çarpması sin Sinüs

Matris üssü cos Kosunüs

.^ Vektör üssü exp Eksponensiyel fonksiyon

./ Vektör bölmesi log Doğal logaritma

% Yorum yada bilgiler sqrt Karkök

abs mutlak değer alma sum(A) Matrisin sütunlarını toplar

Özel Matrisler>> zeros(4) % 4x4 bütün elemanları sıfır olan matris oluşturur.

ans =

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

>> zeros(3,2) % 3 sütun ve 2 satırlık bütün elemanları sıfır olan matris oluşturur.

ans =

0 0

0 0

0 0

>> ones(4) % 4x4 bütün elemanları 1 olan matris oluşturur.

ans =

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

MATLABA GİRİŞ

Page 7

Örnek:

>> v=1 2 3 4;

>> V2=v.^2

V2 =

1 4 9 16

>> e'

ans =

1 0 0

2 2 1

3 3 1

>> det(e)

ans =

-1

» inv(c)

ans =

-0.3000 0.5000 -0.4000 -0.3000 0.5000

0.7000 -0.5000 0.1000 -0.3000 -0.0000

-0.9000 3.5000 -2.7000 0.1000 1.0000

-0.2000 -0.0000 0.4000 -0.2000 -0.0000

0.4000 -1.0000 0.7000 0.4000 -0.5000

MATLABA GİRİŞ

Page 8

4. MATLAB’DE KULLANILAN ÖZEL DEĞERLER VE SABİTLERDeğişken Adı Açıklama ans Bir işlemin son cevabı (answer) veya bir ifadenin değeri

pi pi sabiti: p=3.1415926535897...

i veya j imajiner birim

eps (epsilon yani e) Kayan-nokta bağıl doğruluğu (relative precision),

2e-52 realmin En küçük kayan-nokta (floating-point) sayısı,

2e-1022 realmax En büyük kayan-nokta (floating-point) sayısı,

(2-e)e1024 yani 2e1024'den çok az küçük

inf Sonsuz (infinity) yani realmax dan daha büyük bir sayı

NaN Sayı değil (Not-a-Number)

5. TRİGONOMETRİK FONSİYONLAR

Trigonometrik Hiperbolik

Fonksiyon Adı Fonksiyon formatı Fonksiyon formatı

sinus sin(x) sinh(x)

cosinüs cos(x) cosh(x)

tanjant tan(x) tanh(x)

kotanjant cot(x) coth(x)

sekant sec(x) sech(x)

MATLABA GİRİŞ

Page 9

kosekant csc(x) csch(x)

Matlab'de trigonometrik fonksiyonlarda derece yerine radian kullanılır. Bu nokta çok onemlidir. Kısaca

2p=360o veya p=180o derecedir. Örneğin derece ; cinsinden sin(30)=0.5 tir. Oysa Matlab bu işlemin

sonucunu

» sin(30)

ans =

-0.99

şeklinde verir. Genel kullanım derece cinsinden olduğundan ya radian (pi değişkenini kullanarak) cinsinden

belirtmeniz ya da p/180 ile çarpanız gereklidir. Programlama bölümünde örneğin direkt girilen sayının

derece olarak algılanıp değerini veren bir fonksiyonda yazılabilir. Örneğimize devam edersek;

» sin(pi/6)

ans =

0.50

Ancak bu yöntemde p yani pi'ye çevirmek (örneğin 6.47 açısı gibi) her zaman bu kadar olmayacağından

» sin(30*pi/180)

ans =

0.50

komutu yani açıyı parentezler içinde kalmak şartıyla pi/180 ile çarpmak daha pratiktir.

MATLABA GİRİŞ

Page 10

Örnek : x=45o için (sin4x)-(2cosx)3 ifadesinin değerini bulunuz.

1. yol:

» x = pi/3;

» sin(4*x)-(2*cos(x))^3

ans =

-2.83

2.yol:

» x = 45;

»sin(4*x*pi/180)-(2*cos(x*pi/180))^3

ans =

-2.83

Örnek: y=sin(t)*cos(t), -2 < t < 2 fonksiyonunu Matlabda yazalım.

>> t=-2*pi:pi/100:2*pi;

>> y=sin(t).*cos(t);

MATLABA GİRİŞ

Page 11

6. LOGARİTMİK VE ÜSTEL FONLSİYONLAR

Fonksiyon Adı Fonksiyon formatı

10 tabanında logaritma

(log10x)

log10(x)

2 tabanında logaritma

(log2x)log2(x)

doğal logaritma (lnx) log(x)

üstel (ex) exp(x)

karekök ( Öx ) sqrt(x)

üsalma (xn, n herhangibir

sayı)x^n

Matlab'de matematikten bildiğimiz doğal logaritma gösterimi ln olarak değil doğrudan log olarak

gösterilmektedir. Yine bildiğimiz gibi lnx=logex demektir. Genel yazım formatı bir x değeri için lnx,

Matlab'de log(x) şeklindedir.

ln1

» log(1)

ans =

0

ln10

log(10)

ans =

2.3026

ln2

» log(2)

ans =

0.6931

MATLABA GİRİŞ

Page 12

Matlab'de e sabit sayısı yani e=2.71828 veya kısaca e=2.71 sayısı e olarak tanımlanmamıştır.

Bunun yerine bir sonraki konuda göreceğimiz exp(1) fonksiyonu kullanılabilir. Biliyoruz ki lne=1 dir

ve bunu Matlab de sağlayalım:

» exp(1)

ans =

2.71832

Matlab'de matematikten bildiğimiz normal logaritma 10 tabanındadır ve bir x değeri için genel

yazım formatı log10(x) şeklindedir. Ayrıca Matlab, 2 tabanındaki logaritma içinde hazır bir fonksiyon

sağlar. Bir x değeri için genel yazım formatı log2(x) şeklindedir. şeklindedir. Doğal logaritma da

olduğu gibi negatif sayıların logaritmaları reel sayı değildir ve sıfır için değeri sonsuzdur. 0 ile1

arasındaki (0 ve 1 dahil değil) değerleri negatiftir. Şimdi sırasıyla log1, log10, log100 ve log 1000,

sonra log2, log5, log3/5 ve sonra da log0 ve log(-4) değerlerini bulalım.

log1

» log10(1)

ans =

0

log10

» log10(10)

ans =

1

log5

» log10(5)

ans =

0.6990

Şimdi de aşağıdaki üstel yazılımlı ifadelerin değerleri bulalım :

» 3^12, (1/2)^(-4), 20^(1/5), 10^(3/5), 5.62*10^(-5)3

MATLABA GİRİŞ

Page 13

Bu konu başlığı altında çok kullanılan bir diğer fonksiyonumuz karekök alma işlemini gerçekleştiren

sqrt fonksiyonudur. Genel yazım formatı bir x değeri için sqrt(x) şeklindedir.

» sqrt(2), sqrt(23)

ans =

1.4142

ans =

4.7958

7. GRAFİK ÇİZME

Matlabda, grafik çizmek için kullanılan komut plot dur.

Örnek:

y t cos( )2 and z t (cos( ))2 3 fonksiyonunu Matlabda çizmek istersek -2<t<2 için,

>>t=-2*pi:pi/100:2*pi;

>>y=cos(2*t);

>>plot(t,y)

>>z=y.^3;

>>plot(t,z)

y ve z fonksiyonlarını ayni grafik üzerine çizmek istersek eğer,

>> plot(t,y,’r’,t,z,’g’); komutu kullanılır. y fonksiyonunun grafiği kırmızı ve z fonksiyonunun grafiği yeşil

renktir.

Grafik üzerinde akseslerin isimlerini ve grafiğin ismini yazmak için, aşağıdaki komut kullanılır. Eğer x-

aksesin ismi “zaman”, y-aksesin ismi “sonuç” ve grafiğin ismi de “fatoş” olursa,

>> xlabel(‘zaman’);

>> ylabel(‘sonuç’);

>> title(‘fatos’);

MATLABA GİRİŞ

Page 14

Örnek:

Aşağıdaki iki fonksiyonun grafiğini ayni grafik penceresinde çiziniz.

y1=sin(t), y2=cos(t), t=-2,2

>> t=-2*pi:0.01:2*pi;

>> y1=sin(t); y2=cos(t);

>> plot(t,y1,’r’, t,y2,’b’);

8. PROGRAM EDİTÖRÜProgram yazabilmek için öncelikle File menüsünden edit file seçmek gerekir. Programı kaydetmek için

mutlaka programın ismi ile ayni olmasına dikkat edilmelidir.

Örnek: Bir M-file oluşturalım ve içerisine aşağıdaki bilgileri yazalım,,

toplama.M

% TOPLAMA

function toplama(a),

toplam=0;

for i=1:a,

toplam=toplam+i;

end

disp(['BU SAYILARIN TOPLAMI =', num2str(toplam)]);

% disp anlamı ekrana yansıtmadır.

>> toplama(4)

MATLABA GİRİŞ

Page 15

9. EV ÖDEVLERİ:

(Gelen haftaya bu ödevlerin çıktısı teslim edilmelidir)

1.) Aşağıdaki fonksiyonların grafiklerini ayni grafik penceresinde çiziniz ve grafiğin ismi kendi isminiz, x-

akses “zaman” ve y-akses de “sonuç” şeklide yazınız.

y1(t)=cos(t)+sin(3t), y2(t)=2.5sin(t/2), t { -2, 2 }

x1=cos(3*t), x2=0.5*sin(t/3), t { -3, 3 }

2.) Let

1 0 9 21 2 3 1 0 -1 3

1 2 5 0 1 2 4 , 0 0 1 , and 0 -1 2 1

2 1 1 1 0 5 11 2 1 0 1 1 2

0 0 0 1

A B C D

Aşağıdakilerini bulunuz.

A ve B’ nin determinantları.

TAD

A’nın tersi.

3.) n kadar sayının çarpımlarının( !n ) program editörünü yazınız ve programın ismini çarpma(n) diye

yazınız.