fen ve mühendislik uygulamalarında...

25
MATLAB Ders Notları Fen ve Mühendislik Uygulamalarında MATLAB Doç. Dr. İrfan KAYMAZ Bilgisayar Programlamaya Giriş

Upload: builien

Post on 29-Aug-2019

243 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Fen ve Mühendislik Uygulamalarında

MATLAB

Doç. Dr. İrfan KAYMAZ

Bilgisayar Programlamaya Giriş

Page 2: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

Matlab Ders Notları

KAYNAKLAR

1. * MATLAB, Ömer Gündoğdu, Osman Kopmaz, M. Akif Ceviz, Paradigma

Akademi, 2003.

2. * MATLAB ve Programlama, Dr. Aslan İnan, Papatya yayınları, 2004.

3. * MATLAB 6.5, A. Emre Çetin, Alfa Yayınları, 2003.

4. * MATLAB ile Mühendislik Sistemlerinin Analizi ve Çözümü, İbrahim

Yüksel, Vipaş, 2000.

5. Her yönü ile MATLAB, Mehmet Uzunoğlu, Ömer Çağlar Onar, Ali Kızıl,

Türkmen Kitabevi, 2003.

6. MATLAB ile Mühendislik Sistemlerinin Analizi, Uğur Arifoğlu, Alfa Yayınları,

2003.

* Erzurum’da bulunabilecek kaynaklar

Page 3: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Dersin İçeriği

1. HAFTA Bilgisayar Programlama dilleri ve tarihi

gelişimi,

Algoritma hazırlama

2. HAFTA Akış diyagramları hazırlama

3. HAFTA MATLAB programlama ortamının tanıtımı

Bilgi türleri, Sabitler, Değişkenler

Değişken türlerinin programda tanıtılması

Aritmetik işlemler, Aktarma deyimleri,

5. HAFTA Giriş- Çıkış deyimleri

6. HAFTA Çevrim yapıları

7. HAFTA Kontrol deyimleri

8. HAFTA Kontrol deyimleri

9. HAFTA Dizin kavramı

10. HAFTA Fonksiyonlar

11. HAFTA Dosya yönetimi

12. HAFTA Hazır fonksiyonlar ve kullanımı

13. HAFTA Hazır fonksiyonlar ve kullanımı

14. HAFTA Grafik çizme

Page 4: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notlari

Bilgisayarın kısa tarihçesi http://lecture.eingang.org/toc.html

Bilinen en eski hesaplama cihazlarından biri 4-5 bin yıl öncesine kadar giden ve

binlerce yıl hesaplamada kullanıldığı bilinen “ABAKÜS” tür. İlk mekanik hesap makinesi

ise 1642 yılında bir Fransız düşünürü ve matematikçisi olan Blaise PASCAL (Not: 1980’li

yıllarda geliştirilen Pascal programlama dili onun adına ithaf edilmiştir) tarafından icat

edilmiştir. Pascal’ın toplama ve çıkarm yapan bu tasarımı 1960’lı yıllara dek çoğu mekanik

hesaplama kaninesinde kullanılmıştır. Bu tasarım, 1673’de Gottfried ve Leibnitz tarafından

geliştirilerek hem dört işlem yapılabilir hem de karekök alınabilir düzeye ulaştırılmıştır.

1850’li yıllarda İngiltere’de Cambridge Üniversitesi’nde bir matematik profesörü olan

Charles BABBAGE, “difference engine (fark makinesi)” adını verdiği basit bir modelle bazı

denklemlerin daha kolay ve doğru çözülebileceğini göstermiştir. Ülkemizde de 1970’li

yılların sonlarına kadar kullanılan delinmiş kartların keşfi Fransız Jacguard tarafından

yapılmış ve bunların veri işleme ortamı olarak kullanılmaya başlanması 1890’lı yıllarda

Amerika’da olmuştur. 1896’da ABD’de Hollreith’in kurduğu “tabulating machine company”

diğer bazı firmalaral birleşerek International Business Machines (IBM) corporation

firmasını çekirdeğini oluşturmuştur.

