- Matlab a Giriş- BÖLÜM -12- Matlab a Giriş

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "- Matlab a Giriş- BÖLÜM -12- Matlab a Giriş"

Transkript

1 BÖLÜM -12- Matlab a Giriş 153

2 12. Matlab a Giriş Giriş Temelde MATLAB aşağıda şekilde görülen menülere sahiptir. Programı çalıştırdığınızda Command Window, Current Directory, Workspace ve Command History varsayılan olarak karşımıza çıkmaktadır. Programın kullanımında temel olarak iki mantık geliştirilebilir. Bir doğrudan command window kullanılarak yapılmak istenilen işlemlerin gerçekleştirilmesi digger ise şekilde görüldüğü gibi m. files gibi bir dosya kullanılarak MATLAB dilinde hazırlanmış kod ile istenilen işlerin yaptırılması olarak söylenebilir. Araç çubuğu Adres çubuğu Komut penceresini küçültmek için kullanılan undock Şekil Matlab masaüstü 1. İlk olarak command window kullanarak aşağıdaki basit işlemleri yapalım. 3-2 <Enter> 2*3 <Enter> 1/2 <Enter> 2ˆ3 <Enter> 154

3 2\1 <Enter> 2. İkinci olarak ise aşağıdaki örnekleri yapalım 2.* 3 <Enter> 1./ 2 <Enter> 2.ˆ 3 <Enter> 3. Bu örneklerin ilk olarak yapılanlardan farklı olarak *,/ ve ^ operatörlerinden once (.) kullanılmış olmasıdır. Hesap açısından bu işlemler de aynı sonucu üreteceklerdir ancak, daha sonra dizilerin(array) içeriği olan elemanlarla ilgili yapıalacak işlemler konusunda bu işlem şekli daha detaylı irdelenecektir. 0/1 <Enter> 1/0 <Enter> 4. Aşağıdaki işlemleri yapalım MATLAB yukarıdaki gibi özel durumlarda size sonuç vermektedir. Ikinci durumda sonucu Inf(infinity, sonsuz için kısaltma) olarak vermektedir. Bu işlemi veya sonucunu kullanmak istediğinizde ise sonucu 13+1/0 =13+Inf olarak vererek işlemi devam etmektedir. 0/0 durumunda ise matlab NaN değeri üretecektir. Bu ise Not a Number ifadesinin kısaltılmasıdır. 5. Command Window kullanılarak değişkenlere atama yapılabilir _ a = 2 <Enter> Burada a değişkenin ismini tanımlamaktadır. Yukarıdaki satırla a değişkenine bir atama yapılmış olur. Sırasıyla aşağıdaki işlemleri yapalım. Sonuç olarak a değişkeni 90 değerini alacaktır. Her bir işlem ile a değişkeninin değer takrar tekrar değiştirilmiş olacaktır. a = a + 7 <Enter> a = a * 10. <Enter> 6. Matlab mühislikte kullanılabilecek hemen bütün matematik fonksiyonlara sahiptir ve bu fonksiyonlar hemen kullanılabilecek durumdadır. Bunlardan bazıları aşağıda verilmektedir. Bazı Matematik fonksiyon isimleri abs Absolute value acos, acosh Inverse cosine and inverse hyperbolic cosine acot, acoth Inverse cotangent and inverse hyperbolic cotangent acsc, acsch Inverse cosecant and inverse hyperbolic cosecant angle Phase angle asec, asech Inverse secant and inverse hyperbolic secant asin, asinh Inverse sine and inverse hyperbolic sine atan, atanh Inverse tangent (two quadrant) and inverse hyperbolic tangent atan2 Inverse tangent (four quadrant) 155

4 bessel ceil conj cos, cosh cot, coth csc, csch erf exp fix floor gamma imag log log2 log10 mod rat real rem round sec, sech sign sin, sinh sqrt tan, tanh Bessel function Round up Complex conjugate Cosine and hyperbolic cosine Cotangent and hyperbolic cotangent Cosecant and hyperbolic cosecant Error function Exponential Round toward zero Round down Gamma function Imaginary part Natural logarithm Dissect floating point numbers into exponent and mantissa Common logarithm Modulus (signed remainder after division) Rational approximation Real part Remainder after division Round toward nearest integer Secant and hyperbolic secant Signum function Sine and hyperbolic sine Square root =-16pt =8pt Tangent and hyperbolic tangent Örnek 1: sqrt(pi) <Enter> bu işlem pi sayısının karekökünü alarak sonucunu üretecektir. sin(x)işleminde x değişkeninin radyan olarak tanımlanması gerekmektedir. O halde Sin (90o) için aşaıdaki işlemi yapmak gerekmektedir. sin(90*pi/180) <Enter> işlem sonucu olarak 1 bulunacaktır. Exponansiyel fonksiyon için matlab matlab exp(x) tanımlası yapmaktadır. O halde; exp(1) <Enter> 1/exp(1) <Enter> işlemleri sırasıyla ve sonuçlarını verecektir. 156

5 C++ da olduğu gibi MATLAB da da değişken isimlirmeleri belirli kurallara uygun olarak yapılmaktadır. Yukarıda verilen fonksiyon isimlerinin veya pi gibi tanımlanan sabitlere değer ataması yapılması veya değişken olarak tanımlanması karışıklığa neden olabilir. Bunu daha iyi anlamak için aşağıdaki işlemleri yapınız pi = 4 <Enter> sqrt(pi) <Enter> whos <Enter> clear pi <Enter> whos <Enter> sqrt(pi) <Enter> clear <Enter> whos <Enter> 7. Yukarıdaki fonksiyonlara ek olarak Matlab da genel maksatlı kullanılabilecek date ve calar gibi birçok fonksiyonda bulunmaktadır. date <Enter> calar<enter> 8. Fonksiyonlara ek olarak Matlab da genel maksatlı kullanılabilecek clc ve help gibi birçok komut bulunmaktadır. clc <Enter> help <Enter> burada ifade edilen help komutu matlab da çalışırken oldukça ihtiyaç duyulabilecek bir komuttur. Ne işe yaradığı veya nasıl kullanılacağı öğrenmek istenen bir komut yada fonksiyon için command window unda aşağıdaki şekilde help komutunu kullanmakla sonuca ulaşılabilir. help real <Enter> 9. Matlabda her değişken bir dizi mantığıyla tanımlanmaktadır. Bir skaler dahi olsa matlab tanımlanan değişken için 1x1 boyutunda bir dizi tanımlaması yapar. Matlab ayrıca dizileri (array) kullanarak vektör yada matris tanımlaması yapabilir. x=1:10 <Enter> x = size (x) <Enter> length (x) <Enter> y = 2 * x <Enter> y =

6 >> y = 2.* x y = w = y / x <Enter> y = 2 w = y./ x <Enter> w = NaN Aşağıdaki satırlar kullanılarak, şimdiye kadar öğrenilen bazı özellikler kullanırlarak veriler elde edilebilir ve bunların grafikleri aşağıdaki gibi çizilebilir. x = 0 : 0.1 : 10; <Enter> z = sin(x); <Enter> plot(x,z), grid <Enter> z değişkeninin herhangi bir elemanını kullanmak veyahut görmek için aşağıdaki formda tanımlama yapmak yeterli olacaktır. Burada (z) 1x101 boyutunda bir dizi olduğundan 66 elemanını aşağıdaki şekilde ifade etmek mümkün olacaktır. x(66) <Enter> ans = Burada x ve z her ikisi de 1x101 boyutunda iki vektördür. Bunlardan x in transpozunu alarak z ile çarpılması durumunda 101x101 boyutunda yeni bir matris elde edilmiş olacaktır. M = x' * s; <Enter> Yeni oluşturulan matrisin herhangi bir elemanı ise artık aşağıdaki şekilde çağrılabilir. M(44,33) <Enter> Matematik fonksiyonların grafiklerinin çizdirilmesi isteniyorsa aşağıdaki formda plot fonksiyonu kullanılabilir x = 0 : 0.1 : 10 <Enter> 158

7 ezplot('tan(x)') <Enter> y = 0 : 0.2 : 10 <Enter> ezplot('x^2 + 3y') <Enter> 10. MATLAB herhangi bir komut yada fonksiyonun bir kaç harfi girildikten sonra TAB tuşuna basılması durumunda girilen harflerle başlayan bütün komutlar ekranda çıkacaktır. Şekil Matlab masaüstü x 1 + 2x 2 = 4, 2x 1 x 2 = Lineer denklem sistemlerinin çözümü mühislikte çok önemli ve sıklıkla kullanılan bir konudur. Örnek olarak aşağıda verilen iki bilinmeyenli iki denklem sisteminden bilinmeyenler farklı şekilde elde edilebilir. (a) Matris yaklaşım (Cramer Kuralı uygulamasına benzer şekilde) _ a = [1 2; 2-1]; <Enter> _ b = [4; 3]; <Enter> _ x = a\b <Enter> Sonuç x = 2 1 I _ x + 2*y % degerler yerine koyulursa sonuc = 4 <Enter> _ 2*x - y % degerler yerine koyulursa sonuc = 3 <Enter> % sembolü burada açıklama girebilmek için kullanılmıştır. Program bu satırda % operatüründen sonraki bütün yazılanları açıklama olarak değerlirir. 159

8 Daha geniş örnekler için command window a demo girerek internet explorer yardımıyla birçok örnek izlenebilir 12. Matlab çok iyi tasarlanmış bir yardımcı sisteme sahiptir. Command window kullanarak herhangi bir komut için help komutu help elfun şeklinde kullanılabilir. Bu ifadenin yazılmasıyla matlab da kullanılan bütün temel matematik fonksiyonların ekrana basılması sağlanabilir. Ekrandan seçilecek herhangi bir fonksiyon için ise detaylar incelenebilir. Bu maksatla kullanılacak bir diğer komut ise lookfor komutudur. Bu komut sayesinde bütün yardımcı dosyalar içerisinde geçen bir kelime aranabilir. lookfor eigenvalue bu sayede eigenvalue ile ilgili olarak tanımlanmış bütün fonksiyonlar command windowa getirilmiş olacaktır. 13. Matlab daha bir çok farklı araca sahiptir. Örnek olarak 10x10 boyutunda bir sihirli kare magic(10), bu sayede belirli bir mantıkla üretilmiş (genelde nxn için bir satın ve sütün n(n2 + 1)/2 nin toplamı ile ilişkilirilmiş şekilde hazırlanır). Üretilen bu değerleri kullanarak bir contour çizmek mümkündür bu maksatla contour(magic(22)) komutuyla 22x22 boyutundaki matris elemanları kullarak bir kontur hazırlanamış olur. 14. Örnek olması maksadıyla matematik ifadeler yardımıyla bir meksika şapkası çizebilmek dahi mümkündür. >> [x y ] = meshgrid(-8 : 0.5 : 8); <Enter> >> r = sqrt(x.ˆ2 + y.ˆ2) + eps; <Enter> >> z = sin(r)./ r; <Enter> >> mesh(z); <Enter> Aynı veri için farklı çizim fonksiyonlarını kullanarak aradaki farkları görünüz surf(z) (yüzeyleri dolgulu olarak çizecektir) surfc(z) (planda yüzeyin izdüşümlerini gösterecektir) meshc(z) (mesh den farklı olarak izdüşümler planda görülür) Bazı durumlarda bu fonksiyonları ekstra özelliklerle birlikte kullanmakta mümkündür. Aşağıdaki formatta, çizilen yüzeyde kenarların gölgelirilmesi işlemi gerçekleştirilmiş olacaktır. >> surf(z), shading flat <Enter> 160

