Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

ENF1012 MATLAB’a Giriş. K onular: M ATLAB ortamının tanıtımı M ATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) a)Geliştirme ortamı b)Komut.

Benzer bir sunumlar


... konulu sunumlar: "ENF1012 MATLAB’a Giriş. K onular: M ATLAB ortamının tanıtımı M ATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) a)Geliştirme ortamı b)Komut."— Sunum transkripti:

1 ENF1012 MATLAB’a Giriş

2 K onular: M ATLAB ortamının tanıtımı M ATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) a)Geliştirme ortamı b)Komut penceresi c)Başlatma penceresi (launch pad) d)Workspace e)History f)Current directory

3 M ATLAB, bilim adamları ve mühendislere, Fortran ve C gibi gelenekselleşmiş dillerde program yazmaksızın, matrislere dayalı problemleri çözmede kullanılmak üzere bir sayısal hesaplama kütüphanesi sunmak amacıyla, MATris LABoratuvarı (MATrix LABoratory) programı olarak tasarlanmıştır. Fakat daha sonra, Optimization Toolbox ve Control System Toolbox gibi bazı toolbox’lar eklenerek geliştirilmiştir. MATLAB bir yorumlayıcıdır (interpreter); yani sonuç, daha ziyade eltipi hesap makinelerine benzer tarzda ekranda yazılı bir metin olarak alınabilir. Neticede diğer dillerde olduğu gibi “derleme”ye (compiler) ihtiyaç yoktur; fakat programlamaya izin vermesinden dolayı da güçlü bir paket programdır. M ATLAB

4 z(x,y) = x exp( - x^2 - y^2): >> [x,y] = ndgrid(-2:.2:2, -2:.2:2); >> z = x.* exp(-x.^2 - y.^2); >> mesh(z)

5 1. Temel Bilgiler Komut Penceresi: MATLAB ile iletişim kurulan ana penceredir. MATLAB yorumlayıcısı kullanıcıdan gelecek komutları kabul etmeye hazır olduğunu gösteren “ >> ” biçiminde bir ileti görüntüler. Örneğin, 4*25+6*52+2*99 gibi basit matematiksel işlemi yapmak için >> 4*25+6*52+2*99 ifadesini yazıp Enter tuşuna basılınca, ans= 610 Komut satırında yanlışların düzeltilmesi: Klavyede yer alan ok tuşları komut satırında yapılan yanlışlıkları düzeltilmesine olanak tanır. Bunlar yukarı “↑” aşağı “↓” sol “←” sağ “ →”. Yukarı tuşu kullanılarak bir önceki satır tekrar görüntülenerek sağ ve sol tuşları ile yanlış yazılı yere kursör taşınarak düzenleme gerçekleştirilir. Sonucun Ekranda Görüntülenmesini Gizleme: bir deyim yazıp, Enter tuşuna basılınca sonuçlar ekranda otomatik olarak görüntülenir. Buna karşılık, deyimin sonuna “ ; ” ilave edilecek olursa, bu deyim ile yapılan hesaplamalar ekranda görüntülenmez.

6 2. MATLAB DEĞİŞKENLERİ VE KURALLAR Diğer programlama dillerinin pek çoğunda olduğu gibi MATLAB da matematik deyimler şart koşmakla beraber, diğer pek çok programlama dillerinden farklı olarak bu deyimler tümüyle matrisleri kapsar. Örneğin, >>x =50 yazıldığında “x” adı altında bir değişken oluşturur ve 50 değerini bu değişkene atar. Diğer bilgisayar dillerinde olduğu gibi MATLAB’ın da değişken isimleri konusunda bazı kuraları vardır. Değişkenler: Deyimler içerisinde sayısal değerlerin yerini alan ifadelerdir. MATLAB bir değişken ile karşı karşıya geldiğinde, otomatik olarak bu değişkeni oluşturulur ve yeteri kadar bellek ayrılır. Eğer değişken daha önceden tanımlı ise MATLAB onun içeriğini değiştirir ve gerekirse yeni bellek ayırır. Deyim oluşturma gurupları: Değişkenler, rakamlar, işletmenler ve fonksiyonlardır. MATLAB deyimleri ise komut ortamında yazılan her türlü komut satırlarıdır.

