1. giriş 1.1. genel bakış 1.2. kullanıcı arayüzü

advertisement
1. GİRİŞ
1.1.
GENEL BAKIŞ
MATLAB (MATrix LABoratory) sayısal hesaplama ve dördüncü nesil programlama dilidir.
MathWorks firması tarafından geliştiriliyor. MATLAB;
- matris işlenmesine,
- fonksiyonlar ve veri çizilmesine,
- algoritmalar uygulanmasına,
- kullanıcı arayüzü oluşturulmasına ve
- diğer dillerle yazılmış programlar ile etkileşim oluşturulmasına
izin verir. C, C++, Java, ve Fortran dillerini içerir1.






MATLAB’ın kullanım yerleri;
Denklem takımlarının çözümü, doğrusal ve doğrusal olmayan diferansiyel denklemlerinin
çözümü, integral hesabı gibi sayısal hesaplamalar,
Veri çözümleme işlemleri,
İstatistiksel hesaplamalar ve çözümlemeler,
Grafik çizimi ve çözümlemeler,
MuPAD sembolik motorunu kullanarak sembolik hesaplamalar
Simulink kullanılarak dinamik ve gömülü sistemler model tasarımı
1.2.
-
KULLANICI ARAYÜZÜ
Şekil 1 de gösterilen kullanıcı ara yüzünde;
Komut Penceresi (Command Window);
Komut Tarihçe Penceresi(Command History)
Çalışma Alanı (Workspace)
Çalışılan Dizin (Currrent Directory) penceresi
En üstte Araç Çubuğu (Toolbox) yer almaktadır.
Komut penceresinde görülen “>>” sembolünün işaret ettiği satıra komut satırı adı verilir.
Komut satırında girilen komutlar yorumlanarak sonuçları yine aynı pencerede gösterilir. Böylece
MATLAB kullanıcı ile etkileşimli (interaktif) bir biçimde kullanılabilir. Genelde kısa işlemler için
en yaygın kullanım şekli interaktif kullanımdır. Ayrıca birkaç komutun ardı sıra uygulanmasını
gerektiren uygulamalar için interaktif kullanım yerine, ilgili komutlar uzantısı “.m” olan program
dosyası(betik) adı verilen dosyalara kaydedilmek veya yine aynı uzantılı dosyalarda saklanan
fonksiyon programı oluşturmak suretiyle çalışılabilir.
Komut satırına girilen geçerli işlem enter veya return tuşuna basılmak suretiyle icra edilir.
MATLAB arka planda belirtilen işlemi kendi kurallarına uygun ise icra ederek sonucu yine aynı
pencerede görüntüler. İşlem talebi kurallarla uygun olarak gerçekleştirilmemişse hata mesajı iletilir.
>> 2+3
ans =
5
>> 2+x
??? Undefined function or variable “x”.
1
http://tr.wikipedia.org/wiki/MATLAB
1
MATLAB kullanıcı arayüzünde bulunan diğer bir pencere çalışma alanı(Workspace)
penceresidir, Şekil 1a. Bu pencerede MATLAB oturumu başlatıldığı andan itibaren tanımlanan
değişkenler, değerleri ve değişken türleri listelenmektedir. Bu alandaki bilgiler clear komutu
kullanıldığında silinirler.
Şekil 1. Matlab Kullanıcı Arayüzü
Kullanıcı arayüzünde bulunan diğer bir pencere ise Komut Tarihçe Penceresi (Command
History) dir. Bu pencerede komut penceresinden daha önce girilen komutlar giriliş sırasına göre
listelenmektedir. Bu pencerede yer alan herhangi bir komut, farenin sol tuşuyla çift tıklanmak
suretiyle tekrar çalıştırılabilir. Veya alternatif olarak klavyedeki yukarı ok tuşu yardımıyla önce
girilen komut, komut penceresinde gözükene kadar ilerleyerek enter veya return tuşu yardımıyla aynı
işlem tekrar gerçekleştirilebilir.
2. KOMUT PENCERESİNDEN MATLAB
Skaler olarak bildiğimiz reel veya kompleks bir sayı MATLAB de 1x1 boyutlu bir matris; n
bileşenli bir satır vektörü 1xn boyutlu matris ve sütun vektörü ise nx1 boyutlu bir matris olarak işlem
görmektedir.
2.1.
SKALERLER
Bilinen toplama ( + ), çıkarma ( - ), çarpma ( * ), bölme ( / ) ve üs alma( ^ ) operatörleri ile
skalerler üzerinde interaktif aritmetik işlemler komut penceresinde yer alan ve komut promptu adı
verilen “>>” işaretinin bulunduğu komut satırında gerçekleştirilebilir (Bkz. Tablo 1). Tablo 1 Skaler
değerli değişkenler üzerinde işlemler
2
Tablo 1 de görüldüğü üzere belirtilen işlemler komut satırında yazılarak enter veya return
tuşuna basıldığında işlem sonuçları varsayılan değişken olarak bilinen “ans” (answer) değişkenine
atanır. Bu yönüyle skalerler üzerinde MATLAB bir hesap makinesi olarak kullanılabilir. İşlem
sonuçları daha sonra kullanılmak isteniyorsa skalerlere isimler verilmelidir. Diğer bir deyimle
skalerleri saklayan değişkenler tanımlanmalı ve değişkenlere değerleri “=” atama operatörü
yardımıyla Tablo 2 de görüldüğü üzere atanmalıdır.
Tablo 2 de sol üç sütunda a ve b skaler değerli değişkenlerine sırasıyla 2 ve 3 değerleri atanmakta
ve toplama işleminin sonucu c değişkenine atanmaktadır. Atama işlemi sonunda satır sonunda noktalı
virgül kullanılmaması durumunda değişken değerlerinin ve işlem sonucunun ekrana tekrar yazıldığını
görüyoruz. Sağ üç sütunda ise aynı işlemelerin noktalı virgül kullanımı ile yapılması durumu
gösterilmektedir. Dikkat edilirse ikinci durumda işlem sonucu c değişkeninde saklanmakta olup sonuc
ekranda görüntülenmemektedir. İlgili değişken değerini görmek için Tablo 2 nin son sütununda görüldüğü
üzere değişken isminin yazılarak enter veya return tuşuna basılması gerekir.
Örnek:
5
formülündeki x değerini bulunuz.
>> x = 5 + (8+10)/3
x=
11
Örnek : 2
10
12
0 denkleminin bir çözümü bulunuz.
Örnek : Üçgenin çevresini ve alanını bulan kodları yazınız
>> r=3;
>> cevre=2*pi*r;
>> alan=pi*r*r;
M. dosyasına kaydedip (inputla) r değerini alalım
R=input(‘yaricapi gir’);
Örnek : Küpü girilen bir sayının en yakın tamsayı değerini bulan bir program yazınız.
3
Örnek : Kullanıcının girdiği a, b ve h değerlerini kullanarak yandaki şeklin
1- hacmini
2- yüzeyinin alanını
bulunuz.
Örnek : Bir M dosyası oluşturarak kullanıcıdan alınan iki sayının (a, b)
1-Toplamını
2-Farkını
3-Çarpımı
4-Bölümünü
hesaplayan bir program yazınız.
Örnek (Uygulamada Sorulmuş Soru):m kütlesine sahip bir cismin h yüksekliğindeki bir binansan
serbert atışla bırakılıyor. M ve h değerleri kullanıcıdan alınacaktır. Buna göre
- t düşme süresi
- bina üzerinde iken cismin hsaip olduğu potansiyle enerji
- cismin yere düşmeen hemen öncesi kinetik enerjisini hesaplayınz.
2.2.
VEKTÖRLER
MATLAB de vektörler tek satır veya sütundan oluşan matrisler olarak değerlendirilirler.
Vektörler köşeli parantez içerisinde elemanlar arasında boşluk veya virgül konularak
tanımlanabileceği gibi, elemanlar arasındaki farkı birbirine eşit olan vektörler için başlangıç noktası,
artış miktarı ve bitiş noktasının belirtilmesi suretiyle de tanımlanabilirler:
>> x=[1 3 2]
x =
1 3 2
veya
>> y=1:2:10 % (Başlangıç =1; artış miktarı=2; bitiş =10)
y =
1 3 5 7 9
y vektörü aynı zamanda 1x5 boyutlu matris olarak değerlendirilmektedir. y’ ile elde edilen y nin
transpozu ise sütun vektörü veya 5x1 boyutlu bir matris olarak değerlendirilmektedir. Diğer alternatifler
arasında linspace ve logspace komutları vardır.
Tablo 3a da iki vektörün arasında tanımlı işlemler ile, bir skalerin bir vektörle çarpımı gibi lineer
cebirsel işlemlere ilaveten MATLAB de işlemlerde kolaylık açısından tanımlı olan bir vektör ile bir
skalerin toplama işleminin nasıl gerçekleştirildiği gösterilmektedir.
4
Önemli Fonksiyonlar
sin
:
cos
:
tan
:
sind
:
5
cosd
:
tand
:
asin
:
acos
:
atan
:
sqrt
:
exp
:
log
:
log10
:
abs
:
sign
:
max
:
min
:
floor
:
ceil
:
round
:
sum
:
mean
:
median :
mod
:
>> x = [1.0000 0.5000 0.7000]
>> sin(x)
ans =
0.8415 0.4794 0.6442
>> asin(x)
ans =
1.5708 0.5236 0.7754
>> sinh(x)
ans =
1.1752 0.5211 0.7586
21
>> log(x)
ans =
0 -0.6931 -0.3567
>> log10(x)
ans =
0 -0.3010 -0.1549
>> exp(x)
ans =
2.7183 1.6487 2.0138
size
:
Bir vektörün bileşen sayısı ile birlikte satır veya sütun vektörü olup olmadığını da
belirlemek için kullanılır.
length
:
sadece vektörün bileşen sayısını verir.
6
isreal :
değerini verir.
norm
:
vektörün bütün bileşenlerinin reel olması durumda 1, diğer durumlarda sıfır
vektörün orjine olan uzaklığının bir ölçüsüdür.
Alt Vektör Tanımlama
Bazı uygulamalarda bir vektörün belirli bir kısmından oluşan bir alt vektörün kullanılması
gerekebilir. Örneğin;
>> x=[1,2,3,4,5,6,7,8,9];
ile tanımlanan vektörünün tek indisli terimlerinden xtek, çift indisli terimlerinden ise xcift isimli bir
vektör tanımlayabiliriz:
>> xtek=x(1:2:9)
xtek =
1 3 5 7 9
>> xcift=x(2:2:8)
xcift =
2 4 6 8
Ayrıca in belirli sayıda elemanından(örneğin ilk beş elemanı) oluşan vektör
>> xbes=x(1:5)
xbes =
1 2 3 4 5
ile tanımlanabilir.
Noktalı Vektör Operatörler
Bilinen aritmetik operatörlerin ( + , * , - , / , ^ ) yanı sıra, bazı aritmetik işlemlerin daha etkin
biçimde gerçekleştirilebilmesi için MATLAB de çarpma, bölme ve üs alma operatörlerinin noktalı
versiyonları olarak noktalı çarpma ( .* ), noktalı bölme ( ./ ) ve noktalı üs ( .^ ) operatörleri geliştirilmiştir.
Noktalı çarpma operatörü aynı sayıda bileşe sahip olan iki vektörün karşılıklı elemanlarının çarpılmasıyla
yeni bir vektör oluşturur. Benzer biçimde noktalı bölme x./y ile x vektörünün her bir bileşeninin y
vektörünün karşılık gelen bileşenine bölünmesi suretiyle yeni bir vektör oluşturur. Şüphesiz bu durumda
işlemin geçerli olabilmesi için y vektörünün bütün bileşenlerinin sıfırdan farklı olması gerekmektedir.
x.^y şeklinde tanımlanan noktalı üs işlemi sonucunda ise x’in her bir bileşeninin y’nin karşılık gelen
bileşeninci kuvveti alınarak yeni bir vektör oluşturur. y nin skaler olması durumunda x in her bir
bileşeninin y skaleri ile belirtilen üssü alınır. Belirtilen işlemleri Tablo 3b den takip ediniz:
7
8
Download