9 Şekil Meksika şapkası 15. Bilgisayarınızın hoparlöre sahip ise aşağıdakileri deneyebilirsiniz. >> load handel <Enter> >> sound(y,fs) <Enter> Benzer şekilde load ile birlikte aşağıdakileri de deneyin ancak her defasında sound(y,fs) yazmayı unutmayın. 16. Uzaydan dünya görünümü: >>load earth <Enter> >>image(x); colormap(map) <Enter> >>axis image <Enter> 17. Eğer gerçekten sıkıldıysanız bunu why komutunu deneyebilirisiniz why ve why(2) ve bunun gibi değerleri değiştirerek command window a girin. Komutları Türkçeleştirmek ve fonksiyonun nasıl çalıştığını görmek için >>edit why <Enter> Matlab Masaüstü Matlab programının arayüzü veya digger ifadeyle MATLAB masaüstü şekil 12.1 de daha once verilmişti. Bu ara yüzü sayesinde program oldukça kullanışlı bir arayüz sunmaktadır: bu sayede komutları rahatlıkla girmek, ve geçmiş komutları takip etmek, değişkenleri takip etmek ve bunun gibi daha birçok eylem kolaylıkla gerçekleştirilebilimektedir. Daha once de ifade edildiği gibi yine bu ara yüz sayesinde 161

10 help kamutu, yada lookfor komutu kullanılarak, MATLAB I derinlemesine anlamak ve ilgili örneklere ulaşmak da mümkün olabilmektedir. Help dosyalarına iki yolla ulaşmak mümkündür bunlardan ilki daha once de gösterildiği üzere doğrudan help komutu ile aranan komutu komut ekranında yazmak diğeri ise, menu çubuğunda help menüsünü seçmektir. Bununla birlikte MATLAB masaüstü Current Directory isimli windows gezginine benzer işlevleri olan ve sol tarafta sürekli çalışılan klasörü içerisindeki dosylarla bilirlikte gösteren bir menüye sahiptir. Bu yolla istenilen dosyaya arayüzden çıkmadan ulaşmak mümkün olabilmektedir. Yapılan işlemlerin sonuçlarını ve değişken atamaları sonucunda depolanan değerlerin saklı tutulduğu workspace menüsü ise varsayılan olarak command window un hemen sağında bulunmaktadır. Workspace in hemen altında ise bütün komut geçmişini gösteren command history menüsü bulunmaktadır ki komutlarınızı geçmişe dönük olarak buradan takip etmek mümküdür Örnek Program Matlab komut penceresi vasıtasıyla girilecek komutlarla işlem yapmak konusunda bir kaç örnek gösterilmişti. Oysaki bu tür programlar kullanılarak bir kaç satırda çözülmeyecek problemler için uzun işlemler yapmak dolayısıyla da uzun kodlar hazırlamak gerekir. Bu nedenle komut pencerisi kullanılarak bu işlemlerin yapılması pekte kolay olmamaktadır. MATLAB ifadeleri kullanılarak bir problem için hazırlanacak sıralı kodlara daha once C++ da olduğu gibi program kodu yada doğrudan program denilebilir. Çünkü C++ dan farklı olarak matlab hazırladığınız bu ifadeleri derlemeden ancak ki arayüzü ile birlikte kullanmanıza izin vermektedir. Varsayalım 0-6π aralığında e 0.2x sin (x) periyodik dalga denkleminin grafiğininin elde edilmesi istenmektedir. Bu problemin çözümünde command window kullanılarak bir kaç ifadeyle sonuca ılaşmak mümkün olduğu gibi, bu ifadelerin birlikte kullanıldığı kısa bir program hazırlayarak çözüme ulaşmak da mümkündür. İlk olarak aşağıda verilen satırları komut penceresi kullanarak ekrandan girin. x = 0 : pi/20 : 6 * pi; plot(x, exp(-0.2*x).* sin(x), 'r'),grid Aynı işlemi File -> New -> M-file youlunu izleyerek açılacak olan m.files (script diye de isimlirilir) içerisine yazdığınız kodu girerek de yapabilirsiniz. Bunun için ise aynı aralıkta değişken için aşağıda verildiği gibi üç farklı grafik çizdirelim. Kodu düzgün şekilde yazdıktan sonra dosyayı kaydetmek ve uygun şekilde çalıştırmaktır. Çalıştırma işlemi iki şekilde yapılabilir. Bunlardan ilki m.files editöründe imleci kullanılarak program koşturulabileceği gibi, doğrudan programa verilen isim command window a yazılarak da bu işlem gerçekleştirilebilir. 162

11 x = 0 : pi/20 : 6 * pi;%x in 0-6π aralığında π/20 artımla değerler almasını sağlar figure (1); %1. Grafik penceresini açar plot(x, exp(-0.2*x).* sin(x), 'r'),grid %değerleri yatayda x düşeyde ise e 0.2x sin (x) olan ( r red) kırmızı çizgi ile grafiği çizer figure (2); plot(x, exp(-0.2*x).* cos(x), 'm'),grid figure (3); plot(x, exp(-0.2*x).* tan(x), 'b'),grid Şekil Figure 1 in görünümü Aynı kodu command window a satır satır girmekte mümkündür. Herhangi bir satırı bitirdiğinizde satırın bittiğini ve bir sonraki satıra geçildiğini gösterir (;) kayoabilir veyahut shift+enter tuşlarına basarak bir alt satırdan devam edebilirsiniz. C++ da olduğu gibi burada da (;) satırın bittiğini göstermekle birlikte, koyulmaması eğer satır bu noktada enter ile bitirilmişse hataya neden olmaz. Bu durumda (;) koyulmamış olmaması nedeniyle programın bu satırda yaptığı tüm işlemler command windowda görülecektir. (;) işaretinin olması ile olmaması arasındaki en önemli fark yapılan işlemlerin ekranda görünüp görünmemesi olmaktadır. Benzer şekilde bir başka program kodu hazırlayalım. Banka hesabınızda 1000 olduğunu varsayalım. Aylık 1800 maaşınız bu hesaba yattığına ve her ay standart olarak 800 harcamanız olduğuna gore. Yıl sonunda banka hesabınızda ne kadar para olacağını hesaplayan bir program hazırlayın. As another example, suppose you have saved in the bank. Interest is compounded at the rate of 9 percent per year. What will your bank balance be after one year? Now, if you want to write a MATLAB program to find your new balance, you must be able to do the problem yourself in principle. Even with a relatively simple problem like this, it often helps first to write down a rough structure plan: hesap_tl = 1000; ayl_maas = 1800; harcama=800; 163

12 hesap_12ay = hesap_tl + 12*(ayl_maas-harcama); disp( 12 ay sonunda hesabınızdaki para: ); disp( hesap_12ay ); Bu program kodunu daha esnek hazırlamak da mümkündür. Örneğin kullanıcıya bağlı olarak ayın gelirin ve harcamanın girildiği bir kod hazırlayalım hesap_tl = input('hesabınızdaki parayı girin :'); ayl_maas = input('aylık Maasınızı girin :'); harcama = input('aylık Harcamanızı girin :'); hesap_12ay = hesap_tl + 12*(ayl_maas-harcama); disp( '12 ay sonunda hesabınızda para:' ); disp( hesap_12ay ); ** yazılan bu kodun olduğu dosya kaydedilip kapatıldığında kodun command window a getirilerek incelenmesi mümkün olduğu gibi doğrudan command windowdan çağrılarak dosyanın açılması da mümkündür. Bu dosyalardan en sonuncusuna aylk_hesap.m ismi verildiğine gore aşağıdaki komutları command window u kullanarak deneyin. type aylk_hesap <enter> edit aylk_hesap <enter> Matlab da C++ gibi değişken isimlirmede belirli kuralları olan bir yazılımdır. Bununla beraber değişkenlerin isimlirilmesinde olduğu gibi dosya isimlirmelerinde de aynı kurallar geçerlidir. Örneğin sayı ile başlayan bir dosya ismi veremeyeceğiniz gibi ( _ ) dışında özel karakter de kullanmamalısınız. Bu isimlirmeler ileride daha detaylı açıklanacaktır. Herhangi bir script (m dosyası) çalıştırıldığında Matlab mevcut çalışma klasörünün içerisinde o script i arar. Çalışırken hangi klasörde olduğunuzu ve dosyanın çalıştığınız kalasösürün içerisinde olup olmadığını MATLAB masaüstünden sizde control edebilirsiniz. Bunun için solda bulunan Current Directory i control etmeniz yeterli olacaktır. Burada bulunan menüler yardımıyla çalışılan klasör değiştirilebileceği gibi, command window kullarak da değiştirlebilir. Bunun için cd komutunu kullanabilirsiniz örnek olarak cd A % A gidilmek istenen klasör ismi cd.. % bu komut ile bir önceki klasöre geri dönülür cd komutu tek başına kullanıldığında o an bulunduğunuz dosyanın adresini geri döndürür. 164

13 BÖLÜM -13- Matlab Temel Kavramlar 165