7 Belli Başlı Kurallar Aşağıda Olduğu Gibi Özetlenebilir. 1- Değişken isimleri küçük büyük harf kullanımına duyarlıdır. Buna göre aynı anlama gelen fakat farklı yazılan “orta”, “Orta”, “orTa” ve “ORTA” kelimeleri MATLAB için farklı değişkenlerdir. Rakamlar: MATLAB rakamlar için artı veya eksi işareti ve tercihli ondalık noktası ile birlikte alışagelmiş ondalık işaretler sistemi kullanır. Bilimsel işaretler sistemi 10 tabanına göre kuvvet belirlemek için “e” harfi kullanır. Sanal rakamlar son takı olarak “ i ” veya “ j ” harfi kullanır. 3, -100, , e10, 2.5e-5, 10i, -3.4j, 3e5i Noktalama işaretleri 3- Değişken isimleri daima bir harf ile başlamalı ve bunu herhangi bir sayıda harfler, rakamlar veya alt çizgi ”_” izleyebilir. Noktalama işaretleri değişken isminde kullanılmaz. Çünkü bunların pek çoğunun MATLAB için bir anlamı vardır. 2- Değişken isimleri en fazla 31 karakter içerebilir. Bundan fazla olanlar dikkate alınmaz

8 İşletmenler: MATLAB deyimler içerisinde alışageldik aritmetik işletmenler ve öncelik kuralları kullanır. İşlemSembolÖrnek Toplama, a+b Çıkarma, a-b Çarpma, a*b * 3*43*4 Bölme, a/b / 14/7 Üs alma, a b ^ 2^32^3 Parantez a*(b+c) ( ) 2*(3+5) Matematik işlemlerde öncelik hakkı: Matematik işlemlerde öncelik hakkı: Tek bir matematiksel deyim içinde birden fazla işlem bir arada bulunabildiğine göre hangi işlemin öncelik hakkına sahip olduğunun bilinmesi yerinde olacaktır. Aşağıda MATLAB da kullanılan işlemlerde, işlemlerin öncelik listesi verilmiştir.

9 Öncelikİşlem Parantez 1.Parantez Üst alma, soldan sağa doğru 2.Üst alma, soldan sağa doğru Çarpma ve bölme, soldan sağa doğru 3.Çarpma ve bölme, soldan sağa doğru Toplama ve çıkarma, soldan sağa doğru 4.Toplama ve çıkarma, soldan sağa doğru Fonksiyon: MATLAB sin, abs, sqrt, ve Log gibi çok önemli fonksiyonları da içine alan çok sayıda elemansal matematik fonksiyon sağlar. Bu fonksiyonların bazıları aşağıdaki Tablo’da listelenmiştir. FonksiyonSembolÖrnek Sinüs, sin(  ) sinsin(pi) Cosinüs, cos(  ) coscos(pi) Tanjant, tan(  ) tantan(pi) Arksinüs, arcsin(  ) asinasin(0) Arkkosinüs, arccos(  ) acosacos(0) Arktanjant, arctan(  ) atanatan(1)FonksiyonSembolÖrnek Eksponensiyal, e x expexp(2) Doğal logaritma ln(x)loglog(10) 10 tabanlı logaritmalog10log10(10) Kare kök,  x sqrtsqrt(25) Mutlak değer, |x|absabs(3)

10 MATLAB’ DE DEĞİŞKEN TİPLERİ Double: Skaler veya vektörlerden oluşan sayısal değişkenleri ifade eder. Char: Tek bir karakter veya karakter grubundan oluşan skaler veya dizinleri ifade eder. MATLAB’ DE DEĞİŞKEN ATAMALARI Eşitlik Eşitlik İfadeleri ile Değişken Atamaları Bu şekildeki bir değişken atamasının genel hali, değişken = değer >> değişken = değer şeklindedir. Burada "değişken", herhangi bir karakter veya karakter grubu olabilir. "değer" ise, herhangi bir matematiksel ifade, bir karakter dizisi, bir sabit, bir matris veya bunların birden fazlasının matematiksel işlemler ile oluşturulmuş kombinasyonları olabilir.