İlk elektronik sayısal (digital) bilgisayar 1942’de ABD’de üretilmiş (Iowa State

College) ve akabinde cu cihaz Pennsylvania Ünivesitesi’nden Dr. Mauchly ve Ecbert

tarafından geliştirilerek 1946’da ENIAC (Electronic Numerical Integrator And Calculator:

Elektronik Sayısal Integral Alma ve Hesaplama Makinesi) denilen makina üretilmiştir. İlk

genel amaçlı elektronik sayısal bilgisayar olan ENIAC 30 ton ağırlığa, 140 m2’lik alana,

18.000 adet tüpe sahipti. 1946’lı yıllarda transistörün keşfi ile çok büyük yer kalayan

elektronil tüplerin kullanımı ortadan kalkmış ve 1950’li yıllardaki gelişmeler bilgisayar

çağını başlatmış ve bu alandaki teknoloji günümüze dek büyük bir hızla ilerleme

kaydetmiştir.

Page 5: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notlari

Bilgisayarda Problem Tanımı ve Çözümü

Problem Nedir?

Bir işlemin, otomasyonun yada bilimsel hesaplamanın bilgisayarla

çözülmesi fikrinin ortaya çıkmasına problem denir. Bu tip fikirlerde

insanların bu sorunları beyinle çözmeleri ya imkansızdır ya da çok zor

ve zaman alıcıdır. Bu tip bir sorunu bilgisayarla çözebilme fikrinin ortaya

çıkması bir bilgisayar probleminin ortaya çıkmasına neden olmuştur.

Bilgisayar, çok büyük miktarlardaki (gigabyte’lar ve üzeri) datayı (bilgiyi) çok

küçük ortamlarda saklayabilen ve bu veriler üzerinde işlemleri çok hızlı olarak

(saniyenin milyonda hatta milyarda biri mertebesinde) gerçekleştirebilen bir

cihazdır. Başlıca iki ana bölüme ayrılır:

DONANIM (HARDWARE): Bilgisayarin fiziksel bileşenlerinin tümüdür

YAZILIM (SOFTWARE): Donanımı oluşturan bileşenlerin çalışmasını ve

işlevlerini yerine getirmesini sağlayan programlar kümesidir.

Bilgisayar Nedir?

Page 6: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notlari

PROBLEM ÇÖZÜM AŞAMALARI

Sistem Analizi : Sorunun çözülebilmesi için sistemin tamamen anlaşılmasını sağlayan

çalışmalardır.

Tasarım : İsteklerle ilgili olarak belirlenen bir takım çözümlerin tanımlanmasıdır.

Algoritma : Çözümün adımlarla ifade edilmesidir.

Akış Çizgesi : Algoritmanın şekillerle ifade edilmesidir.

Programlama Dili Seçimi : Çözümün netleşmesinden sonra yapılacak işlemleri kolay

bir şekilde bilgisayar ortamına aktaracak dilin seçilmesidir.

Programın Yazılması : Seçilen Programlama dilinin kuralları kullanılıarak program

yazılmaya başlanır.

Derleme : Programlama Dili ile yazılmış programın yazım hatalarının olup olmadığının

kontrol edilmesini ve ara kod olarak Obje kodun üretilmesini sağlama adımıdır.

Bağlama : Derlenmiş ara kod diğer kütüphane ve parça programlarla birleştirilerek

Makine dilinde programın oluşturulması adımıdır.

Çalıştırma : Oluşturulan Makine dili Programının çalıştırılması adımıdır.

Test : Programın Mantıksal olarak test edilmesini sağlar ve içerik olarak her ihtimal için

doğru sonuçlar üretip üretmediğini kontrol etmenizi sağlar.

Page 7: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Program Nedir?

Problem çözümü kısmında anlatılan adımlar uygulandıktan sonra

ortaya çıkan ve sorunumuzu bilgisayar ortamında çözen ürüne Program

denir. Bazı durumlarda bu ürüne yazılım denebilir.

Programlama Nedir?

Problem Çözümünde anlatılan adımların tümüne birden

programlama denilebilir. Çoğunlukla çok iyi tanımlanmış bir sorunun

çözümüne dair adımlar ile çözümün oluşturulup bunun bir programlama dili