14 13. Matlab Temel Kavramlar Temel Kavramlar Bu bölümün temel amacı MATLAB programı ile ilgili temel kavramları vermektir. Bu kavramlar aşağıda verilen sırayla aktarılmaktadır. değişkenler, operatörler ve ifadeler. diziler, sıralı veriler (arrays, vectör ve matrisler); Temel girdi ve çıktılar; döngüler (for); şartlar (if). Matlab gerek profesyonel hatta gerekse eğitim döneminde birçok bilimsel ve mühislik probleminin çözümünde kullanılabilecek çok önemli bir araçtır. bu bölümün son kısmı ile ileriki bölümlerde burada verilen bilgiler ışında yukarıda ifade edilen problemlerin çözümlenmesi için program kodları rahatlıklla hazırlanabilmektedir. Değişkenler daha önce de ifade edilmeye çalışıldığı üzere, programlamının temel taşlarından biridir. Bu nedenle program tasarlandığında değişken doğru yerde doğru formatta ve doğru zamanlama ile tanımlanmaıdır. C++ olduğu gibi değişkenler doğru isimlirilmelidir. Bu nedenle değişken isimlirmede C++ daki kuralların hemen hepsi burada da geçerlidir. Dğişkenler isimlirilirken harfler (a-z, A-Z) sayılar (0-9) ve altçizgi ( _ ) kullanılabilir. Ancak her durumda değişken isimlirilmesinde bir har ile başlanmalıdır. Örnek: r2d2 pay_day (DOĞRU) pay-day 2a name$ _2a(YANLIŞ) Örnek: balance, BALANCE ve BaLance üç farklı değişkir. C++ da veya diüer tüm programlama kodlarında olduğu gibi Matlab da değişkenin doğru yerde ve doğru zamanda değer ataması yapılmasını bekler. Diğer bir ifadeyle değişkeni işleme koyulduğu yerden daha önce tanımlamak ve değer ataması yapmak gerekmektedir. Bu değer ataması doğrudan olabileceği gibi bir işlem sonucu da olabilir. Aksi taktirde program??? Undefined function or variable mesajını verecek ve kullanılan değişkenin hata mesajının verildiği satıra kadar tanımlanmadığını veya değer atamasının yapılmadığını ifade edecektir. Matlabda her değişken bir dizi mantığıyla tanımlanmaktadır. Bir skaler dahi olsa matlab tanımlanan değişken için 1x1 boyutunda bir dizi tanımlaması yapar. C++ dan farklı olarak değişken tanımlaması için değişken tipinin belirlenmesine gerek yoktur. Özel durumlarda veyahut ihtiyaç olması durumunda MATLAB da (double xx) gibi değişken tipi tanımlamaları yapılır aksi takdirde kullanılan her değişken için varsayılan olarak matlab reel sayı tanımlaması yapar. 166

15 C++ da olduğu gibi MATLAB da da büyük ve küçük harf ayrı algılanır ve değişken tanımlamalarında kullanıldıklarında ayrı tanımlama yapılmış olur. Bu durum Matlabın hazır fonksiyonları içinde böyledir ve MATLAB fonksiyonları bu nedenle küçük harflerle isimlirilmiştir. Örneğin MATLA B geometridie kullanılan için (pi) değişkenini tanımlamıştır ve küçük harfle tanımlanmıştır. Programın her neresinde kullanırsanız kullanın pi değişkeni için alacağı değerler sabittir ve değişmez. Burada ifade edilmesi gereken bir digger husus da pi gibi kullanıcının işini kolaylaştırmak için MATLAB da tanımlanmış çok sayıda sabit ve fonksiyon bulunduğudur. Bu nedenle değişken isimlirmelerinde bunların tekrar kullanıcı tarafından isimlirmede kullanılmaması program mantığı için faydalı olacaktır WORKSPACE MATLAB için önemli temel unsurlardan biri de WORKSPACE dir. Gerek script yardımıyla koşturulan bir program sayesinde kodda tanımlı değişkenlerin aldığı değerleri gerekse de command window kullanılarak yapılan işlemler sonucu elde edilen sonuçları ve değişkenlerdeki değişimleri buradan takip etmek mümkündür. Workspace de kayıtlı değişkenlerin listesini görmek için who komutu kullanılabilir. Bu sayede o an workspace de kayıtlı değişkenler aşağıdaki örnekte verildiği gibi ekrana basılacaktır. >> who Your variables are: a as harcama hesap_tl ans ayl_maas hesap_12ay x işlemler sonucu olarak kaydedilmiş ve değer ataması yapılmış tüm değişkenler silinene kadar (clear) workspace alanında kalacaktır. Burada ans ile tanımlanmış olan isehiçbir değişken tanımlaması yapmaksızın yapılan işlemler sonucu elde edilmiş en son işlem sonucunu göstermektedir. Kayıtlı değişkenlerin boyutlarını ve tiplerini görebilmek için ise whos komutu kullanılbalilir. Bu durumda aşağıdakine benzer şekilde command window da değişkenlerin boyutlari ve tipleri görülecektir. >> whos <ENTER> Name Size Bytes Class Attributes a 1x1 8 double ans 1x1 8 double as 1x1 8 double ayl_maas 1x1 8 double harcama 1x1 8 double hesap_12ay 1x1 8 double hesap_tl 1x1 8 double x 1x double burada herhangi bir değişkenin workspaceden temizlenmesi veyahut diğer bir ifadeyle kaldırılması istiğinde clear x <ENTER> yazmak yeterli olacaktır. Birden fazla değişken silinmek isteniyorsa clear komutundan sonra aynı satırda değişken isimleri arasında birer boşluk bırakılarak bu işlem gerçekleştirilebilir. Tüm workspace i temizlemek için ise clear komutunu tek başına kullanmak yeterlidir. 167

16 Sıklıkla kullanılan sabitlerin tanımlanması Matlab kullanılıcıları yazdıkları programlarda sık sık kullandıkları değişlenler için sabit tanımlamaları yapabilirler. Örnek olarak bazı matemetatik ve fiziksel sabitler için her program yazımında sürekli değer ataması yapmak sıkıcı olabilmektedir. Bunun için aşağıdaki gibi sabit tanımlamaları yapılabilir. Bu nedenle bazı sabitler bir script(m.files) dosyasına yazılarak sabitler dosyası oluşturulabilir veya bir sabitler fonksiyon dosyası oluşturularak programa eklenebilir. Fonksiyon yapılması durumunda yazılan kod içerisinde C++ da olduğu gibi bu fonksiyonun çağrılması bütün sabitleri aktif hale getirecektir. Yalnızca script dosyası halinde bunların tanımlanması durumunda ise her bir matlab oturumunda ilk olarak bu sabit dosyasının çağrılarak koşturulması gerekmektedir. Her iki durum için de birer örnek aşağıda verilmiştir. sabitlerim.m : (yeni bir m dosyası açılıp bu isimle kaydedilerek içeriği aşağıdaki gibi düzenirse) g = 9.8; % yerçekimi ivmesi (m/s2) avo = 6.023e23; % Avogadro sayısı e = ; % doğal logaritme tabanı pi_4 = pi / 4; % alan hesaplarında çap ile kullanabilmek için pi/4 bar_to_kp = ; % atmosfer basıncı kilopascals matlab oturumu açıldığında sabitlerim dosyası koşturulduğunda (command window a sabitlerim yazmak yeterli olacaktır). Dosya içerisinde tanımlanmış olan tüm değişkenler artık sabit gibi kullanılabilecektir. Diğer bir yolda bu sabitleri bir fonksiyon dosyası içerisinde tanımlamaktır. Fonksiyon dosyası da temelde bir script dosyası dır ve.m uzantılı olarak kaydedilir. Ancak yazım şekli örnek olarak aşağıdaki gibidir. Burada dikkat edilmesi gereken husus foksiyonun adı (sabitlerim) ile dosya isminin aynı olması gerekmektedir (sabitlerim.h). Burada belirtilmesi gereken bir diğer husus ise sabitlerim fonksiyonun hiçbir girdiye sahip olmamasıdır. sabitlerim(girdi bölmesi). Bunun nedeni sabitlerim fonksiyonunda tanımlanmış değişkenlerin program içerisinde kullanılması için hiçbir girdiye ihtiyaç duyulmamasıdır. Anlaşılacağı üzere C++ da olduğu gibi Matlab da da fonksiyonlar belirli girdiler kullanarak sonuç üretmek için tasarlanırlar. Burada verilen örnek özel bir hali kapsamaktadır. sabitlerim.m dosyası içeriği function [g, avo, e, pi_4, bar_to_kp] = sabitlerim( ) g = 9.8; % yerçekimi ivmesi (m/s2) avo = 6.023e23; % Avogadro sayısı e = ; % doğal logaritma tabanı pi_4 = pi / 4; % alan hesaplarında çap ile kullanabilmek için pi/4 bar_to_kp = ; % atmosfer basıncı kilopascals Yukarıdaki gibi tanımlanmış sabitlerim dosyası herhangi bir program kodu içerisinde kullanılarak sabitlerden faydalanmak mümkündür. Aşağıdaki gibi bir örnek script dosyası hazırlanırsa ikinci satırda olduğu gibi sabitlerim fonksiyonu çağrılarak bütün değişkenleri işlemlerde doğrudan kullanmak mümkündür. Ornek1.m dosyası içeriği D = input('dairenin çapını girin :'); [g, avo, e, pi_4, bar_to_kp] = sabitlerim( ); Alan_daire = pi_4*d^2; disp( 'Dairenin alanı:' ); disp( Alan_daire ); 168

17 13.3. DİZİLER: vektör ve matrisler MATLAB ismi MATrix LABoratory kısaltması olarak belirlenmiş olmasından anlaşılacağı gibi, MATLAB her işlemi matris yapılarını kullanarak gerçekleştirmektedir. Bilindiği üzere matrisler eşit sayıda kolon ve sütüna sahip yapılardan oluşmaktadır ve vektörler özel tipte matris elemanlardır. Vektörler ayrıca MATLAB de list veyahut array olarak da isimlirilirler Vektör tanımlamaları: dışarıdan listeleme tekniği Aşağıda verilen örnekte de görüleceği üzere, bu şekilde girilecek very girişi ile vektör tanımlaması yapılabilir. 1.5 kolondan oluşan bir x satır vektörü aşağıdaki gibi tanımlanabilir. x = [ ] 2. MATLAB ın bu vektörü size tekrar göstermesini istiyorsanız disp(x) komutunu kullanabilirsiniz. 3. daha once de ifade edildiği gibi x vektörünün tipi ve boyutunu görmek istiyorsanız whos komutunu kullanabilir veya workspace den değerleri ve boyutunu görebilirsiniz. 4. Benzer bir vektör tanımlaması boşluk yerine virgülle de yapılabilir: a = [5,6,7] 5. Ancak bilinmelidir ki iki farklı dizi elemanı arasında mutlaka boşluk veya virgule tanımlanmalıdır. Aşağıdaki gibi bir tanımla dizi tanımlaması olmayacaktır. x = [130-15] Bu tür bir tanımlama size ne verecektir? uygulayıp görmeniz tavsiye edilir 6. Bir veya daha çok vektörü yeni bir dizi oluşturmak için kullanabilirsiniz: a = [1 2 3]; b = [4 5]; c = [a -b]; c vektörünü merak mı ettiniz, görebilmeniz için bu uygulamayı yapmalısınız 7. Benzer farklı bir uygulama da aşağıda verilmektedir. 8. a = [1 3 7]; a = [a 0-1]; 8. Aşağıda verilen şekliyle yapılan tanımlamalar boş bir dizi tanımlaması yapar. Diğer bir ifadeyle 0x0 boyutunda içeriği olmayan bir değişken tanımlaması yapmış olunur. Bu değişkene 0 atamak manasına gelmemektedir. x = [ ] 169