11 Skaler atama X = 3 A = 5-5i B = A / 5 ilk değerinin silinmesine yeni değeri Bir değişkene bir değer atadıktan sonra aynı değişkene farklı bir değer atamak, o değişkenin ilk değerinin silinmesine, söz konusu değişkenin bundan sonraki işlemlerde yeni değeri ile işlem görmesine neden olmaktadır. Örnek: >> a=5 >>b=a+2 b = 7 >>a=10 >>b=a+2 b = 12 Örnek:

12 Matematiksel yazılım Bilgisayarda yazılımı ab-c+d-6+daa*b-c+d-6+d*a b+c 3 -d/8-b 2 cb+c^3-d/8-b^2*c ??? Örnekler: Ödev: İşlemini bilgisayar dilinde kodlayınız

13 ÖZEL DEĞERLER VE KALICI DEĞİŞKENLER MATLAB'ın yapısında önceden tanımlanmış, kullanılacakları zaman tekrar tanımlanmalarına gerek olmayan ve herhangi bir anda kullanılmaya hazır bazı özel değerler bulunur. Örneğin: yarıçapı 2 birim olan bir kürenin alanını >> r=2; >> alan = 4 * pi * r^2 >> alan = >> date ans = 19-Mar-2003 >> clock ans =

14 BİR DEĞİŞKENE DIŞARIDAN BİR DEĞER ATANMASINI İSTEMEK input “ input " fonksiyonu, komut penceresinde kullanıcıdan bir değişkene bir değer girmesini isteyen bir komut görüntüler ve kullanıcının bu değeri girmesini bekler, X=input('Bir değer giriniz= '); >> x=input(' x değerini giriniz= ') x değerini giriniz= 10 x = 10 Uygulama Sorusu: Dışardan girilen 3 sayının ortalamasını bulan bir MATLAB programı yazınız.

16 Eşitlik durumlarında verilen işaret iki adet eşittir " == " işaretinden oluşur. Oysa değişken atamalarında kullandığımız eşittir " = ", bir tanedir. Bu ikisi birbirlerinden farklı operatörlerdir. "==" operatörü, kıyaslama durumlarında kullanılır ve mantıksal bir sonuç üretir. "Eşit ise", "eşit midir?" şeklindeki durumlarda kullanılır. " = " işareti ise, bir değişkene bir değer atamada kullanılır, örneğin MATLAB komut penceresinde; 3=5 yazdığımızda; program hata üretir. Oysa 3==5 yazdığımızda bu “ 3, 5'e eşit midir? " anlamına gelir, kıyaslama yanlıştır ve MATLAB bu durum için “0” cevabını üretir. Yeni başlayanlar için bir karşılaştırma durumunda tek eşittir " = " işareti kullanmak, sık yapılan bir hatadır. >> 3==5 ans = 0 >> 3 = 5 ??? 3=5 ! Error: Missing operator, comma, or semicolon. >> x=0; >> y=sin(pi); şeklinde yapılan iki değişken atamasını takiben yapılan x==y karşılaştırmasının sonucu olarak 1 cevabı beklenirken, 0 cevabı alınır. MATLAB, bu iki değeri farklı olarak algılamıştır. Çünkü MATLAB'da sin (pi) değeri 0'a eşit değildir, sin(pi), yuvarlamadaki farklılıktan ötürü e-016 değerine sahiptir ve 0'a eşit değildir. Yani teorik olarak birbirine eşit iki değer, aslında farklı sayılara tekabül etmektedir.

17 >>x=0; >>y=sin(pi); >>x==y ans = 0 Sık yapılabilecek diğer bir hata da karşılaştırma operatörlerinin aritmetik operatörlerden daha sonra değerlendirildikleri durumunu ihmal etmektir. Yani parantezlerden yararlanılmadığı durumlarda bile aritmetik işlemler, öncelikle yapılır. 2+8 > 8+3 (2+8) > (8+3) Bu iki durumda da MATLAB'ın üreteceği cevap 0'dır. Mantıksal Operatörler Bu operatörler, bir veya iki mantıksal anlamı olan ve mantıksal bir sonuç üreten operatörlerdir. Üç tane çiftli mantık operatörü vardır. Bunlar; "AND", "OR" ve "XOR" dur. Diğer bir mantık operatörü tekli yapıya sahip olan "NOT" operatörüdür. Çiftli yapıdaki operatörlerin genel kullanımı a işlem b şeklinde iken tekli bir operatör olan "NOT " genel kullanımı işlem a şeklindedir. Burada a ve b değişkenler iken işlem, aşağıdaki mantık operatörlerinden biridir, a ile b'nin arasındaki ilişki, operatörün belirttiği şekilde ise sonuç 1, eğer değilse sonuç 0 olur.