ile bilgisayar ortamına aktarılması Programlama diye adlandırılabilir.

Page 8: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notlari

Programlama Dili (Programming Language) Nedir?

Bir Problemin Algoritmik çözümünün Bilgisayara anlatılmasını sağlayan

kurallar dizisidir.

Bazı programlama dilleri:

C, C++, Delphi, Pascal, Visual Basic, Fox Pro, Java, Lisp, C#

Bir dilin üstünlüğünün parametreleri:

Kullanılabilirliği,

Gelişim hızı,

İhtiyaca kolay cevap vermesi,

İşletim sistemi ile uyum seviyesi,

Esnek olması,

İşletim sisteminden bağımsız olması ,

Derleme işleminin hızlı olması,

Az yer kaplaması,

Sistemi optimum kullanması…

Page 9: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

PROGRAMLAMA DİLLERİ

DüŞük Seviyeli Diller Yüksek Seviyeli Diller

MATLAB Ders Notlari

Makine Dili

Assembly Görsel Diller Görsel Olmayan Diller

Visualbasic

Delphi Fortran

Html Cobol

Java C++

Visual C Qbasic

Turbo pascal

C

MATLAB

Page 10: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Makine Dili

Makine Dili 0 ve 1 den oluşan bir dildir ve bilgisayarın anladığı yegane dildir. Bu

dili direkt kullanmak için hem komutların sayısal karşılıkları ve hem de bilgisayarın

bellek adreslemesinide bilmek gerekmektedir. Bu tip dillere düşük düzey dili (Low

Level Language) adı verilir.

Assembly (simgesel) dili:

İkili sayı sisteminde yazılmış olan komutları harfli sembollerle ifade ederek üretilenbir dildir. ADD, LDA ve STA gibi…

Assembler: Assembly dilini makine diline çevirir.

DÜŞÜK SEVİYELİ PROGRAMLAMA DİLLERİ

Page 11: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Derleyici (Compiler) Nedir?

Bir programlama dili ile bilgisayara aktarılan programın bilgisayarın

anlayabileceği Makine Diline çevirmeyi sağlayan ve yazılan programda söz dizim

hatalarının olup olmadığını bulan yazılımlardır. Her Programlama dili için bir

derleyici olması gerekmektedir. C, PASCAL, COBOL, DELPHI vs. derleyicisi

olan yüksek seviyeli dillerdir.

HER PROGRAMLAMA DİLİNİN BİR DERLEYİCİSİ YA DA

YORUMLAYICISI VARDIR

PROGRAM DERLEYİCİ ÇIKTIAMAÇ

PROGRAM

Yorumlayıcı (Interpreter) Nedir?

Yorumlayıcılar, (Interpreter) yazılan programları makine diline dönüştüren yazılımlardır.

Ancak bu dönüşüm, derleyiciden farklı olarak gerçekleştirilmektedir. Yorumlayıcılar her

satırı anında makine diline çevirerek çalışır ve bu kodu bir dosyaya kaydetmez.

Dolayısıyla program her çalıştırıldığında her satır yeniden makine koduna dönüştürülür.

Bu yüzden yorumlayıcılar yavaş çalışmaktadır. VISUAL BASIC ve MATLAB yorumlayıcısı

olan yüksek seviyeli dillerdir.

PROGRAM

YERİ

YORUMLAYICI ÇIKTI

Page 12: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Bilgisayar Programlamanın tarihçesi

Page 13: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Algoritma Nedir?

Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne

denir. Doğal dille yazılabileceği için fazlaca formal değildir.

Çözüm için yapılması gereken işlemler hiçbir alternatif yoruma izin

vermeksizin sözel olarak ifade edilir.

Bir algoritma için aşağıdaki ifadelerin mutlaka doğrulanması

gereklidir.

•Her adım son derece belirleyici olmalıdır. Hiç bir şey şansa bağlı

değildir.

•Belirli bir sayıda adım sonunda algoritma sonlanmalıdır.

•Algoritmalar karşılaşılabilecek tüm ihtimalleri ele alabilecek kadar

genel olmalıdır.