18 Kolon operatörü (:) ile vektör tanımlama Bir vektör kolon operatörü kullanarak da tanımlanabilir. Aslında şu ana kadar verilen birçok örnekte bu operator yardımıyla tanımlamalar gerçekleştirildi. Örnek olarak x = 1:10 (birden başlayıp birer birer artan bir vektör tnaımlaması manasındadır); x = 1:0.5:4 (1 den başlayıp 4 e kadar 0.5 artımla elemanların tanımlanması anlamındadır. Artım değeri burada olduğu gibi ortada tanımlanır.); x = 10:-1:1 (10 dan başlayıp 1 azalma ile 1 e kadar eleman içeriğinin tanımlanmasını sağlar) x = 1:2:6 (bu tür bir tanımlamada elemanlar 1, 3, 5 olacaktır); x = 0:-2:-5 (bu tür bir tanımlamada ise elemanlar 0, 2, 4); x = 1:0 (Boş vektör tanımlaması yapmanın karmaşık bir yolu!) Linspace komutu Kolon operatörüne benzer şekilde, linspace komutu da eşit aralıklarla bir vektör tanımlaması için aşağıdaki gibi kullanılabilir. Örneğin; linspace(0, pi/2, 10) eşit aralıklar 0 dan π/2 ye kadar 10 adet elemanın oluşturullmasını sağlamaktadır. Kolon operatöründen farklı olarak, linspace komutu ile en üçük ve en büyük değerlerden sonra aralığın kaça bölünmesi gerektiği fonksiyonda tanımlanmıştır Vektörün Transpozu Buraya kadar üretilen tüm vektörler satır vektörü olarak tanımlanmıştır. Bunların her biri bir satıra ve bir yada daha çok sütüna sahiptiler. Kolon vektörü tanımlamak için yapılması gereken tanımlanmış bu vektörlerin transpozunu almak gerekmektedir. Matris işlemler sırasında da bazen matrislerin satırlarını sütun yapmak gerekebilir. Bu işlemi gerçekleştirebilmek için, diğer bir ifadeyle herhangi bir matrisin transpozunu alabilmek için yapılması gereken apostrophe ( ) operatörünü kullanmaktır. Örnek olarak x = 1:5 ile kolon operatürünü kullanarak bir x satır vektörü oluşturalım, x işlemi ile satırda elemanları olan vektörün transpozunu almış oluruz. Diğer bir tanımlama şeklide aşağıdaki gibidir. Bu sayede satırda girilen elemanlar sütuna çevrilmiş olacaktır y = [ ] Bu vektörlerden herhangi bir elamnın değerini indisleri yardımıyla çağırmak istediğimizde aşağıdaki yolları kullanabilirsiniz. 1. r = rand(1,7) Bu tür bir giriş işlemi size, 7 sütunu bir satırı olan rastgele verilerle oluşturulmuş bir vektör verecektir. 2. r(3) girişi ile r. vektörünün 3 üncü elemanını çağırmış olursunuz. 3. r(2:4) 170

19 Bu giriş işlemi ile 2,3 ve 4. Elemanları çağırmış olursunuz. 4. Bu şekildei tanımlamayı kolon operatörü mantığı ile değerlirin r(1:2:7)? 5. r([ ])? 6. istenilen elemanlar boş vektör kullanılarak boşaltılabilir. r([1 7 2]) = [ ] bu sayede ve 2. Elemanlar boşaltılacak ve vektör boyutu 3 azaltılmış olacaktır. will remove elements 1, 7 and MATRİSLER Matrisler matematikten bilindiği gibi sütün ve satırlardan oluşan vektörlerden ibarettir. Bu nedenle matsiler vektörlerin birleşimyle oluşturulabilirler. O halde vektöreler için geçerli olan her kural matrisler içinde geçerlidir. Aşağıda iki satır vektöründen oluşan bir matris örneği görülmektedir. a = [1 2 3; 4 5 6] bu matris tanımlaması ile aşağıdaki formda 2x3 türünde bir matrisleri a = Vektörlerde olduğu gibi matrisin transpozu da a şekilinde alınabilir ve sonuç aşağıdaki gibi 3x2 şeklinde bir matris olacaktır. a = Bir matris aşağıdaki formda iki kolon vektrörü kullanılarak da türetilebilir. Bunun için ilk olarak kolon operatörü kullanılarak x değişkeni üretililir ve x ler kullanılarak üretilen sin değerleri ile aşağıdaki formda bir matris türetilmiş olur. x = 0:30:180; x_sinx = [x sin(x*pi/180) ] sonuç olarak, x_sinx =

20 Çıktıların depolanması Kes yapıştır tekniği ile yapılan işlemler neticesi olarak command window a dökğlen sonuçlar alınabileceği gibi, workspace alanine kaydedilen bütün sonuçlarda workspace editörleri vasıtasıyla kaydedilebilir. Bu tür çıktıların alınmasına ilişkin bir diğer yöntem de diary komutudur ki kullanıldığında command windowda dökümü verilen herşey bu komutla çalıştığınız klasörün içerisinde otamatik olarak oluşturulacak diary dosyası içerisine kaydedilecektir. Bu kayıt işleminin sona erdirilmesi için ise diary off komutunun kullanılması gerekmektedir. Aşağıdaki uygulama ile bu komutun nasıl kullanıldığını anlayabilirsiniz. diary; hesap_tl = 1000 ayl_maas = 1800 harcama=800 hesap_12ay = hesap_tl + 12*(ayl_maas-harcama); disp( '12 ay sonunda hesaptaki para: "hesap_12ay"') disp( hesap_12ay ); diary off; Operatörler, İfadeler ve Tanımlamalar Her program ki mantığı içerisinde değişkenleri kullanarak belirli ifadeler oluştururlar, örnek olarak hız (u) zaman(t) ve yerçekimi ivmeleri değişkenleri kullanarak (t) zamanında kaydedilen yol için fizik prensipleri kullanılarak *, -, /.^ operatörleri yardımıyla (u*t - g/2*t.ˆ2 ) ifadesi elde edilebilir. Tanımlama veya atama işlemi ise ifadelerin ürettikleri sonucun yine belirli bir operator yardımıyla başka bir değişke saklanması işlemi ile gerçekleştirilir. X= u*t - g/2*t.ˆ Sayılar Matlab da sayılar aşağıda verildiği gibi ondalık formatta (.) ile ayrılmak suretiyle tanımlanır. Burada hatırlanması gereken önemli bir husus ondalık ayracının alışkın olduğumuz şekliyle (,) değil nokta olmasıdır. Sayı tanımlamalarına örnek olarak verilebilir. Matlabda buna ek olarak diğer bilinen formatlar da kullanılabilir. Örneğin bilimsel sayı formatı (scientific notation) matlabda e9 olarak tanımlanabilir. Burada e ile ayrılan iki kısımdan bahsetmek mümkündür. Sayının ilk kısmı (mentissa) ondalık formatta girilebiliecek işaretli bir reel sayıdır ikinci kısım ise üstel ifadeyi içermekte ve integer formatta işaretli (signed) veya işaretsiz (unsigned) tanımlanabilmektedir. Burada ifade edilmesi gereken bir diğer ifade ise (e) nin (E) olarak ta kullanılabileceğidir. Aşağıdaki örnekler doğrudur doğrudur ==1.2345*10ˆ == e9 == == E9 Benzer bilimsel tanımlama sayların çok küçük olduğu durumlarda da kullanılabilir == 1e-9 172

21 Sayıların çok küçük veyahut çok büyük olmaları durumunda bilimsel tanımlama oldukça kullanışlı bir yol olmaktadır. Bu sayede sayıların tanımlamasında hata yapma olasılığı azalmaktadır. Matlab da iki reel sayı arasındaki en küçük farkı eps komutunun kullanarak öğrenebilirsiniz. Her işletim sistemi için ve bilgisyar teknik özelliklerine gore bu sayılar değişiklik gösterebilmekle birlikte, bu günlerde yaygın olarak kullanılan sistemler için dikkate alınan en küçük fark diğer bir ifadeyle rölatif doğruluk; >> eps ans = e-016 seklindedir. Diğer taraftan matlabın yine yukarıda ifade edildiği gibi sistemden sisteme değişebilmekle birlikte bugün için yaygın olarak kullanılan sistemler için tanımlayabileceği en büyük ve en küçük sayılar ise realmin ve realmax komutlarıyla öğrenilebilir. Bu sayılar ~ aralığındadır Data Tipleri MATLAB da toplam 14 adet temel data tipi bulunmaktadır. Daha öncede ifade edildiği üzere varsayılan olarak girilen her değişken double tipinde olduğu kabul edilir. Özel bir tanımlama yapmak gerektiğinde yalnızca o değişken için seçilen tipi belirtmek gerekir. Data tipleri C++ da tanımlandığı gibi aynı isimlerle burada da kullanılabilir. Daha geniş bilgi için help komutundan faydalanarak dat tipleri konusunda bilgi alınabilir. C++ da olduğu gibi MATLAB ayrıca işaretli (signed) ve işaretsiz (unsigned) data tiplerini de tanımlayabilmektedir. Integer tipinde bir işaretli işaretsiz ve MATLAB has 14 fundamental data types (or classes). The default numeric data type is doubleprecision; all MATLAB computations are done in double-precision. More information on data types can be found in the Help index. MATLAB also supports signed and unsigned integer types and singleprecision floating point, by means of functions such as int8, uint8, single, etc. a = magic(4); b = single(a); whos Name Size Bytes Class a 4x4 128 double array b 4x4 64 single array 173

22 Arithmetic operators İfadelerin işlem görmelerinde tüm matematik işlemler gibi MATLAB da aritmetik operatörleri kullanmaktadır. Aşağıdaki tabloda genel manada bilinen kullanım şekilleri ile (Algebric form) Matlab da kullanım şekilleri karşılaştırmalı olarak verilmektedir. Operatörler bu örneklerde a ve b gibi iki verinin işlenmesini sağlamaktadırlar. Burada genel bilinenlerden farklı olarak yalnızca (\) sola bölüm oparatörü bulunmaktadır. Tablodan da anlaşılabileceği gibi 1/3 ve 3\1 aynı ifadenin farklı yazılış şekilleridir. Halbuki bu operator matris işlemlerde kullanıldığında oldukça farklı bir anlam ifade etmektedir. Daha öncede ifade edildiği üzere lineer denklem sistemlerin çözümünde doğrudan kullanılmakta ve bilinmeyenlerin elde edilmesini sağlamaktadır Operatörlerin Önceliği Bir ifade içerisinde birden fazla operator aynı anda kullanarak ifadeler yazılırlar. Bu nedenle tüm matematik işlemlerde olduğu gibi ifadeler içerisinde de işlem görmede operatörlerin bir öncelik sırası bulunmaktadır. Örneğin g * t ˆ 2. ifadesinde iki farklı operatörün farklı sırayla işlem görmesi farklı iki sonucun çıkmasına neden olur. Bu nedenle MATLAB hangi operatörün ilk sırada işlem göreceği konusunda belirli kurallara sahiptir. Operatörlerin önceliklerine ilişkin tablo aşağıda verilmektedir. Matematik işlemlerde olduğu gibi paratezler her durumda ilk önceliğe sahip operatörlerdir. Burada parantezler konusunda önemli bir farklılığı da hatırlamak gerekir, ( ) parantezler işlem önceliğini veyahut bir matrisin elemanını ifade etmede kullanılırken, köşeli parantezler [ ] bir vektör veya matris oluşturmak için kullanılmaktadır. Belirtilmesi gereken bir diğer önemli husus ise aynı önceliğe sahip operatörler için işlem önceliği soldan saga doğru tanımlanacaktır. Çok yaygın şekilde kullanılan operatörlerin işlem önceliklerine ilişkin tablo aşağıda verilmektedir. 174