18 OperatörlerKomut karşılığıİşlevleri & ANDVE | ORVEYA xor XORÖzel Veya ~ NOTDeğil Örnek: >> k=4; m=5; >> (k>6) and (m<8) HATALI YAZIM ??? (k>6) and (m<8) | Error: Missing operator, comma, or semicolon. >> (k>6) & (m<8) ans = 0 0<=x<9 ifadesinin MATLAB’deki karşılığı: (0<=x) & (x<9)

19 M ATLAB ’ de Programlama M -dosyası G enel tanıtımı :.m Bir senaryo dosyası (script file) özel bir görevi yerine getirmek için gerekli MATLAB komutlarının saklandığı bir metin programıdır. Başka bir ifadeyle; bir hesaplamayı gerçekleştirmek için yazılacak bir çok komutlar dizisi, komut penceresinden tek tek girmek yerine bir dosyada saklanır daha sonra bu dosya çalıştırılarak bu komutlar icra edilir. Bu dosyaların MATLAB’ın çalıştığı birimde " dosya_adı.m " uzantısıyla saklanmaları gerekir. ( M-dosyalarının ) Senaryo dosyalarının ( M-dosyalarının ) oluşturulması ve yazılması için MATLAB bir metin hazırlayıcısı (text editor) sunmaktadır. Bu senaryo dosyaları Windows’da Notepad gibi herhangi bir metin hazırlayıcısında da yazılabilirler. MATLAB metin hazırlayıcısı ya komut penceresinin üst kısmında yer alan “New M-file” düğmesi tıklanarak veya kısaca “File” menüsünden “New/M-file” ibaresini seçerek etkin hale getirilebilir.

20  Değişken sayısı fazla olması durumunda  Akış diyagramlarının uygulanmasında  Programdaki değişikliklerin kolayca yapılmasında Örnek: Dışardan girilen dairenin yarıçapına göre alan ve çevre hesaplayan program yazınız? M-dosyalarının M-dosyalarının Gerekliliği: R = input(' Dairenin yarıçapını giriniz = '); Alan=pi*R^2; Cevre=2*pi*R; Alan,Cevre

21 Uygulama : Dışarıdan girilen x ve y değerlerine göre aşağıdaki fonksiyonun değerini hesaplayan bir program yazınız. 1 ile girilen herhangi bir sayı arasındaki sayıların toplamını ve çarpımını hesaplayan bir program yazınız.

22 İlave örnek – Vücut Kütle İndeksinin (BMI) hesaplanması KategoriBMI aralığı – kg/m 2 Ölümcül derecede zayıf15’ten küçük Aşırı derecede zayıf15.0 ila 16.0 Zayıf16.0 ila 18.5 Normal (sağlıklı kilo)18.5 ila 25 Kilolu25 ila 30 Obez Sınıf I (Orta derecede obez) 30 ila 35 Obez Sınıf II (Aşırı derecede obez) 35 ila 40 Obez Sınıf III (Ölümcül derecede obez) 40’ın üstü

23 BMI Hesaplama •agirlik = input('Kilogram cinsinden ağırlığınızı giriniz: '); •boy = input('Metre cinsinden boyunuzu giriniz: '); •adiniz = input('Adınız nedir? :','s'); • % Burada 's' isim girileceğini belirtmektedir. •BMI = agirlik/boy^2; •disp(['Merhaba ',adiniz]); •disp (['sizin Vücut Kütle Indeksiniz (BMI): ']), BMI

24 While Loops K ontrol y apıları IF Switch For Loop

25 IF Şartının Üç şekli vardır IF Şart 1. işlem 2. işlem 3. işlem : END Bir mantıksal ifadeyi kontrol ederek bunun sonucuna göre mümkün seçeneklerden birini icra edebilen bir komuttur. if Şartlı deyimi IF Şart 1.işlem; ELSE 2. işlem END IF Şart … ELSEIF … … ELSE … END

