Son yıllarda mühendislik alanlarında kullanımı oldukça yoğunlaşan bir bilgisayar destekli sayısal analiz, dizayn, hesaplama aracı MATLAB.



Benzer belgeler
MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

MATLAB Semineri. EM 314 Kontrol Sistemleri 1 GÜMMF Elektrik-Elektronik Müh. Bölümü. 30 Nisan / 1 Mayıs 2007

Matlab - Giriş (İleri Yapı Statiği II. Kısım)

MatLab. Mustafa Coşar

MATLAB A GİRİŞ. EE-346 Hafta-1 Dr. Ayşe DEMİRHAN

BİLGİSAYAR PROGRAMLAMA MATLAB

Bilgisayar Programlama MATLAB

MATLAB A GİRİŞ

Bilgisayar Programlama

Yukarıdaki program çalıştırıldığında aşağıdaki sonucu elde ederiz.

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

İM 205-İnşaat Mühendisleri için MATLAB. Irfan Turk Fatih Üniversitesi,

DENEY 1: Matlab de Temel Uygulamalar

BM202 SAYISAL ÇÖZÜMLEME

Matlab da Dizi ve Matrisler. Mustafa Coşar

Bu uygulama saatinde, dinamik sistemlerin simülasyonu (benzetimi) için geliştirilmiş olan, oldukça kullanışlı bir arayüz, Simulink, tanıtılacaktır.

BİLGİSAYAR PROGRAMLAMA DERSİ

MATLAB DA SAYISAL ANALİZ DOÇ. DR. ERSAN KABALCI