23 Kolon operatörü ve (.) operatörü Kolon operatüre + operatöründen daha düşük bir önceliğe sahiptir bun nedenle 1+1:5 işleminde ilk olarak toplama işlemi gerçekleştirilir daha sonra kolon operatörü işlem görür. Bu nedenle çıktı, 2, 3, 4, 5 olacaktır. Kolon operatörü aşağıdaki formda kullanılması durumda, ilk olarak parantez içerisinde vektör oluşturulur daha sonra ise her bir elemana 1 eklenerek çözüm gerçekleştirilir. 1+[1:5] Bu sayede görülmektedir, köşeli parantez kullanımıyla işlem önceliği sağlanarak oluşturulan vektöre dizi işlemi yapılarak her bir eleman bir arttırılmaktadır. Daha once de ifade edildiği üzere, aritmetik operatörler aşağıdaki tabloda verildiği formda (.) ile birlikte kullandıklarında dizilerde eleman eleman işlem görmelerini sağlarlar, bu sayede bir dizinin herhangi bir elemanı ile aynı sütün ve satırdaki diğer bir dizinin elemanı ile skaler olarak işleme tabi tutulabilirler Transpoz Operatörü Transpoz operatörü parantezler dışarıda bırakıldığında en yüksek önceliğe sahip operatördür. Bunu anlamak için aşağıdaki işlemi gerçekleştirilem, 175

24 1:5 Köşeli parantez ile birlikte kullanıldığında ise aynı örnek sütün matrisinin oluşmasını sağlayacaktır.: [1:5] Dizilerde aritmetik işlemler Aşağıda verilen işlemleri deneyiniz: a = [2 4 8]; b = [3 2 2]; a.* b a./ b Daha once tabloda verildiği üzere MATLAB bilinen 4 işlem operatörüne ek olarak diziler için kullanılan dört adet daha işlem operatörüne sahiptir. Bu operatörler dizilerin ilgili elemanlarını biribirleri ile işleme sokmak için kullanılırlar. Aynı mantıkla işlem gördüklerinden (+) ve ( ) operatörleri için bunu yapmaya gerek yoktur. Bu operatörler çoğu bazen dizi operatörleri olarak veya bire-bir işlem operatörleri olarak isimlirilirler. Örnek olarak yukarıdaki a.* b işlemi aşağıda açık şekilde verildiği şekliyle işlem görmektedir. [a(1)*b(1) a(2)*b(2) a(3)*b(3)] Benzer şekilde a./ b işlemide eleman eleman bölüm işlemi gerçekleştirmektedir. Dizi operatörünü [2 3 4].ˆ [4 3 1] formunda kullanılması durumunda ise bu sefer, ikinci dizinin ilk elemanı birinci dizinin üstü olarak işem görecektir. Bütün örneklerden de görülebileceği üzere, dizilerin bu şekilde işleme sokulmak istenmeleri durumunda (.) her bir operator için kullanılmalıdır. Bir skaler ile dizi arasındaki işlemlerde de bu operator aynı şekilde kullanılabilir. Ancak bilinmelidir ki, a bir vektör olmakla birlikte, 3.* a ile 3 * a arasında bir farklılık bulunmamaktadır. Ancak alışkanlık olması açısından vektörlerin eleman eleman işleme sokuldukları durumda dizi operatörünün yazılmasında fayda bulunmaktadır. Son olarak MATLAB da bulunan sum( ) fonksiyonu ile dizi operatörünün birlikte kullanıldığı bir önekle konuyu bitirelim. sum(z) ile z vektörünün elemanları bire bir toplanarak sonuç bulunmaktadır. Aşağıdaki gibi bir tanımlamada ise a ve b vektörleri eleman eleman çarpılarak çıkacak yeni vektör elemanları toplanmakta ve sonuç 30 olmaktadır. sum(a.* b) İfadeler İfadeler değişkenleri, sayıları, operatörleri ve fonksiyonları içerebilen ve bunların bir işleme tabi tutulduğu yazım şeklidir. Örnek olarak 2π ifadesi aşağıdaki şekilde gösterilebilir. 2 * pi 176

25 ans = Burada bir kez daha hatırlamak gerekir ki MATLAB ans fonksiyonunu en son yapılan işlemin sonucunu tanımlamakta kullanmaktadır. Bu nedenle bir tanımlama işlemi olarak değerlirilmemelidir. Herhangi bir ifade (;) ile bitiriliriiirse bu hem o satırnın bittiğinin hemde ekranda gösterilmesine gerek olmadığının bir ifadesidir. Ekranda gösterilmemiş olması sonucun kaydedilmediği manasında gelmemektedir Tanımlama (Atamalar) MATLAB genellikle atama işlemlerini değişken = ifade şeklinde gerçekleştirmektedir. Örneğin s = u * t - g / 2 * t.ˆ 2; bir atama işlemidir. Eşitliğin sağ tarafında ifade işlem önceliğine gore sonlandırılıp elde edilen sonuç denklemin solundaki değişkene (s) atanmaktadır. (s). Atamalar sürekli bu mantıkla ve bu yönler dikkate alınarak çalıştırılırlar, ifadenin solda değişkenin ise sağda olduğu bir örnek doğru olmayacaktır. a + b = c (YANLIŞ) Bir program kodu içerisinde veya MATLAB komut penceresinde, her bir satır, bir ifade olarak dikkate alınmaktadır. Bu nedenle ifadeler, atama olabileceği gibi bir komut yada basit bir işlem içeriği de olabilir. x = 29; % assignment clear % command pi/2 % expression Özel durumda bir ifadenin satıra sığmaması durumunda, en az üç nokta kullanılarak ikinci bir satırda ifadenin tanımlanmasına devam edilebilir. x = 3 * / 2 ˆ 2; Bir satırda birden fazla ifadenin girilmek istenmesi durumunda ifadeler arasında (;) veya (,) kullanılması gerekmektedir. a = 2; b = 3, c = 4; Burada not edilmelidir ki (;) ve (,) ifadenin bir parçası değil, yalnızca ayraç olarak kullanılmaktadır. Note that the commas and semicolons are not technically part of the statements; they are separators. Statements may involve array operations, in which case the variable on the left-hand side may become a vector or matrix Formüllerin Vektörleştirilmesi Dizi operatörleri kullanılarak birçok işlem bir önceki sütün veya satırda bulunan elemanlar kullanılarak yeni sütünlar ve satırlar oluşturulabilir (tablo oluşturma işlemi gibi). Bu MATLAB da dizi operatörlerinin faydalı olarak kullanılabileceği bir husustur. Örneğinin, (A) gibi bir yatırım (n) yıl için bankada belirli bir faiz oranı (r) ile tutuluyor olsun. Bu sayede Yatırımın getirisi için A(1+r) n formülize edilebilir. Bu mantıkla 177

26 farklı yatırım değerleri için tanımlanmış A vektörüne karşılık olarak getirileri yine bir vektör gibi hesaplanabilir, sonuç olarak elde edilen iki sutünlu matris, yatırım, ve getirileri şeklinde tablolaştırılmış olacaktır. A = [ ]; r = 0.09; n = 10; B = A * (1 + r) ˆ n; disp( [A B ] ) Çıktı: Çıktılar Temel olarak MATLAB da basit manada iki farklı çıktı türü tanımlamak mümkündür: 1. (;) olmaksızın herhangi bir ifadeyi bir satırda ifade etmekle bunun sonucunun ekranda gösterilmesi sağlanmış olur; 2. diğer taraftan istenilen bir değişken veya ifade de disp komutu ile gösterilebilir. Örneğin disp(x) disp Nümerik bir değişkenin gösterilmesi için genel manada bu komutun kullanılması aşağıdaki gibidir. disp( degisken adı ) Bu şekilde bir tanımlada değişkenin ismi değil yalnızca değişkene atanmış değer gösterilecektir. Bu sayade yalnızca ekranda değer görülecektir. Herhangi bir textin ekrana bastırılmak istenmesi durumunda ise format disp( Daha once söyliği gibi MATLAB sınırlarnızı zorlar ); Bir satır içerisinde hem texti hemde değişkeni göstermek istemeniz durumunda ise bu format, aşağıdaki gibi kullanılmalıdır. x = 2; disp( [ Çözüm :, num2str(x)] ); Bu durumda çıktı Çözüm : 2 Olacaktır. Daha öncede ifade edildiği üzere MATLAB her değişkeni dizi mantığı ile tanımlamaktadır. Burada da köşeli parantezle bir vektör oluşturulmata, elemanları ise string olarak atanmaktadır. Bu nedenle dizinin ikinci elemanında string olması gerekmektedir. X değişkeni num2str fonksiyonu yardımıyla stringe 178

27 çevrilerek dizinin ikinci elemanına atanmış olur, bu sayede iki elemanı da string olan bu dizi disp komutu ile ekrana bastırılır. disp( [x y z] ) Yukarıdaki gibi bir tanımlamada, x,y ve z den oluşan vektör olduğu gibi ekrana basılacaktır. Bazı durumlarda çok büyük matrislerin ekranda adım adım gösterilmesi gerekebilir, bunun için more on komtunun kullanılmasıyla çıktıyı adım adım kontrol etmek mükün olacaktır. Bu komutu denemek için more komutu kullanıldıktan sonra aşağıdaki gelişigüzel oluşturulmuş matrisi gözlemleyin. rand(100,7). *** Ctrl+Break veya Ctrl+C ile işlemi istediğiniz yerde kesebilirsiniz Matlab sayıların ekrana basılmasında aşağıda verilen temel iki kuralı kullanmaktadır, 1. Genel olarak doğal sayıların tümünü ekranda göstermek eğiliminde olsada, çok büyük sayıları toplamda 5 adet digit kullanarak bilimsel formatta göstermektedir. Örneğin sayısı MATLAB da e+009 şeklinde gösterilecektir. Varsayılan olarak 9 haneye kadar normal formatta gösterilen sayılar 10 hane ve üstü için otamatik olarak bilimsel formata dönüştürülür. Bu şekilde ekrana basılmasını istenmiyorsa, format Komutu kullanılarak bu özellik kabatılabilir. 2. Reel sayılar ise ilk 5 adet digitleri kullanılarak ekrana basılırlar. Sayı 0.001<x 1000 aralığında olması durumunda normal formmatta, bu sınırlar dışında ise bilimsel formatta gösterilir. Diğer örneğe benzer şekilde herhangi bir tipi formatlayarak bu gösterimin değişimini saplayabilirsiniz. Bilimsel formatta gösterilen bir sayının normal görünümünü istemeniz durumda, boyutu önemli olmaksızın aşağıdaki komut kullanılarak bilimsel gösterim kapatılabilir. Bunu tekrar kullanmanız durumunda ise işlem tersine dönmüş olacaktır. format short e Çıktıda daha hassas olarak sonuçların görülmesi isteniyorsa aşağıdaki farklı formatlar aktif gale getirilebilir, aşağıdaki örnekleri deneyin, format <enter> <enter> e+037 format short e <enter> <enter> e+037 format long e <enter> <enter> 179