26 Örnek: Girilen (okutulan) x ve y değerlerine göre aşağıdaki sonuc değerini bulan programı yazınız x>y ise sonuc= (x-y) x=y ise sonuc=(x-y) 7 Değilse sonuc=x+y x=input( ' x değeri= ') ; y=input( ' y değeri= ' ); if x>y sonuc=sqrt(x-y) elseif x==y sonuc=(x-y)^7 else sonuc=x+y end ÇÖZÜM:

27 Farklı bir şekilde BMI hesaplama – GUI •prompt={'Kilonuzu Giriniz:','Boyunuzu Giriniz:','Adinizi Giriniz:'}; •% Size ekranda sorulacak olan sorular. •title='BMI Hesaplama'; •% Diyalog ara yuzunun ustunde gosterilen ad. •answer=inputdlg(prompt,title); •agirlik = str2num(answer{1}); •boy = str2num(answer{2}); •% Ilk iki satirda girilen veriler rakam ve bunu yapan komut str2num. •adiniz = answer{3}; •BMI = agirlik/boy^2; •disp(['Merhaba ',adiniz]); •disp (['sizin Vücut Kütle ?ndeksiniz (BMI): ']), BMI

28 BMI hesabında sonucu aralıkla belirlemek •agirlik = input('Kilogram cinsinden ağırlığınızı giriniz: '); •boy = input('Metre cinsinden boyunuzu giriniz: '); •adiniz = input('Adınız nedir? :','s'); • % Burada 's' isim girileceğini belirtmektedir.

29 •BMI = agirlik/boy^2; •disp(['Merhaba ',adiniz]); •if BMI<15, disp(['Cok zayifsiniz']), BMI •elseif (BMI>=15)&(BMI<18.5), disp(['Zafiyfsiniz']), BMI •elseif (BMI>=18.5)&(BMI<25), disp(['NORMALSINIZ']), BMI •elseif (BMI>=25)&(BMI<30), disp(['Kilolusunuz']), BMI •elseif (BMI>=30), disp(['Obezsiniz']), BMI •end

30 Ödev: Dışarıdan girilen x değerlerine göre aşağıdaki fonksiyonun değerini hesaplayan bir program yazınız. 1 < = x < < = x

31 Örnek: Girilen iki sayının oranını bulan ve payda sıfır girildiğinde ekrana “üzgünüm sıfıra bölüm hatası var” mesajı yazdıran program clear N = input(‘payı giriniz: '); D = input(‘paydayı giriniz: '); if D==0 Disp(‘üzgünüm, sıfıra bölüm hatası var‘) else oran = N/D end Disp: Ekrana mesaj veya değer yazdırmak için kullanılan komuttur. Disp(‘yazdırılacak mesaj’); Disp(değişken adı);

32 Örnek: Girilen ay’a göre gün sayısını hesaplayan program clear ay = input( ' Kaçınçı ayın gün sayısını öğrenmek istiyorsunuz (1-12)= ' ); if ay==1 | ay==3 | ay ==5 | ay==7 | ay==8 | ay==10 | ay==12 disp(‘Bu Ay 31 günden oluşur‘) elseif ay==2 disp(' Bu Ay 28 günden oluşur ') else disp(' Bu Ay 30 günden oluşur ') end

33 Not: Şart Harfli Not Ortalama >= 90A 75 <= Ortalama < 90B 60 <= Ortalama < 75C 45 <= Ortalama < 60D DiğerF Uygulama: Dışardan girilen bir derse ait ödev, quiz ve 1.vize notlarını alıp ortalamasını hesaplayan ve harfli sisteme göre GENEL VİZE notunu bulan bir program yazınız.

34 Switch Switch Şartlı Deyimi Switch (durum) case (durum1) işlemler case (durum2) işlemler. otherwise ►isteğe bağlı end

35 sayi=input(‘1 ile 10 arasında bir sayı giriniz:’); switch (sayi) case {1,3,5,7,9} disp(‘Bu sayı Tektir’) case {2,4,6,8,10} disp(‘Bu sayı Çifttir’) otherwise disp(‘Sayı 1 ile 10 arasının dışında’) end Örnek: 1 ile 10 arasında girilen sayıların tek ya da çift olduğunu ekrana yazdıran programı yazınız