MATLAB. Grafikler DOÇ. DR. ERSAN KABALCI

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (

BİLGİSAYAR PROGRAMLAMA DERSİ

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

MATLAB. Temel işlemler, Vektörler, Matrisler DOÇ. DR. ERSAN KABALCI

MATLAB Temelleri. EE-346 Hafta 2 Dr. Ayşe DEMİRHAN

1. GİRİŞ 1.1. GENEL BAKIŞ 1.2. KULLANICI ARAYÜZÜ

MATLAB Temelleri. EEM104 - Bilgisayar Programlama. Matlab ın Açılış Ekranı. Dr. Mehmet Siraç Özerdem EEM Dicle Üniversitesi. Launch Pad.

ÖRNEK: Ax+B=0 şeklinde 1. derece denklemin çözümünü veren programa ait akış diyagramını çiziniz.

BMÜ-421 Benzetim ve Modelleme MATLAB SIMULINK. İlhan AYDIN

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

2.3. MATRİSLER Matris Tanımlama

CONTROL LAB1 MATLAB GİRİŞ

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Matlab da 2-boyutlu Grafik Çizimi. Arş. Gör. Mehmet Ali ÜSTÜNER

Fen ve Mühendislik Uygulamaları ile MATLAB

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

STEM komutu ayrık zamanlı sinyalleri veya fonksiyonları çizmek amacı ile kullanılır. Bu komutun en basit kullanım şekli şöyledir: stem(x,y).

Yrd. Doç. Dr. A. Burak İNNER

BİLGİSAYAR PROGRAMLAMA DERSİ

Göstericiler (Pointers)

Öğr. Gör. Serkan AKSU 1

Fen ve Mühendislik Uygulamaları ile MATLAB

BİL-142 Bilgisayar Programlama II

Uzaktan Algılama Teknolojileri

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

VERİ TABANI ve YÖNETİMİ

MATLAB

BİLGİSAYAR PROGRAMLAMA VE FİZİKTE PROGRAMLAMA DERSLERİ İÇİN MATLAB ÇALIŞMA NOTLARI. Mehmet ÖZKAN

Özyineleme (Recursion)

MATLAB de GRAFİK İŞLEMLERİ

14 Şubat 2011 Pazartesi günü uygulamada çözdüğümüz 2. Soruyu, aynı sıra ile bu defa MATLAB kullanarak çözelim.

AMASYA ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Elektrik Elektronik Mühendisliği Bölümü

SPSS (Statistical Package for Social Sciences)

KONTROL SİSTEMLERİ-1 LABORATUVARI DENEY -1. Öğr. Gör. Güzin ÖZMEN Arş. Gör. Fehmi SEVİLMİŞ

Grafik Komutları. Grafik Türleri plot: çizgisel grafikler bar: sütun bar şeklindeki grafikler stem: sütun çizgisel grafikler pie: pasta grafikleri

ADNAN MENDERES ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ MATEMATİK ANABİLİM DALI MATEMATİK PROGRAMI DERS LİSTESİ

Şekil 2.23: Window menüsü ve elemanları

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1 1. FORMLAR

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

1- Temel MATLAB Fonksiyonları ve Programlama

NĐĞDE ÜNĐVERSĐTESĐ Elektrik Elektronik Mühendisliği Bölümü. Devre Tasarımı Ders Notları MATLAB. Arş. Gör. Salim ÇINAR. salim çınar

Algoritmalar ve Programlama. DERS - 4 Yrd. Doç. Dr. Ahmet SERBES

BİL-142 Bilgisayar Programlama II

EHM381 ANALOG HABERLEŞME DÖNEM PROJESİ

AKT 305 Aktüeryal Yazılımlar Ödev 1 Yanıtları Soru 1. Create a vector x with the elements...

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

MATLAB DE 2 BOYUTLU GRAFİK TÜRLERİ

Şayet bir lineer sistemin en az bir çözümü varsa tutarlı denir.

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

BİLGİSAYAR DESTEKLİ TASARIM AUTOCAD DERSİ. 1. HAFTA Öğr. Gör. Serkan ÖREN

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

AST415 Astronomide Sayısal Çözümleme - I. 7. Grafik Çizimi

MAK1010 MAKİNE MÜHENDİSLİĞİ BİLGİSAYAR UYGULAMALARI

Bilgisayar Programlama MATLAB

C Programlama Dilininin Basit Yapıları

GNUPLOT ÇİZİM PROGRAMI

Bölüm 6. Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

Bilgisayar Programlama MATLAB

MATLAB de Programlama & Dosya Yönetimi. EE-346 Hafta 6 Dr. Ayşe DEMİRHAN

Sembolik Programlama1. Gün. Sembolik Programlama. 20 Eylül 2011

Kontrol Sistemlerinin Analizi

Ders 1 : MATLAB Programlama Ortamı

UYGULAMA 1 SPSS E GİRİŞ. SPSS; File, Edit, View, Data, Transform, Analyze, Graphs, Utilities, Window, Help adlı 10 adet program menüsü içermektedir.

Bilgisayar Programlama MATLAB

Değişken atama Kullanıcıdan veri girişi istendiğinde kullanılır. 1. Bir değişkene değer atama (örn: a=4 gibi) 2. Klavyeden veri girme

ELN3052 OTOMATİK KONTROL MATLAB ÖRNEKLERİ - 2 TRANSFER FONKSİYONU, BLOK ŞEMA VE SİSTEM BENZETİMİ UYGULAMALARI:

İstatistik ve Olasılık

1 JAVASCRIPT NEDİR? 1

FONKSİYONLAR. Giriş argümanlarına karşılık gelen çözümü çıkış argümanları olarak sonuçlandırır. Fonksiyondosyalarıkendiçalışmaalanındaki

MATLAB MATLAB MAT LAB MAT LAB MATLAB

1. GİRİŞ Kılavuzun amacı. Bu bölümde;

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

MATLAB ile ANALİZ (MIA)

13 Aralık Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

Dijital Kontrol Sistemleri Prof.Dr. Ayhan Özdemir. Dengede bulunan kütle-yay sistemine uygulanan kuvvetin zamana göre değişimi aşağıda verilmiştir.

Ayrık Fourier Dönüşümü

Transkript:

.. Son yıllarda mühendislik alanlarında kullanımı oldukça yoğunlaşan bir bilgisayar destekli sayısal analiz, dizayn, hesaplama aracı MATLAB. En son Matlab Versiyon 6.5 çıktı. Bizim tutorialda kullanacağımız Matlab Versiyon 6.0. Bazı tutorial dökümanları gönderilmesi amacıyla E-Mail adresleriniz ve isimlerinizden oluşan bir liste hazırlayıp bana iletebilirsiniz. Matlab programını çalıştıralım. Seminerin herhangi bir anında sorularınız olursa daha etkin bir bilgi alış-verişi için o anda sorabilirsiniz. Command Window : Bu kısım basit komutları çalıştırmak için kullanılır. Ayrıca işlemlerin adım adım gerçekleştirilebileceği bir arayüz. >> x=3+5 Bu yazılış biçimiyle matematiksel işlemin sonucu ENTER a basıldığında otomatik olarak Command Window da görülür. Ve bu değer x değişkenine atanarak hafızada sonraki kullanımlar için saklanır (Program Kapatılana veya belleğin sakladığı üst sınıra ulaşana kadar). Sonuçları her adımda görmeyip sadece değişkene atama işlemini yapmak için komut sonuna ; konur. >>x=3+5; 1

>> fun=sin(pi/4); MATLAB pi, i(sqrt(-1)), j(sqrt(-1)) gibi sabitlerin değerlerini kendi içinde saklar onları ayrıca tanımlamaya gerek yoktur. >>y=2*(1+4*j) % Kompleks sayı girişi abs(mutlak değer), sin(sinüs), cos(cosinüs),exp(üstel),angle(kompleks bir sayının açısının radyan cinsinden değeri) gibi fonksiyonlar da MATLAB de önceden tanımlıdır. >>angle(y) Bu fonksiyonların nasıl kullanıldıklarını görmek ve MATLAB hakkında herhangi bir konuda yardım almak için en etkin yöntem MATLAB HELP i kullanmaktır. Yardımı menü komutlarından alabileceğiniz gibi komut satırında da alabiliyorsunuz. Yardım alabileceğiniz yardım konularını görmek için: >>help Herhangi bir özel komut veya konuda yardım almak için help yanına ilgili konu veya kelimeyi yazmalısınız (Tabi, yazdığınız kelimenin programın yardım konuları arasında yer alması gerekiyor). >>help plot Bu örnekte sin(pi/4) değeri kullanıcı tarafından fun adı verilen bir değişkene atandı. Bu değişkenin değerini herhangi bir anda görmek için Command Window da adını yazıp ENTER a basmak yeterlidir. Görelim: >>fun Kullanılan Başlıca Arıtmetik Operatorler: + addition - subtraction * multiplication (Matris çarpımı) (.* : Eleman eleman çarpım) / division ^ power operator ' transpose 2

Matlab Help inin Aritmetik Operatörler Konusundaki Açıklamaları : Description + Matrix addition. A + B adds A and B. A and B must have the same dimensions, unless one is scalar. - Subtraction. A - B subtracts B from A. A and B must have the same dimensions, unless one is scalar. * Matrix multiplication. A*B is the linear algebraic product of A and B. The number of columns of A must equal the number of rows of B, unless one is a scalar..* Array multiplication. A.*B is the entry-by-entry product of A and B. A and B must have the same dimensions, unless one is scalar. \ Matrix left division. X = A\B solves the symbolic linear equations A*X=B. Note that A\B is roughly equivalent to inv(a)*b. Warning messages are produced if X does not exist or is not unique. Rectangular matrices A are allowed, but the equations must be consistent; a least squares solution is not computed..\ Array left division. A.\B is the matrix with entries B(i,j)/A(i,j). A and B must have the same dimensions, unless one is scalar. / Matrix right division. X=B/A solves the symbolic linear equation X*A=B. Note that B/A is the same as (A.'\B.'). Warning messages are produced if X does not exist or is not unique. Rectangular matrices A are allowed, but the equations must be consistent; a least squares solution is not computed../ Array right division. A./B is the matrix with entries A(i,j)/B(i,j). A and B must have the same dimensions, unless one is scalar. ^ Matrix power. X^P raises the square matrix X to the integer power P. If X is a scalar and P is a square matrix, X^P raises X to the matrix power P, using eigenvalues and eigenvectors. X^P, where X and P are both matrices, is an error..^ Array power. A.^B is the matrix with entries A(i,j)^B(i,j). A and B must have the same dimensions, unless one is scalar. 3

' Matrix Hermition transpose. If A is complex, A' is the complex conjugate transpose..' Array transpose. A.' is the real transpose of A. A.' does not conjugate complex entries. Bu noktada Command Line da görülen menüleri kısaca tanıtalım... *************************************************************************** Matris veya Vektör Tanımlama : MATLAB, matris ve vektör cebrine dayalı çalışır(skaler değişkenler bile 1X1 lik matris olarak düşünülür). MATrix-LABoratory Vektörler 2 yolla oluşturulabilir: Birinci Metod: Vektör elemanlarını köşeli parantez içinde yazarak z(4) >> z=[4,5,87,8]; z(1) z(2) z(3) >>z=[4 5 87 8]; % Üstteki ile aynı işlevde Varolan bir vektör veya matrise yeni bir eleman eklenebilir: >>z(5)=9 İkinci Metod: Eşit aralıklı elemanlara sahip vektörler oluşturarak >>x=1:2:2550; >>x=1:150000 % ; koymamak İstenmeyen durumlara yolaçabilir. >>x=linspace(4,14,6);% linspace.m, 2 sayı arasını lineer olarak istenen parçaya böler 4

Matrisler, elemanları satır satır girilerek oluşturulur(satırlar ; ile ayrılır). >>A=[3 4 6;45 5 8] % Sonucu görelim Matrisin herhangi bir elamanının değerinin sorgulanması : >>A(2,3) % Parantez köşeli değil artık (Not: Hatalı bir komut girişi durumunda program sizi uyaracaktır.) Bu değer değiştirilebilir: >>A(2,3)=2; Not: Programın çalıştırıldığı oturumda o ana kadar yazılmış olan komutlara üst/alt ok tuşları ile ulaşabilirsiniz. Ve sağ/sol oklar yardımıyla modifiye edip komutu tekrar çalıştırabilirsiniz. Bazı ÖZEL MATRİS ler veya vektörler vardır(oldukça kullanışlı). null matrix: M = []; nxm matrix of zeros: M = zeros(n,m); nxm matrix of ones: M = ones(n,m); nxn identity matrix: M = eye(n); nxm random matrix: M = rand(n,m); %Üniform dağılımlı rastgele değişkenli M = randn(n,m); % Normal dağılımlı rastgele değişkenli >>a=ones(12,5) >> a=zeros(12) Vektörleri veya matrisleri birer değişken gibi (operatörler uygun kullanılması ve boyut koşullarının uygun olması durumunda) işlemler içinde rahatça kullanabiliyoruz: 5

>>x=4+2*[0:5]; Küçük matris veya vektörlerden elemanları bu matris veya vektör elemanlarından oluşan daha büyük matris veya vektörler oluşturulabilir. >>x=4:2:14 >>y=[x,x] % Satır vektörlerinin arasına virgül koyarak genişletilmiş bir satır vektörü oluşturduk >> x=[4:2:14] % Sütun vektörü oluşturmanın bir yolu daha! Çok çeşitli yollar var.oldukça esnek... >> y=[x;x] % Sütun vektörlerinin arasına noktalı virgül koyarak genişletilmiş bir sütun vektörü oluşturduk >> y=[x,x] % Bu durumda ise 2 sütundan oluşan bir matris oluşturduk >>A=[1 2 3;6 10 15;7 8 9] >>D=[inv(A) A ] % inv.m : matris tersi >>A=eye(3)*rand(3,2) Fonksiyonlar eleman eleman gerçeklenir. >>t=0:pi/28:2*pi; >>a=cos(t); Herbir t değerinin cosinüsünü içeren a isminde bir vektör oluşturur. Görelim: >>a >>c=t.*cost; % c=t*cos(t) :HATALI YAZIM! Bu yazımda matris çarpımı komutu % var. Elimizdeki veri çarpım koşulunu sağlamıyor. Örneğimizde t % de, cos(t) de, 1X57 lik vektörlerdir ve matrisel çarpım % uygulanamaz. Ancak eleman-eleman çarpım mümkündür. (.* ile ) a değişkenini grafiğe dökelim: >>plot(a); % Vektörün elemanlarını grafiğe dönüştüren komut. Her komut gibi bu % komutun da farklı kullanımları var(help ten bunlar görülebilir). % Örn: plot(t,a); plot(a,t) ; >>plot(t,a); % plot(a) komutu ile çizilen grafikte yatay eksen, örnek numaralarından % oluşur (Örneğimizde 56 örnek var). Bu komut ile t nin değer % karşılıkları yatay eksende görülür.(örneğin 2*pi=6.28). 6

>>grid; % Grafiği daha okunabilir hale getirir. >>stem(a); % Ayrık zamanlı işaretlerin çiziminde genellikle bu komut kullanılır >>plot(t,a); % Tekrar geri dönelim >>grid; >>figure; >>plot(t,c); >>grid; >>figure(1); % Yeni bir boş grafik oluşturur. % 1. figürü etkin hale getirir. Yani bu komut sonrası yazılacak % grafik komutları artık figure 1 i etkiler. Ayrıca mouse ile en son % Click lenen figure etkindir. Grafikler (Etkin olan) ve eksenler isimlendirilebilir: >>title( Grafik 1 ); >>xlabel( t ); >>ylabel( a ); % Grafiğin başlığı % Yatay eksen etiketi % Düşey eksen etiketi Bu işlemler grafik ekranındaki görsel menülerle de yapılabilir. Görelim... Eksenlerin sınırları değiştirilebilir: Bu konu hakkında yardım alalım. Komutumuz axis( ). Bu amaçla komut satırında da help kullanılabilir. >>help axis >>figure(1); >>axis([0 7 -.5.5]); >>axis([0 7-3 3]); Birden çok karşılaştırmalı grafik takımı da oluşturulabilir: >>figure; % Boş bir grafik oluştur >>subplot(1,2,1); % Grafik ekranını 1X2 lik bir matris şeklinde alt grafiklere böler. % Ve 1. alt grafiği kullanım için etkin hale getirir. >>plot(t,a); >>subplot(1,2,2); % Subplot zaten hazırda varsa ilgili grafiği etkin hale getirir % (Burada ikinci olarak yazılan subplot komutu hazırdaki subplot % yapısına uygun değilse varolan alt grafikler kaldırılır ve yeni % komuta göre subplot yapısı yeniden oluşur ). >>plot(t,c); >>title( ikinci grafik ); >>subplot(1,2,1); >>xlabel( Birinci grafigin yatay ekseni ); 7

Matlab CASE SENSITIVE dir. a ve A farklı değişkenlere karşılık gelir. Şu ana kadarki tanımlanan değişkenler Workspace adı verilen alanda bulunmaktadır. Workspace teki değişkenlerin hangileri olduğu ve kapladıkları bellek alanları detaylı olarak görülebilir: >>whos; Ayrıca bu değişkenler sonraki çalışmalar için saklanabilir (değişkenlerin saklanıp ihtiyaç durumunda tekrar program çalışma ortamına aktarılması amacıyla genelde.mat uzantılı dosyalar kullanılır). MATLAB Demo larının önemli uygulama ipuçları vermesi bakımından incelenmesinde büyük fayda var (MATLAB Help ten demolar incelenebilir). Dosya giriş çıkış işlemleri de kolaylıkla yapılabilir: >>dizi=1:250; >>dizi >>help save >>save cikis.dat dizi; % Artım değeri girilmemişse 1er 1er artım verilir. % Değişkenlerin dosyalara yazılması ile ilgili yardım alalım. % c:/matlabr12/work ** klasöründe cikis.dat dosyasına % (dosya mevcut değilse oluşturarak) dizi değişkenimizin % değerlerini yazar. Dosyanın içeriğini görelim... Notepad ile görülebilir halde değil. Nedeni, değişkenin dosyaya ASCII formatında yazılmamış olması. ÇÖZÜM: >>save cikis.dat dizi -ascii; % Bu kadar kolay!!! Dosyanın içeriğini görelim... cıkıs.dat dosyasındaki değerleri takrar çalışma ortamımıza(workspace) alalım: >>load cikis.dat x ascii; >>x **: c:/matlabr12/work klasörü programın default olarak çalıştığı klasör. Yani kendini o klasörde sanıyor. Ve tüm otomatik dosya işlemlerini(dosya oluşturma,kaydetme, vs...) o klasör altında yapıyor. Etkin klasörü değiştirme imkanımız da var. Görelim... 8

M-File: Command Window ile işlemler adım adım gerçekleştirilebiliyordu. Ardarda ve otomatik olarak yapılması gereken komut dizileri tıpkı diğer programlama dillerindeki gibi MATLAB de de otomatik olarak M-File lar yardımı ile çalıştırılabiliyor. Diğer programlama dillerindeki gibi dedim çünkü bu yönü ile MATLAB bir programlama dili de sayılabilir. M-File komut dizileri veya fonksiyonlar veya döngüler içerebilen.m uızantılı dosyalardır. Her kullanıcı amacına göre M-File oluşturabileceği gibi program ile birlikte gelen veya diğer kullanıcıların hazırladığı ve TOOLBOX adı verilen dosya grubunun da M- File larını kullanabilir. Bu özellik, kullanıcılara büyük bir kullanım esnekliği sağlıyor. 2 Tür M-File hazırlanabilir: *Komut Metni (Command Script) *Fonksiyon Komut Metinleri giriş parametresi almaz veya çıkışa değerler döndürmezler. Yanlızca doğrudan gerçeklenebilen komutları çalıştırırlar. Fonksiyon türü M-File lar Tıpkı C Programlarındaki Return komutunun yaptığı gibi Workspace a değerler döndürebilir veya Workspace ten fonksiyon parametrelerini alabilir. M-File içinde başka bir M-File kullanılabilir (uygun düzenlemeler ile). Bir M-File oluşturalım: function [h]=tutor(t); Çıkış parametresi (Return value) h=sin(3*t)./t; for i=1:201; if h(i)>0 h(i)=2*h(i); else h(i)=-2*h(i); end end plot(t,h); Giriş değer(ler)i (Input Argument(s)) % t değişkeni M-File içinde tanımlanabileceği gibi bizim % örneğimizdeki gibi Command Window dan da % parametre olarak alınabilir. h, fonksiyonun döndürdüğü % parametredir. Fonksiyon içinde oluşturulur ve değeri % Command Line a bu yolla aktarılabilir. % işareti açıklama koymak amacıyla konur. Program % işaretinin sağında yazan şeyleri komut olarak dikkate almaz. % M-File lar isimleri ile çağırılıp çalıştırılır!!! % if döngüsü sonu % for döngüsü sonu 9

% M-File bitti!! Dosyayı tutor.m olarak kaydedip komut satırına geri dönelim: >>t=0:pi/100:2*pi; >>w=tutor(t); % tanımlanan t değişkenini alıp h değerini hesaplıyor, bu değeri % M-File içindeki komut yardımı ile çizdiriyor. Hesaplanmış olan % h vektörünü w vektörüne atıyor. Görelim: >>w MATLAB, C programlama dili ile oldukça benzerlik gösteren bir komut setine sahiptir. Çeşitli : ***Birim Basamak Fonksiyonunun inline fonksiyonu yardımı ile oluşturulması: >>u=inline( t>=0 ); % parantez içindeki koşul (parametre için geçerli koşul) % çerçevesinde u(t) oluşturuyor. t değişkeninin önceden % tanımlanması şart değil (Fonksiyon object oluşturuluyor % inline komutu ile) >>t=linspace(-2,10,100); >>plot(t,u(t-3)+u(t-5)); >>axis([0 10-1 3]); >>figure; >>t=linspace(-2,10,1000); >>plot(t,u(t-3)+u(t-5)); % 1 ve 2. grafik arasındaki farka dikkat!! >>axis([0 10 1 3]); ***Kronecker delta fonksiyonunun ( δ(n) ) inline fonksiyonu ile oluşturulması (Not: MATLAB Dirac Delta Fonksiyonu δ(t) yi oluşturamaz): >>delta=inline( n==0 ); >>n=0:10; >>x=delta(n-1)+2*u(n-3); >>stem(n,x) ***Sayısal İşaret İşleme (DSP) ve diğer konularda sıkça rastlanan bazı komutlar: >>help conv >>help filter >>help roots >>help fft 10

>>help sum ***Sembolik İşlemler : 1 ate t dt integralini sembolik olarak hesaplatalım: >>int( a*t*exp(-t), t,1,inf) % Sonuç Hazır!! ***MATLAB den Ses Kartına Sayısal Veri Gönderimi: Ses kartına sahip bilgisayarlarda sound komutu ile ayrık zamanlı işaretleri ses kartına gönderebiliyor ve bu işaretler analog işaretlere dönüştürülüp duyabileceğimiz sesler haline gelebiliyor. 8192 örnekleme hızında ve 0.5 sn uzunluğunda 1 khz frekansına sahip sinüsoidal bir işaret oluşturalım ve bunu ses kartına gönderelim: >>fs=8192; >>f=1000; >>n=1:(0.5*fs); >>x=sin(2*pi*f*n/fs); >>sound(x,fs) % Kontrol tamamen sizde! Bir Komut Metni (script) şeklinde M-File oluşturalım: fs=8192; f=1000; n=1:(0.5*fs); x=sin(2*pi*f*n/fs); sound(x,fs); for i=1:1500000 end sound(x,fs); for i=1:1500000 end fs=8192; f=1000 n=1:0.6*fs; x=sin(2*pi*f*n/fs); sound(x,fs); %M File Sonu! 11

Dosyayı script.m olarak kaydedip komut satırına geri dönelim: >>script % Biraz nostaljik oldu... Programın Çeşitli Uygulama Alanları: İşaret İşleme(FFT, Image Processing, Audio, Speech Processing, Statistical and Adaptive Signal Processing vs...) Devre ve Sistem Analizi(Konvolüsyon, Transfer Fonksiyonu gösterilimleri ve hesaplamaları, Sistemlerin çeşitli cevaplarının hesabı -Step Response,Frequency Response, Durum Denklemleri gösterilimi ve çözümleri vs...) Analog ve Sayısal Filtre Tasarımı Sistem ve Kontrol Müh. Uygulamaları (Otomatik Kontrol Sistemleri, Robotik Simülasyon, Sistem Modelleme ve Simülasyonu,Root Locus Uygulamaları vs... ) PID Kontrol İstatistik Matlab 6.0 ile Birlikte Kullanılabilecek Birçok Araç ve TOOLBOX Var: Simulink Stateflow Real-Time Workshop CDMA Reference Blockset Communications Toolbox Communications Blockset Control System Toolbox Data Acquisition Toolbox Database Toolbox Datafeed Toolbox Dials and Gauges Blockset DSP Blockset Filter Design Toolbox Financial Toolbox Financial Derivatives Toolbox Financial Time Series Toolbox Fixed-Point Blockset Fuzzy Logic Toolbox GARCH Toolbox (Generalized Autoregressive Conditional Heteroskedasticity) Image Processing Toolbox Instrument Control Toolbox Mapping Toolbox MATLAB C/C++ Math Library Motorola DSP Developer's Kit Model Predictive Control Toolbox Mu Analysis And Synthesis Toolbox 12

Nonlinear Control Design Blockset Neural Network Toolbox Optimization Toolbox Partial Differential Equations (PDE) Toolbox Power System Blockset Requirements Management Interface Report Generator Robust Control Toolbox Signal Processing Toolbox Spline Toolbox Statistics Toolbox Symbolic Math Toolbox System Identification Toolbox Wavelet Toolbox xpc Target Bu liste ve şu ana kadar söylediklerimiz MATLAB in kullanım alanının ne kadar geniş olduğunu açıkça gösteriyor. Uygulama çeşitliliği kullanıcının hayal gücü ile sınırlı! 13

Burada dikkat edilmesi gereken bir nokta var: Olanakların bu kadar hazır olarak önümüze sunulması bazı tehlikeleri de beraberinde getiriyor. Örneğin az önce de gördüğümüz gibi program integrali bile alıp sonucu hazır olarak önümüze sunabilecek düzeyde (sembolik olarak). Bu imkan bize integralin kağıt üzerinde nasıl alındığını, integral alma yöntemlerini unutturmamalı. İntegral konusunda olmasa da, ağırlıklı olarak bir tüketici toplumu olduğumuzdan bu tür sıkıntıları başka birçok alanda çekiyoruz aslında. Sonuç olarak, MATLAB gibi çok fonksiyonel ve faydalı araçların biz mühendislere üretkenliğimizi ve verimimizi artırıcı yönde katkıda bulunmasını diliyorum. Bu düşünce sistemi ile, gerçekten üretebilen, karşılaştığı sorunları en etkin biçimde çözebilen dinamik, kaostan ve sıkıntılardan uzak bir toplum olma yolunda büyük bir adım atabiliriz. Önemli Not: Kopya yazılım kullanmaktan kaçının! Hatırlatma: Önümüzdeki haftalarda çeşitli mühendislik alanlarında MATLAB programı aracılığında ciddi uygulamalar yürüten insanlar gerçekleştirdikleri çalışmaları, elde ettikleri sonuçları ve edindikleri tecrübeleri bizimle paylaşacaklar. İlanları takip etmeye devam ediniz. TEŞEKKÜRLER Yeditepe Üniversitesi Mühendislik ve Mimarlık Fakültesi Elektrik-Elektronik Mühendisliği Bölümü Kasım 2002 Özel Teşekkür : Sn. Deniz Pazarcı ve Erhan Küçükgüzel e sağladıkları dökümanlar ve katkıları için teşekkür ederim. Arş. Gör. Muharrem Tümçakır 14