28 e+037 format long g <enter> % matlab kaç digit göstereceğine ki karar verir <enter> e+037 ***Daha fazla bilgi için help format okunabilir. Aşağıdaki komutları giriniz, format compact <enter> x = [1e3 1 1e-4] <enter> x = 1.0e+003 * Görüleceği üzere MATLAB bu şekilde bir tanımlamada dizinin elemanları için ortak bir çarpan belirlemekte ve bunu 1.0e+003 * olarak yazmaktadır. Bu şekilde çarpan gösterilmek istenmiyorsa formatın format bank veya format short e olarak ayarlanması yeterli olacaktır. : format bank x <enter> x = format short e <enter> x <enter> x = e e e for döngüsü Bu noktaya kadar dataların nasıl oluşturlacağı, nasıl işleneceği ve sonuçların nasıl elde edilip değerlirileceği konusunda işlemler gerçekleştirildi. Bu başlıkta MATLAB da tekrarlanması gereken işlemlerin nasıl işleneceği diğer bir ifadeyle döngüler konusunda bilgi verilmeye çalışılacaktır. Bu maksatla for yapısı bu başlıkta irdelenmektedir. İlk olarak for yapısı konusunda basit örnekler üzerinde durulacak, daha sonrada farklı kullanım şekilleri ifade edilmeye çalışılacaktır. İlk olarak döngünün nasıl çalıştığını anlayabilmek için aşağıdaki örnekleri gerçekleştirin. (formatı compact olarak ayarlarsanız sonuçları daha net görme şansımız olabilir) for i = 1:5, disp(i), for i = 1:1, disp(i), for i = 1:0, disp(i), Buradan da görülebileceği gibi döngü ilk tanımlama için 5 defa tekrarlarken ikincisinde bir kere, son olarak ise işlem görmeksizin tamamlandı. 180

29 Örnek: karekök problemi için Newton metodu, Herhangi bir pozitif x sayısının karekökü Newton metodu kullanılarak aritmetik işlemler sayesinde sonuca ulaşılabilir. Bu yöntem iterativ bir metottur ve aşağıdaki akış kodu ile ifade edildiği gibi gerçekleştirilebilir. Akış kodu: BAŞLA 1. Karekökü alınacak pozitif sayıyı belirleyin a 2. sayının yarısını x e atayın x=a/2 3. Kaç tekrarda karekök değerine ulaşılmak istediğini belirleyin (say) Her bir adımda atamasını yapın x =(x + a/x)/2 x I gösterin BİTİR a = input('karekökü alınacak sayısı girin :'); x = a/2; b = input('iterasyonun tekrar sayısını girin :'); disp(['bu adımda (a) degeri = ', num2str(a)]) for i = 1:b x = (x + a / x) / 2; disp([num2str(i), ' adımda a degeri = ', num2str(x)]) disp( 'matlabın hesapladıgı deger') disp( sqrt(a) ) çıktı formatını format long olarak ayarlarsanız çıktı a=6 tekrar sayısı 5 için >> format long karekökü alınacak sayısı girin :6 iterasyonun tekrar sayısını girin :5 Bu adımda (a) degeri = 6 1 adımda a degeri = adımda a degeri = adımda a degeri = adımda a degeri = adımda a degeri = matlabın hesapladıgı deger Örnek: Faktöriyel problemi, Herhangi bir pozitif sayının faktöriyelinin hesaplanması n! n! = (n 1) n. basit bir şekilde kod aşağıdaki şekilde hazırlanabilir, n = 10; fact = 1; for k = 1:n fact = k * fact; 181

30 disp( [k fact] ) Benzer şekilde örnek aşağıdaki şekilde daha complex bir şekilde de hazırlanabilir. n = input('faktöriyeli aranan sayısı girin :'); fact=1 ; disp(['bu adımda (a) degeri = ', num2str(a)]) for k = 1:n fact = k * fact; disp( [num2str(k), '. adımda = ', num2str(k), ' faktöriyel :' num2str(fact)] ) disp( 'sonuç aranan deger') disp(fact) genel olarak for döngüsü temel yapısı aşağıdaki şekilde tanımlanabilir. Bu kalıp program kodu içerisinde bu yapıda kullanılabilir. Komut penceeresi için bu formda kullanılamaz. for index = j:k ifade veya for index = j:m:k ifade komut penceresinde de kullanabilien tek satırda yazım şekliyle for k = ilk:artım:son for döngüleri tanımlanabilir Aşağıdaki husuların iyi anlaşılması gerekmektedir. 1. j:k kolon vektörü yardımıyla elemanları j, j + 1, j + 2,..., k olan bir vektör tanımlamasıdır. 2. j:m:k kolon vektörü yardımıyla elemanları j, j +m, j +2m,..., olan bir vektör tanımlamasıdır, ancak son elemanı k dan büyük olamaz (m>0), veya küçük olamaz (m<0). 3. index bir değişken olmalıdır, he bir döngü sonunda, bir sonraki vektör elemanının değerini almaktadır, (j:k veya j:m:k). for k = ilk:artım:son düşünüldüğünde bir döngünün kaç defa tekrarlıyacağı (son-ilk) / artım+1 ifadesiniyle bulunabilir. 4. Döngünün sonlanması ile indexsin son değeri oluşturulan vektörün son değeridir. Daha once de ifade edildiği üzere bu yukarıda son ile ifade edilen terim olmak zorunda değildir. Artıma bağlı olarak değişkenlik gösterebilir. 182

31 for döndügüsü bir satır içerisinde kullanılmak istiğinde aşağıda verilen formatta tanımlanaabilir. for index = j:k, ifade, veya for index = j:m:k, ifade, Not: 1. Yukarıdaki kullanıldığı şekliyle (,) kullanılması unutulmamalıdır. (;) da gerktiği durumlarda kullanılabilr. Kullanılmaması durumunda MATLAB hata mesajı verecektir. 2. İfadeler birden fazla olabilir, dikkat edilmesi gereken tek husus (,) veya (;) ile ayrı ayrı yazılmaları gereğidir. 3. Döngü sonunda kullanılmaması durumunda MATLAB sizden enter a basmanızı bekleyecek ve bu ana kadar hiçbir işlem yapmayacaktır. for döngüsünün en genel ifade tarzı aşağıdaki gibidir. Bu halde önceden tanımlanmış bir vektör içeriği kullanılmaktadır. Elemanlar her bir döngü için sırasıyla index değerine atanarak döngü işlemi vektörün son elemanına ulaşılıncaya kadar gerçekleştirilir. for index = v bu döngünün çalışma mantığını anlmak için aşağıdaki örnek denebilir. v=1:4; for index = v, disp(index), Vektörleştirme yoluyla döngü oluşturma Şu ana kadar birçok uygulamada olduğu gibi bazı problemlerin çözümünde döngü kullanılmak zorunda kalınabilmektedir. Oysaki for döngüsünün kullanıldığı bazı durumlarda işlem zamanı bakımından oldukça büyük zamanlar geçmekte ve program gereğinden fazla sürede son bulabilmektedir. Örnek olarka aşağıdaki işlemi düşünelim; bu tür bir matematik problemin çözümü için aşağıdaki kod yazılabilir. Bu kod ayrıca döngü esnasında ne kadar sürenin geçtiğini de bize gösterecektir. t0 = clock; s = 0; for n = 1: s = s + n; etime(clock, t0) 183

32 clock fonksiyonu elemanları mevcut zamanı ve tarihi gösterecek şekilde toplam 6 elemanlı bir vetkör içeriğine sahiptir. Bunlar sırasıyla yıl, ay, gün, saat, dakika ve saniye olarak sıralanmaktadır. etime fonksiyonu ise başlangıçta kaydedilen zaman ile bitişte çalıştırılan clock fonksiyonu ile üretilen zaman arasındaki farkı bulabilmek için kullanılmaktadır. t0 = clock; n = 1:100000; s = sum( n ); etime(clock, t0) Pentium II bir bilgisayar için bu döngü 3.35 saniye içerisinde gerçekleşmektedir. Bilgisayarınız için bu programı deneyip ne sürede işlemin sonlandırıldığını kontrol edebilirsiniz. Burada verilen 50 kat daha hızlı bir bilgisayar için bu sure 0.06 saniye sürecektir. Benzer şekilde bu süreyi hesaplamanın bir diğer yolu ise tic ve toc fonksiyonlarını kullanmaktır. Bu fonksiyonun kullanılması için aşağıdaki toplam fonksyionuna ait kodu hazırlayacak olursak. tic s = 0; for n = 1: s = s + 1/nˆ2; toc Yine bir Pentium II bilgisayar için bu işlemin alacağı sure 6 saniye civarındadır. Tekrar söylemek gerekir ki yeni bir bilgisayarda bu sure çok daha küçük değerler alacaktır. Ancak buradaki maksat döngünün ne denli uzun süreler aldığını göstermektir. Yukarıdaki toplama işlemi aşağıdaki formda da yapılabilir. Bu sayede işlem tanımlanan n vektörü ve sum fonksyionu yardımıyla gerçekleştirilmektedir. tic n = 1:100000; s = sum( 1./n.ˆ2 ); toc Bu halde program kodu çalıştırılacak olursa, aynı PC için hesaplanan zaman 0.05 saniye değerini almaktadır. Buda aynı işlemin 100 kat daha hızlı yapılması anlamına gelmektedir. Diğer bir ifadeyle uzun zaman alan kodların hazırlanması yerine, en etkili kod hazırlamaya yöntemi olan en çabuk şekilde sonuca ulaşmak hedeflenmelidir. Bu nedenlede for yerine bazen mevcut oluşturulmuş döngüler yardımıyla göngüye benzer işlemler gerçekleştirilebilir. Örnek: Burada 9999 terimi olan bir serinin elemanları toplamları verilmektedir. serinin genel terimini bularak program kodu hazırlanacak olursa aşağıdaki kod yardımıyla problem çözülebilir. 184