36 Girilen ay numarasına göre, o ayın gün sayısını veren programı switch komutu kullanarak yazınız. Uygulama : clear ay = input('bir ay numarası giriniz (1-12)='); switch ay case {1,3,5,7,8,10,12}; disp('Bu Ay 31 günden oluşur') case {2} disp('Bu Ay 28 günden oluşur') case {4,6,8,9,11}; disp('Bu Ay 30 günden oluşur') end

37 FOR DÖNGÜSÜ Bir çok uygulamada belirli işlemlerin tekrar tekrar gerçekleştirilmesi gerekir. Programlamada bu işlemler grubunu çok sayıda tekrar etmek imkanı sağlayan yapılara ÇEVRİM, DÖNGÜ veya LOOP denir.  Çevrimdeki işlem sayısını önceden belirleyerek ve bu sayıya ulaşıp ulaşmadığını bir sayaç ile denetleyerek gerçekleştirilen çevrim ulaşmadığını bir sayaç ile denetleyerek gerçekleştirilen çevrim yapıları yapıları  Çevrimin sona ermesini bir koşula bağlı olarak kontrol eden çevrim yapıları yapıları ►Çevrim, bir tekrarlı işlem yapısıdır.

38 for döngü değişkeni = başlangıç : bitiş komutlar end for for döngüsünün genel yapısı clear toplam = 0 ; for x = 1:20 toplam = toplam + x ; end toplam Örnek: 1’den 20’ye kadar sayıların toplamını bulan program

39 clear sayi=input(‘lütfen bir sayı giriniz=‘) toplam=0 ; carpim=1 ; for i=1:sayi toplam=toplam+i ; carpim=carpim*i ; end toplam carpim Örnek: 1 ile girilen herhangi bir sayı arasındaki sayıların toplamını ve çarpımını hesaplayan bir program yazınız.

40 fprintf Fonksiyonu Genel kullanımı: fprintf (‘ekrana basılacak açıklama %f \n’, deger) Burada %f : Değerin reel sayı olduğunu gösterir \n : Bir satır atlatır deger : Ekrana yazılması istenen sayısal değişkenin adı Diğer yazım biçimleri: %g : Tamsayı değeri basar %e : Üstel değer basar