Page 14: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Örnek 1: Verilen iki sayının toplamının bulunmasının algoritması

aşağıdaki gibi yazılır:

Algoritma:

A1 :X degerini gir

A2 :Y degerini gir

A3 :Z= X+Y

A4 :Z' yi yaz

A5 :Bitir

Algoritmaya dikkat edilirse işlemlerin sıralanmasında,işlem

önceliklerinin göz önünde bulundurulduğu görülür.

Page 15: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Örnek 2: Çapraz döviz kuru hesabi yapan programın algoritmasının

oluşturulması. Bu algoritmanın oluşumunda veriler; 1 Amerikan dolarının TL

karşılığı, hesaplanacak $ miktarı, çıkış ise verilen $'in TL karşılığı olacaktır.

Doların değeri :Doldeg, Girilen Dolar Miktarı :Dolar, TL karşılığı :Tlkar.

Algoritma:

A1 :Doldeg'i gir

A2 :Doldeg<0 ise 1. adımı tekrarla

A3 :Dolar'i gir

A4 :Dolar<0 ise 3.adımı tekrarla

A5 :Tlkar=Doldeg*Dolar

A6 :Tlkar degerini yaz

A7 :Bitir

Page 16: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Örnek 3: Verilen iki sayının ortalamasının hesaplanması.

Algoritma:

A1 :X değerini gir

A2 :Y değerini gir

A3 :Z = X+Y

A4 :Ort= Z/2

A5 :Ort degerini yaz

A6 :Bitir

Page 17: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Örnek 4: Kenar uzunlukları verilen dikdörtgenin alan hesabini yapan programa

ait algoritmanın hazırlanması. Kenar uzunlukları negatif olarak girildiği

durumda veri girişi tekrarlanacaktır.

Değişkenler:

Dikdörtgenin kısa kenarı : a, Dikdörtgenin uzun kenarı : b,

Dikdörtgenin alanı : Alan

Algoritma:

A1 :a degerini gir

A2 :a<0 ise 1. adımı tekrarla

A3 :b degerini gir

A4 : b<0 ise 3. adımı tekrarla

A5 :Alan = a*b

A6 :Alan degerini yaz

A7 :Bitir

Page 18: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Akış Diyagramları

Akış diyagramları (Flow Charts):Herhangi bir sorunun çözümü için

izlenecek yol anlamına gelmektedir. Akış diyagramları, algoritmaların

sembolik olarak gösterimidir. Bilgisayarda gerçekleştirilecek her tür aksiyon

ayrı bir sembolle gösterilir.

Page 19: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Tekrarlı İşlemler

Page 20: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Karar Verme Yapısı

Page 21: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Örnek 5: 1'den 100'e kadar olan sayıların toplamlarını

ve ortalamalarını veren programın akıs diyagramını çiziniz.

Page 22: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Örnek 6: Ax+b=0 seklinde verilen 1.derece denklemin

çözümünü veren programa ait akış diyagramını çiziniz.

Page 23: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Örnek 7: 1' den 100'e kadar sayıların karelerini,

kareköklerini, küplerini, küpköklerini toplamlarını ve

ortalamalarını veren programin akıs diyagramını

çiziniz.

Page 24: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Örnek 8: F(x) fonksiyonunun degeri X'in

aldığı değerlere göre asağıda verilmiştir.

X'in değeri 0-10 arasın da 0.5 aralıklarla

arttığına göre her bir X degeri için F(x)

fonksiyonunu hesaplayan programın akis

diyagramını çiziniz.

0< X < 2 f(x)= X

2< X < 3 f(x)=X -X3 -22

3< X <4 f(x)=X2 -2X+13

4< X f(x)=X4 -3X2 -43

Page 25: Fen ve Mühendislik Uygulamalarında MATLABmuhserv.atauni.edu.tr/makine/ikaymaz/fenbilmatlab/ders_notlari/DERS... · MATLAB Ders Notlari Makine Dili Assembly Görsel Diller Görsel

MATLAB Ders Notları

Ödev:

Dışardan girilen 3 sayıdan en büyüğünü bulan programın Algoritmasını

ve Akış diyagramlarını oluşturunuz.