33 sign = -1; s = 0; for n = 1:9999 sign = -sign; s = s + sign / n; vektörleştirilmiş versiyonu n = 1:2:9999; s = sum( 1./n - 1./(n+1) ) Diğer örneklerde olduğu gibi bu örnektede for döngü tanımlaması yerine vektörleştirme işşlemi gerçekleştirildiğinde işlem süresi oldukça azalacaktır. Bu nedenle kullanılabildiği ölçüde döngü yerine vektörleştirilmenin tercih edilmesi hazırlanan kodun çok daha kısa sürede sonuca ulaşması anlamına gelecektir. Örneğin, prod(1:n) fonksiyonu yardımıyla n! yazılan programdan çok daha kısa sürede sonuca ulaşacaktır. for döngü tanımlamalarında yapılan en sık hata döngü tanımlamalarında for yada in yazılımın unutulmasıdır, bu durumlardan ilkinde MATLAB işlemler esnasında hata mesajı vermeyecektir. in yazılmadığı durum daha once de ifade edildiği gibi programın duraksamasına neden olacaktır. Bu nedenle en riskli olanı for ifadesinin unutulmasıdır. Bunu aşağdaki örneği deneyerek görebiliriz. a = 2; x = a/2; i = 1:6 % Burada for yazılmadığından index olarak tasarlanan i artık vektör x = (x + a / x) / 2; disp( x ) 185

34 13.8. Mantıksal ifadeler ve Karar verme C++ olduğu gibi MATLAB da da mantıksal ifadeler veyahut karar vermeye yönelik olarak birçok yapı mevcuttur. Bunlardan en yaygın olarak kullanılan genel manada if ve switch yapısı burada ifade edilmektedir. rand fonksiyonu 0 1 arasında değerler üreteceğinden aşağıdaki örnek if yapısını anlamak için iyi bir örnektir. r = rand if r > 0.5 disp( üretilen sayı büyüktür ), veya daha doğru bir mantıkla aynı problem için r = rand if r > 0.5 disp( üretilen sayı 0.5 den büyüktür ) else disp( üretilen sayı 0.5 den küçüktür ), Burada hatırlamak gerekir ki, C++ da ve bütün programlama dillerinde olduğu gibi mantıksal tanımlamalarda (r<0.5 gibi) program 1 yada 0 sonucu üretir ve koşul (if) yapısı buna gore islem görür yada işlem görmeksizin devam eder. Yazılan koddan da anlaşılacağı üzere mantıksal ifadenin 1 üretmesi diğer bir ifadeyle doğru olması durumunda koşul gerçekleşmiş ve if yapısını takip eden ifadeler işlem görmüş olacaktır. Bunu daha iyi anlamak için aşağıdaki örnekleri command window da yazınız ve ürettikleri sonuçları görünüz. 2 > 0-1 > 0 Bunlardan ilkinde sonuç olarak 1 ikincisinde ise sonuç olarak 0 üretilecektir. Diğer bir ifadeyle birinci mantıksal tanımlama doğru ikincisi ise yanlıştır. Yukarıdaki örnekte de görüldüğü üzere MATLAB bir karar vermek zorundadır, r nin 0.5 den büyük olup olmadığı kontrol edilmekte ve buna göre ifadeler işlem görmektedir. Burada kullanılan if yapısı, hemen hemen bütün dillerde olduğu gibi MATLAB da da standart olarak kullanılmaktadır. MATLAB da bu işlemi tek satırda yapmak mümkün olduğundan genel yapısı aşağıdaki şekilde ifade edilebilir. if şart ifade, Not: 1. şartın her durumda mantıksal bir tanımlama ile üretilmesi dolayısıyla da sonuç olarak doğru (1) veya yanlış (0) üretmesi gerekmektedir. Mantıksal ifadelerde kullanılan operatörler aşağıdaki tablıda verilmektedir. 186

35 2. burada verilen yapıda eğer şart doğru sonuç üretirse, ifade işlem görür aksi taktirde işlem gerçeklemez.. 3. gerek şart gerekse ifade parantez içerisinde ifade edilebileceği gibi örneklerde görüldüğü üzere parantezsiz de yazılabili. Aşağıda bazı mantıksal tanımlamaların örnek yazım şekilleri verilmektedir. bˆ2 < 4*a*c (b 2 <4ac) x >= 0 (x 0) a = 0 (a 0) bˆ2 == 4*a*c (b2 = 4ac) Hatırlamak gerekir ki atama operatörü (=) ile denklik kontrol eden (==) operatörü karıştırılmamalıdır. Bunun için aşağıdaki örnekler yapılabilir; if x == 0 disp( x equals zero ), % DOĞRU if x = 0 disp( x equals zero ), % YANLIŞ if-else Yapısı İf yapısının bir diğer ve daha yaygın kullanım şekli de if-else yapısıdır. İf yapısından en önemli farkı if içerisinde ifade edilen şartın dışında kalan bütün durumları içine alan şart else yapısı ile temsil edilmektedir. Yapının kullanımı için aşağıdaki örnekleri yapınız. x = 2; if x < 0 disp( negatif ), else disp( negatif değil ), bu işlem if-else yapısının bir satırda kullanıldığı bir örnektir ve if yapısından farklı olarak şartın dışında kalan mantıksal alanı (x>=0) tanımlamaya gerek kalmaksızın else ile bunun gerçekleştirilmesi sağlanmaktadır. Bu halde örnek için sonuç else yapısı işlem görecek ve ekrana negatif değil basılacaktır. 187

Programlama Ders Notları 2010-2011 Bahar Dönemi. Ertan Pekşen

Programlama Ders Notları 2010-2011 Bahar Dönemi. Ertan Pekşen Programlama Ders Notları 2010-2011 Bahar Dönemi Ertan Pekşen Kocaeli Üniversitesi Mühendislik Fakültesi Jeofizik Mühendisliği Bölümü 14 Şubat 2011 Đçindekiler Bölüm 1 1. Matlab a giriş 1.1 Yardım 1.2 Sayılar

Detaylı

C Programlama Dili'ne Giriş

C Programlama Dili'ne Giriş Ders 1: Giriş Giriş C Programlama Dili'ne Giriş Bu ilk derste, bir C programın nasıl derlenip çalıştırılacağı ve Internet'te bulabileceğiz derleyicilerden bahsedilecektir. En basit C programının derleyip

Detaylı

11. SINIF MATEMATİK KONU ÖZETİ

11. SINIF MATEMATİK KONU ÖZETİ 2012 11. SINIF MATEMATİK KONU ÖZETİ TOLGA YAVAN Matematik Öğretmeni 1.ÜNİTE: KARMAŞIK SAYILAR x 2 +3=0 gibi denklemlerin gerçek sayılarda çözümü olmadığından bu denklemlerin boş kümeden farklı çözüm kümeleri

Detaylı

BİLİŞİM TEKNOLOJİLERİ

BİLİŞİM TEKNOLOJİLERİ T.C. MİLLÎ EĞİTİM BAKANLIĞI BİLİŞİM TEKNOLOJİLERİ ALT AĞLAR 481BB0051 Ankara, 2012 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında yer alan yeterlikleri kazandırmaya

Detaylı

TEMEL BİLGİSAYAR TEKNOLOJİLERİ KULLANIMI

TEMEL BİLGİSAYAR TEKNOLOJİLERİ KULLANIMI EDİTÖR: YRD. DOÇ.DR. HASAN H. BALIK TEMEL BİLGİSAYAR TEKNOLOJİLERİ KULLANIMI Ahmet TEKİN Ayhan AKBAL Bahadır SEVİNÇ Fatih ERTAM Harun H. TUZSUZOĞLU İhsan SERHATLIOĞLU Kemal BALIKÇI M. Fatih TALU Musa ÇIBUK

Detaylı

Harcama Yönetim Sistemi Ödeme Emri Belgesi (Manuel) Düzenleme Kılavuzu. Ocak-2013. Uygulama Geliştirme ve Destek Şubesi

Harcama Yönetim Sistemi Ödeme Emri Belgesi (Manuel) Düzenleme Kılavuzu. Ocak-2013. Uygulama Geliştirme ve Destek Şubesi Ödeme Emri Belgesi (Manuel) Düzenleme Kılavuzu Ocak-2013 Uygulama Geliştirme ve Destek Şubesi Kılavuzun Adı Güncelleme Tarihi Ödeme Emri Belgesi Düzenleme Kılavuzu 1.0 Nisan 2010 Ödeme Emri Belgesi Düzenleme

Detaylı

TC MALİYE BAKANLIĞI MUHASEBAT GENEL MÜDÜRLÜĞÜ TAŞINIR KAYIT VE YÖNETİM SİSTEMİ UYGULAMA KILAVUZU

TC MALİYE BAKANLIĞI MUHASEBAT GENEL MÜDÜRLÜĞÜ TAŞINIR KAYIT VE YÖNETİM SİSTEMİ UYGULAMA KILAVUZU TC MALİYE BAKANLIĞI MUHASEBAT GENEL MÜDÜRLÜĞÜ TAŞINIR KAYIT VE YÖNETİM SİSTEMİ UYGULAMA KILAVUZU ANKARA- 2012 KBS SİSTEMİNE GİRİŞ KBS ana sayfasına internet adres çubuğuna www.kbs.gov.tr adresi yazılarak

Detaylı

VADELİ İŞLEM VE OPSİYON PİYASASI (VİOP) TEMSİLCİ EKRANI KULLANIM KILAVUZU

VADELİ İŞLEM VE OPSİYON PİYASASI (VİOP) TEMSİLCİ EKRANI KULLANIM KILAVUZU VADELİ İŞLEM VE OPSİYON PİYASASI (VİOP) TEMSİLCİ EKRANI KULLANIM KILAVUZU İstanbul, Mayıs 2013 İÇİNDEKİLER 1 GİRİŞ... 8 1.1 KULLANIM KILAVUZU HAKKINDA... 8 2 BORSA İSTANBUL-VİOP İŞLEM SİSTEMİ TEMSİLCİ

Detaylı

V40, S60, V60, XC60, V70, XC70 & S80 ROAD AND TRAFFIC INFORMATION SYSTEM - RTI

V40, S60, V60, XC60, V70, XC70 & S80 ROAD AND TRAFFIC INFORMATION SYSTEM - RTI V40, S60, V60, XC60, V70, XC70 & S80 ROAD AND TRAFFIC INFORMATION SYSTEM - RTI Ekran üzerindeki metin ve semboller Bir sonraki kılavuz noktasındaki olay Sonraki kılavuz noktasına olan mesafe Bir sonraki

Detaylı

GeoGebra Yardım Resmi Kullanım Kılavuzu 3.2

GeoGebra Yardım Resmi Kullanım Kılavuzu 3.2 GeoGebra Yardım Resmi Kullanım Kılavuzu 3.2 Yazanlar: Markus Hohenwarter ve Judith Hohenwarter Çevirenler: Mustafa Dogan ve Erol Karakırık www.geogebra.org GeoGebra Yardım 3.2 Son Düzenleme: Aralık 11,

Detaylı

SAYMA. Ayrık iki kümenin bileşimindeki eleman sayısı, bu kümelerin eleman sayıları toplamına