41 Uygulama: fprintf(‘For döngüsü testi\n'); for i = 4:-1:1 fprintf('For döngüsü testi. i = %g\n',i); end fprintf('\n Döngünün sonu.\n');

42 While Döngüsü Önceden belirlenmiş belli bir durum gerçekleşinceye kadar gereken sayıda tekrar edilen ifadeleri içerir. Genel Kullanımı: While durum ifade_1 ifade_2 ifade_n end

43 Örnek: a=5 while a<10 a=a+1 end Uygulama Ekrana adınızı ve soyadınızı 10 kez yazan bir programı WHILE döngüsü kullanarak yazınız a=0 while a<10 a=a+1; disp(‘Bülent Çakmak') end

44 Break ifadesi FOR ve WHILE döngülerine ilaveten bir program akışını kontrol edebilmenin diğer bir yolu break ifadesini kullanmaktır. Break ifadesini döngü gövdesi içerisinde kullanmak, döngünün durmasını ve döngüden sonra gelen ilk ifade veya komutun işletilmesini sağlar. Örnek:for j=2:6 if j==4 break end fprintf(‘j= %g \n”, j) disp(‘döngü sonlandırıldı’)

45 clear Toplam=0 for i = 1:5 Toplma = 0 for j = 1:5 toplam = toplam + j end Carpım = toplam * i end İçiçe FOR döngüleri

46 Örnek: for a=1:10 for b=1:10 carpim=a*b; fprintf(‘%d * %d = %d\n’, a, b, carpim) end Çarpım tablosunu veren bir program yazınız

47 İçiçe while döngüsü i=7; while i>5 x=input(‘x değerini giriniz=‘); if x<=0 break end while x>1 if mod(x,2)==0 x=x/2; else x=3*x+1; end i=i-2; end fprintf(‘Bravo, programı sonuçlandırdınız:%g’, x)

48 Uygulamalar Uygulama 1: Dışardan girilen girilen iki sayının farkını ve bölümünü hesaplayan bir MATLAB programı yapınız.

49 Uygulamalar Uygulama 2: Kenar Uzunlukları dışardan girilen bir ABC üçgenini kenarlarına göre inceleyen programın algoritmasını MATLAB’de kodlayınız A1: Basla A2: A,B,C değerlerini gir A3: A=B ise A4’e git değilse A5’e git A4: B=C ise A6’ya git değilse A8’e git A5: A=C ise A8’e git değilse A7’e git A6: ‘Üçgen Eşkenardır’ A7: B=C ise A10’a git, değilse A9’a git A8: ‘Üçgen İkizkenardır’ A9: ‘Üçgen Çeşitkenardır’ A10: ‘Üçgen İkizkenardır’ A11: Son

50 Uygulama: Ax 2 +Bx+C=0 ikinci derece denklemin köklerini hesaplayan aşağıdaki algoritmayı MATLAB’de programlayınız A1: Başla A2: A,B,C değerlerini gir A3: delta=B^2-4ac değerini hesapla A4: delta<0 ise ‘kökler kompleks’ yaz, değilse A5’e git A5: delta>0 ise ’kökler reel’ yaz, değilse ‘katlı kök hali’ yaz A6: A7: A8: X1 değerini yaz A9: X2 değerini yaz A10: Son

51 a=input(‘x^2 li terimin katsayısını giriniz=‘); b=input(‘x li terimin katsayısını giriniz=‘); c=input(‘Sabit terimi giriniz=‘); delta=b^2-4*a*c; if delta<0 disp(‘kökler kompleks’); elseif delta>0 disp(‘kökler Reel’) elseif delta ==0 disp(‘katli kök hali’) end x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a); fprintf(‘1.kök:%f\n’, x1); fprintf(‘2.kök:%f\n’, x2); Çözüm:

52 MATLAB’de Karakter Tipinde Değişken Girişi: Komutu ile k değişkenine sadece sayısal değerler girebiliriz. Bu k değişkeni bir karakter olduğunda ve bu değişkene komut penceresinde bir karakter değer girmek istediğimizde değeri iki tırnak içinde girmek zorundayız. Bu durumdan kurtulmak için MATLAB’de karakter tipindeki değişkenin okutulması için şu yapı kullanılır: Degisken_adi=input(‘Açıklama: ', 's'); k=input(‘Açıklama: '); Değişkenin karakter tipinde olduğunu gösterir

53 Örnek: Karakter değerler okuyan ve bir noktaya rastlayınca toplam karakter sayısını veren programı MATLAB’de yazınız. karakter=input('Karakteri giriniz: ', 's'); ksayi=0; while karakter ~= ‘. ' karakter=input('Karakteri giriniz:', 's'); ksayi=ksayi+1; end fprintf('Toplam karakter sayısı=%g', ksayi)

54 PROGRAMLAMADA DİZİ KAVRAMI Bir değişken içerisinde birden çok veri numaralandırılarak tek bir isim altında saklanmasına DİZİ denir. Dizi içinde aynı isim altında çok sayıda veri olduğu için bunları birbirinden ayırt etmek için İNDİS adı verilen bir bilgiye ihtiyaç vardır. Örnek 1: A Dizisi A(1)A(2)A(3)A(4)A(5)

55 Örnek 2: İKİ BOYUTLU DİZİ B DİZİSİ B(1,1)=23, B(1,2)=12, B(1,3)=75, B(1,4)=48 B(2,1)=3, B(2,2)=36, B(2,3)=15, B(2,4)=12 B(3,1)=45, B(3,2)=4, B(3,3)=55, B(3,4)=13

56 Tek boyutlu bir dizinin değerlerinin girilmesi (okutulması) for i=1:5 fprintf('A(%d)=',i) A(i)=input(‘ '); end A Aşağıda 1x5 boyutunda (1 satır ve 5 sütun) bir dizinin elemanlarını giren MATLAB programı aşağıda verilmiştir

57 Örnek: N elemanlı bir dizinin N değeri ve elemanları okutulacak (dışardan girilecek) ve bu vektörün normunun karesi (elemanlarının karelerinin toplamı) bulunacaktır N=input('N deðerini giriniz='); toplam=0; for i=1:N fprintf('A(%d)=',i); A(i)=input(''); end for i=1:N toplam=toplam+A(i)*A(i); end fprintf('A matrisinin normunun karesi=%f', toplam)

58 İKİ BOYUTLU BİR DİZİNİN DEĞERLERİNİN GİRİLMESİ (OKUTULMASI) for i=1:2 for j=1:3 fprintf('B(%d,%d)=',i,j) B(i,j)=input(''); end B Aşağıda 2x3 boyutunda (2 satır ve 3 sütun) bir dizinin elemanlarını giren MATLAB programı aşağıda verilmiştir:

59 Uygulama 1 Elemanları dışardan girilen iki boyutlu bir dizinin programını yazınız (değerler aşağıda verilmiştir) Uygulama 2 0 ile 50 arasında 4 artımlı bir tek boyutlu A dizisi oluşturunuz

60 VEKTÖRLER (DİZİLER) ve MATRİSLER Böyle dikdörtgen bir tabloya, mxn matrisidir denir. Burada, m sayısına matrisin satır sayısı, n sayısına matrisin sütun sayısı denir. Eğer, m=n ise matris kare matris olarak adlandırılır, ve A matrisi, n. mertebedendir denir. MATRİSLE, iki boyutlu DİZİLER (VEKTÖRLER) olarak düşünülebilirler:

61 Örnek: Verilen A ve B matrislerini düşününüz. A matrisi 2x3 ve B matrisi ise 2x2 matristir. a 22 =5 ve b 12 =2 Bir matrisin veya vektörün boyutlarını tespit etmek için aşağıdaki MATLAB komutu kullanılır [m,n]=size(A) m = 3 n = 2 Burada m: satır sayısını n: sütün sayısını göstermektedir

62 MATRİSLERLE İŞLEMLER İleri MATRİS işlemleri için MATLAB hazır fonksiyonları kullanılacaktır Matrislerin kendilerine ait bir cebirleri vardır. Özellikle matrislerin aşağıda sıralanan dört işlemleriyle ilgileneceğiz.  Bir skalerle çarpım  Matris toplama  Matris çıkarma  Matris çarpımı  Matris transpozu

63 Matrislerle Skaler Çarpım Her hangi bir matris, bir c skaleriyle çapılabilir. Sonuçta, matris cA, Örnek: Aşağıda verilen Matrisin 2 ile çarpımı sonucunu veren MATLAB programı A=[2 3 ; 1 4]; [m,n]=size(A); for i=1:m for j=1:n C(i,j)=2*A(i,j); end C

64 ÖRNEK: Elemanları dışardan girilen 2x2’lik bir Matrisin 2. sütununu 3 ile çarpıp yeni bir Matris elde eden bir MATLAB programı yazınız A=[1 3; 4 2]; for i=1:2 for j=2:2 A(i,j)=3*A(i,j); end A

65 3x3’lük bir matris dışardan girilerek (okutularak) bu matrisin ana köşegen elemanlarının toplamını bulan programı yazınız. Ödev:

66 Matrislerde Toplama ve Çıkarma İşlemi İki matrisin toplanabilmesi veya çıkarabilmesi için boyutlarını yani satır ve sütün sayısını eşit olmalıdır. İki matrisin toplamı A=[2 3; 1 4]; B=[3 6; 4 5]; for i=1:2 for j=1:2 C(i,j)=A(i,j)+B(i,j); end C MATLAB programı

67 Matrislerde Çarpma İşlemi A ve B gibi iki matrisin çarpılabilmesi için A matrisinin Sütun sayısının B matrisinin satır sayısının eşit olması gerekmektedir. A matrisi mxn boyutunda, B matrisi nxk olmak üzere Bu çarpma işlemi sonucunda elde edilecek C matrisinin boyutu mxk olacaktır. Örnek clear clc A=[1 2 1;0 3 -1]; B=[1 2; 1 5;2 3]; for k=1:2 for i=1:2 C(i,k)=0; for j=1:3 C(i,k)=C(i,k)+A(i,j)*B(j,k); end C


"ENF1012 MATLAB’a Giriş. K onular: M ATLAB ortamının tanıtımı M ATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) a)Geliştirme ortamı b)Komut." indir ppt

Benzer bir sunumlar


Google Reklamları