SAYMA. Ayrık iki kümenin bileşimindeki eleman sayısı, bu kümelerin eleman sayıları toplamına SONLU MATEMATİK SAYMA SAYMANIN İKİ TEMEL PRENSİBİ TOPLAMA PRENSİBİ Ayrık iki kümenin bileşimindeki eleman sayısı, bu kümelerin eleman sayıları toplamına eşittir. Örnek. Bir sınıftaki her öğrencinin, iki

Detaylı

Bir Stratejik Öngörü Metodu Olarak Senaryo Planlama Dr. Murat Sevencan Citation Info/Referans Bilgisi: Öz: Anahtar Kelimeler: Abstract: Keywords:

Bir Stratejik Öngörü Metodu Olarak Senaryo Planlama Dr. Murat Sevencan Citation Info/Referans Bilgisi: Öz: Anahtar Kelimeler: Abstract: Keywords: Bir Stratejik Öngörü Metodu Olarak Senaryo Planlama Dr. Murat Sevencan Citation Info/Referans Bilgisi: M. SEVENCAN, Bir Stratejik Öngörü Metodu olarak Senaryo Planlama, KÖK Araştırmaları Journal, V. XI,

Detaylı

Harcama Birimleri Ödeme Emri Belgesi (Manuel) Düzenleme Kılavuzu. Nisan-2010. BİM Uygulama Geliştirme ve Destek Şubesi

Harcama Birimleri Ödeme Emri Belgesi (Manuel) Düzenleme Kılavuzu. Nisan-2010. BİM Uygulama Geliştirme ve Destek Şubesi Ödeme Emri Belgesi (Manuel) Düzenleme Kılavuzu Nisan-2010 BİM Uygulama Geliştirme ve Destek Şubesi GİRİŞ ÖEB Uygulamasına bağlanılabilmesi için aşağıdaki işlemler sırasıyla gerçekleştirilir. Uygulama internet

Detaylı

[X] Fusion Standard. [ ] EntegreW3 [X] 3.0.2. [X] Set. [X] DBUPDATE Programının Çalıştırılması. [X] İlgili Program Seçeneklerine Hak Tanımlanması

[X] Fusion Standard. [ ] EntegreW3 [X] 3.0.2. [X] Set. [X] DBUPDATE Programının Çalıştırılması. [X] İlgili Program Seçeneklerine Hak Tanımlanması ESNEK YAPILANDIRMA Amaç ve Fayda Bu uygulama ile, stokların sahip oldukları özellikler bazında, ayrı kartlar yerine tek bir kartta takibinin yapılabilmesi amaçlanmıştır. Böylece hareket girişlerinde, reçetelerde

Detaylı

FIRAT KALKINMA AJANSI İÇ DENETİM REHBERİ

FIRAT KALKINMA AJANSI İÇ DENETİM REHBERİ FIRAT KALKINMA AJANSI İÇ DENETİM REHBERİ 1 GİRİŞ Bu rehber, Fırat Kalkınma Ajansında iç denetim faaliyetlerinin, 3 Ağustos 2009 tarih ve 27308 sayılı Resmi Gazetede yayımlanan Kalkınma Ajansları Denetim

Detaylı

VISUAL BASIC.NET. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) MsgBox(" Merhaba ") End Sub

VISUAL BASIC.NET. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) MsgBox( Merhaba ) End Sub VISUAL BASIC.NET ÖRNEK 1:Tamam butonuna basıldığında MERHABA mesajını veren programı yazınız. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) MsgBox(" Merhaba ") ÖRNEK

Detaylı

ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ

ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ T.C. MİLLÎ EĞİTİM BAKANLIĞI ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ TEMEL MANTIK DEVRELERİ 522EE0245 Ankara, 2012 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında yer

Detaylı

T.C. TRAKYA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ

T.C. TRAKYA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ T.C. TRAKYA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ VERİ SIKIŞTIRMADA YENİ YÖNTEMLER Altan MESUT Doktora Tezi Bilgisayar Mühendisliği Anabilim Dalı 2006 EDİRNE Danışman: Yrd. Doç. Dr. Aydın CARUS i ÖZET Bu

Detaylı

İÇİNDEKİLER. Sayfa 1. GİRİŞ... 1 2. PROTEUS 6.2 SP 5 KURULUMU... 1

İÇİNDEKİLER. Sayfa 1. GİRİŞ... 1 2. PROTEUS 6.2 SP 5 KURULUMU... 1 1 İÇİNDEKİLER Sayfa 1. GİRİŞ... 1 2. PROTEUS 6.2 SP 5 KURULUMU... 1 3. ISIS... 1 3.1. Araç Çubukları... 3 3.1.1.Dosya Araç Çubuğu... 3 3.1.2. Görünüm Araç Çubuğu... 4 3.1.3. Düzen Araç Çubuğu... 4 3.1.4.

Detaylı

METATRADER Kullanım Kılavuzu

METATRADER Kullanım Kılavuzu METATRADER Kullanım Kılavuzu 1/99 İÇERİK Yeni Hesap Kaydı (Demo hesabına ilk giriş).4 Program Kurulumu.7 Mevcut Hesaba Giriş..11 MetaTrader Çalışma Alanı.14 Piyasa Gözlemi..16 Sembol Pencereleri 17 İzleme

Detaylı

ŞEKİL YETENEĞİ TEST 1

ŞEKİL YETENEĞİ TEST 1 SAYISAL MANTIK ŞEKİL YETENEĞİ TEST. + = = 4. I. a c a + b + c Yukarıdaki eşitliklerden,, sembolleri belli bir sayının yerine kullanılmıştır. b + nin değeri kaçtır? II. c b b c + m c A) B) C) D) 4 E) 5

Detaylı

TEZ HAZIRLAMA ve YAZIM KILAVUZU (Yüksek Lisans ve Doktora Programları)

TEZ HAZIRLAMA ve YAZIM KILAVUZU (Yüksek Lisans ve Doktora Programları) TÜRKĠYE CUMHURĠYETĠ KARADENĠZ TEKNĠK ÜNĠVERSĠTESĠ SAĞLIK BĠLĠMLERĠ ENSTĠTÜSÜ TEZ HAZIRLAMA ve YAZIM KILAVUZU (Yüksek Lisans ve Doktora Programları) Aralık, 2011 TRABZON ĠÇĠNDEKĠLER Sayfa No ÖNSÖZ 5 1.

Detaylı

GİRİŞ Gümrük Birliği nin en temel özelliği üye ülkelerin kendi aralarındaki ticarette hiçbir şekilde miktar ve gümrük vergisi kısıtlamalarının bulunmaması ve üçüncü ülkeler ile ticaretlerinde de ortak

Detaylı

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKÎ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) MAKİNE TEKNOLOJİSİ ÖZELLİK VE TANIMLAMA

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKÎ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) MAKİNE TEKNOLOJİSİ ÖZELLİK VE TANIMLAMA T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKÎ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) MAKİNE TEKNOLOJİSİ ÖZELLİK VE TANIMLAMA ANKARA 2007 Milli Eğitim Bakanlığı tarafından geliştirilen modüller;

Detaylı

İNSAN KAYNAKLARI BİLGİ SİSTEMİ TAŞRA KULLANICILARI MODÜLÜ KULLANICI EL KİTABI

İNSAN KAYNAKLARI BİLGİ SİSTEMİ TAŞRA KULLANICILARI MODÜLÜ KULLANICI EL KİTABI Sisteme Nasıl Girilir? İNSAN KAYNAKLARI BİLGİ SİSTEMİ TAŞRA KULLANICILARI MODÜLÜ KULLANICI EL KİTABI Sisteme girmek için Kurum Portal/Intranet sayfasından Kurumsal Uygulamalar İnsan Kaynakları Bilgi Sistemi

Detaylı

BİR ATÖLYEDE ORANLARLA İŞGÜCÜ VERİMLİLİK (WPMR) MODELİNİN TASARIMI VE UYGULAMASI

BİR ATÖLYEDE ORANLARLA İŞGÜCÜ VERİMLİLİK (WPMR) MODELİNİN TASARIMI VE UYGULAMASI BİR ATÖLYEDE ORANLARLA İŞGÜCÜ VERİMLİLİK (WPMR) MODELİNİN TASARIMI VE UYGULAMASI Doç.Dr. Emin KAHYA 1 Kadri KARABÖCEK 2 ÖZET Bu çalışmada, orta ölçekli bir işletmenin Mekanik İşler Atölyesi nde, işçi ve

Detaylı

PARALEL MEKANİZMALARIN KİNEMATİĞİ, DİNAMİĞİ VE ÇALIŞMA UZAYI

PARALEL MEKANİZMALARIN KİNEMATİĞİ, DİNAMİĞİ VE ÇALIŞMA UZAYI HAVACILIK VE UZAY TEKNOLOJİLERİ DERGİSİ OCAK 25 CİLT 2 SAYI 1 (19-36) PARALEL MEKANİZMALARIN KİNEMATİĞİ, DİNAMİĞİ VE ÇALIŞMA UZAYI Elmas ANLI Uçak Müh. Böl İstanbul Teknik Üni. anli@itu.edu.tr Hüseyin

Detaylı

Bordro LOGO Kasım 2011

Bordro LOGO Kasım 2011 Bordro LOGO Kasım 2011 içindekiler Bordro... 5 Hesap Şablonları... 6 Şablon Tanımları... 7 Puantaj Öndeğerleri... 11 Öndeğer Tanımları... 12 Öndeğer Tanım ve Fonksiyonları... 13 Geçerli olacak parametre

Detaylı

BULANIK DOĞRUSAL PROGRAMLAMA VE BİR BİSKÜVİ İŞLETMESİNDE OPTİMUM ÜRÜN FORMÜLÜ OLUŞTURMA

BULANIK DOĞRUSAL PROGRAMLAMA VE BİR BİSKÜVİ İŞLETMESİNDE OPTİMUM ÜRÜN FORMÜLÜ OLUŞTURMA T.C. KARAMANOĞLU MEHMETBEY ÜNİVERSİTESİ SOSYAL BİLİMLER ENSTİTÜSÜ BULANIK DOĞRUSAL PROGRAMLAMA VE BİR BİSKÜVİ İŞLETMESİNDE OPTİMUM ÜRÜN FORMÜLÜ OLUŞTURMA Hazırlayan Bayezid GÜLCAN İşletme Anabilim Dalı

Detaylı

Atek ADR-10 Serisi YÜKSEK PERFORMANS DİJİTAL KOORDİNAT OKUMA EKRANI KULLANMA KILAVUZU

Atek ADR-10 Serisi YÜKSEK PERFORMANS DİJİTAL KOORDİNAT OKUMA EKRANI KULLANMA KILAVUZU Atek ADR-10 Serisi YÜKSEK PERFORMANS DİJİTAL KOORDİNAT OKUMA EKRANI KULLANMA KILAVUZU İçindekiler 1. ATEK DİJİTAL KOORDİNAT OKUMA SİSTEMLERİ... 3 1.1. ATEK lineer enkoder ve dijital koordinat okuma ünitesi

Detaylı