TEMEL MATLAB KULLANIMI

Komut Satırında Yazılmış Örneklerle

Şeref Öcal
Fizik Mühendisi 2007

İÇİNDEKİLER

Ø GİRİŞ. MATLAB Nedir, MATLAB ile Çalışmak, İfadeler, MATLAB Temel Yazım Notasyonu, MATLAB de Kullanılan Belli Başlı Komut İşaretleri, Komut Satırında Klavye Kısayolları (3–6) Ø BÖLÜM I. Aritmetik İşlemler, Radyan – Derece Dönüşümü, Logaritma, Karmaşık Sayılar, Yuvarlatma İşlemleri, Kalan Bulma, Temel İstatiksel İşlemler, Asal Çarpanlara Ayırma, Kesirli Gösterim, OBEB-OKEK, Faktöriyel (7–18) Ø BÖLÜM II. İntegral Hesapları, Türev, Limit (19–27) Ø BÖLÜM III. Vektörler, Matrisler, Polinomlar, Ara Değer Hesapları (28–61) Ø BÖLÜM IV. Grafik İşlemleri (İki Boyutlu Grafikler, Üç Boyutlu Grafikler) (62–96) Ø BÖLÜM V. Denklemler-Denklem Sistemlerinin Çözümü (Cebirsel Denklemler, Diferansiyel Denklemler) (97–115) Ø BÖLÜM VI. MATLAB de Programlama (Bir MATLAB Programının Anatomisi, Veri Giriş-Çıkışları Ve Hata Bildirimleri İçin Kullanılan Önemli Fonksiyonlar, Program Yazımında Sıkça Kullanılan Koşul Deyimleri, Programlamada Zamanlama, MATLAB Derleyicisi) (116–135) Ø KAYNAKLAR (136 – 138)

2

GİRİŞ
MATLAB Nedir? MATLAB adı, MATrix LABoratory (Matrix Laboratuarı) kelimelerinden gelir. MATLAB, ilk olarak Fortran Linpack ve Eispack projeleriyle geliştirilmiş ve bu programlara daha etkin ve kolay erişim sağlamak amacıyla 1970’lerin sonlarında yazılmıştır. MATLAB, matematik ve özellikle de matris esaslı matematik ortamında kullanılmak üzere hazırlanmış etkileşimli bir paket programlama dilidir. MATLAB ın ilk sürümleri FORTRAN dilinde, son sürümleri ise C dilinde yazılmıştır. FORTRAN ve C dili gibi yüksek seviyeden programlama dilleri ile yapılabilen hesaplamaların pekçoğunu MATLAB ile yapmak mümkündür. Buna karşılık MATLAB ın fonksiyon kütüphanesi sayesinde, FORTRAN ve diğer programlama dillerine göre MATLAB de daha az sayıda komutla çözüm üretmek mümkündür. Gerçekte MATLAB, M-dosyaları (M-files) olarak bilinen pekçok sayıda fonksiyon dosyalarından (alt-programlardan) ibarettir. M-dosyaları ASCII formatında olup okunabilirliği olan MATLAB programlama dili kodlarından oluşmuştur. Dolayısıyla M-dosyaları kütüphanesine, kullanıcı tarafından müdahale edilebilir. Ancak bu kodlara zorunlu kalmadıkça müdahale edilmemesi, kodların değiştirilmemesi gerekir. MATLAB temel bilimler ve mühendislik alanlarında sayısal hesaplama, veri çözümleri ve grafik işlemlerinde kullanılabilecek genel amaçlı bir program olmakla beraber, özel amaçlı modüler paketlere de sahiptir. CONTROL TOOLBOX, SIGNAL TOOLBOX gibi paket programlar CACSD (Bilgisayar destekli denetim sistemi tasarımı) paketler olup, bunlar denetim sistemlerinin tasarımında çok etkili araçlardır. Ayrıca WINDOWS ortamında çalışan SIMULINK, etkileşimli benzetim programlarının hazırlanması ve çalıştırılmasında büyük kolaylıklar sağlamaktadır. MATLAB ile Çalışmak * MATLAB, komut temelli bir programdır. Komut penceresinde (Command Window) >> şeklindeki prompt işaretinin bulunduğu satır, komut satırı olarak adlandırılır. Bu işaretin hemen yanında yanıp sönen I şeklindeki işaret, komut ve metin yazma cursor’u, yani imlecidir. Bu işaretin olduğu yerde klavyeden giriş yapılabilir ve enter tuşuna basılarak işlemler yürütülür. * MATLAB büyük ve küçük harf karakterlerini ayırt eden bir dildir. Buna göre, bir değişken TIME adı ile atanabilirken, diğer bir değişken time adı ile ve diğer başka bir değişken de Time adı ile atanabilir. Bu durumda bir karaktere birden fazla değer atamak mümkündür. * MATLAB de help < komut adı > ile istenilen yardıma ulaşılabilir. * Bir çalışma sırasında komut penceresi silinmek istenirse clc komutu kullanılır. clear komutu ise bellekte yer alan kullanıcı tarafından tanımlanmış tüm değişkenleri ve fonksiyonları siler. * save < dosya adı > komutuyla değişken kalıcı olarak saklanır; load < dosya adı > komutuyla değişken yürütülür; whos komutuyla değişkenler listelenir; clear < dosya adı > komutuyla saklanan değişken silinir. * Bilgisayarın sonsuz bir döngüye girdiği veya sonu gelmez gürünen veri görüntüleme ve yazdırma işlemleri gibi durumlarda komut icrasının kesilmesi gerekebilir. MATLAB ortamında bir komutun icrasını sona erdirmek için Ctrl+C tuşlarına aynı anda basmak gerekir. Bu durumda ^C iletisi karşımıza çıkar ve komut icrası kullanıcı tarafından sona erdirilmiş olur. 3

/A veya .56 c=3e-4 e=' Bir tamsayı giriniz: ' gibi.İfadeler (expressıons) MATLAB diğer programlama dillerinde olduğu gibi bir giriş (input) olarak çeşitli matematiksel ve metinsel ifadeler sağlar.alan ve A(i). . vektör. İfadeleri 4 ana grup altında inceleyebiliriz: * Sayılar (Numbers) * Değişkenler (Variables) * İşleçler (Operators) * Fonksiyonlar (Functions) MATLAB Temel Yazım Notasyonu (syntax) MATLAB de herşey bir dizi (array) olarak işleme konur. B = cat(2. dizilerde elemanları satır vektörü yapar. 4 . Dizi (array) işlemleri: . matris veya metinsel dizge (karakter dizisi) olabilir.C{:}). Noktalı virgül (. Örneğin C=A. Bir satıra sığmayan ifade veya verileri ekranda birebir izlemek için kullanılır. Virgül (comma) veya Ayırıcı (separator): Virgül..j) şeklinde bulunur. matrisleri altindislerine ve fonksiyonlarda da argümanları ayırmak için kullanılır. 3. Sayı gruplarını ayırmakta virgül (.25 veya . C= {1 2 3 4}. 6] ifadesinde x. Ondalık Nokta: 325/100. x=[0.325e1 hepsi aynı sayıyı ifade eder.alan. Yapısal Alan (field) erişimi: A. tek tırnaklar '…' arasında verilir.. Bir dizi. A = [C{:}]. satırın bir alt satırdan devam etmesini sağlar. şeklinde kullanılır.. Köşeli parantezler [ ]içindeki sayıların arasında virgül (.) olmalıdır.* . . a=3 b=-20. … Süreklilik (Continuation): Satır sonundaki üç nokta . işlemlerinde eleman-eleman işlem yapılır. * 1x1 dizisi skaler (scaler) veya metin dizgesi (string) gösterir. 2. MATLAB TA Kullanılan Belli Başlı Komut İşaretleri .j) = A(i. Köşeli parantezler [ ] içindeki sayı grupları arasında noktalı virgül (. Ebeveyn dizine geçiş gösterimi: Dizinler arasında ilk ana dizine geçiş yapmak için cd ..'. Metin dizgeleri (text string). 4. .j)/B(i. 1x4 boyutunda bir vektördür. . * nxm veya mxn dizisi bir matris (matrix) gösterir.) veya en az bir ya da daha fazla boşluk olmalıdır.) işareti matrisin sütunlarını ayırır./B matris işleminde C matris elemanları C(i. d=2+5*i * nx1 veya 1xn dizisi bir vektör (vector) gösterir. Eğer A yapısal veri değil ise virgülle ayrılmış bir liste üretir. A bir yapısal veri ise 'alan' adlı alanın içindekilere erişim gösterimidir. Ayrıca çok ifadeli satırlarda ifadeleri ve/veya komutları birbirinden ayırmak için de kullanılabilir.^ . Örnek olarak. skaler.) veya en az bir ya da daha fazla boşluk kullanılabilir.

Örneğin >> ! dir komutu varsayılan klasör içindekileri DOS işletim istemi formatında listeler.. Örneğin 1:2:100 ifadesi 1'den 100'e kadar 2 artımlı sayı dizisi gösterir. [ ] Köşeli parantez (bracket): İster bir vektör ister bir matris olsun dizi oluşturmada kullanılır. ' ' Tek tırnak (quote): Tek tırnaklar arasındaki herhangi bir metin (text). = = Mantıksal eşittir bağıntı (relational) işlemcisi.. ASCII koduna sahip karakterli bileşenleri olan bir vektördür. A'nın elemanlarını B'de saklar.den büyük bağıntı işlemcisi. Ayrıca bir ifade ve deyimin çıkışını yazdırmamak. komut ve program işleyişini etkilemeyen açıklamalara başlamak için kullanılır. Boşluk (blank) : Metin işlemlerinde veya ifadelerin arasında boşluk vermek için kullanılır. { } Süslü parantez ve altindeksleme: Özellikle yapı ve hücre veri tiplerinde kullanımı vardır. DOS işletim sisteminde yazılan bir komut gibi iş görür. çift tırnak tercih edilmelidir. Metin içinde kesme işaretini kullanmak istendiğinde ise. > . yani ekranda görüntülenmesini önlemek için de kullanılır.. <= …den küçük veya eşittir bağıntı işlemcisi.. ' Transpoze (transpose): X'. ( ) Parantez ve altindeksleme: Matematikten bildiğimiz gibi bir işlem topluluğu gösterir. Transpoze işlemi vektörlerde satır vektörünü sütun vektörüne veya sütun vekörünü satır vektörüne döndürür. X matrisinin karmaşık eşlenik devriğidir (kompleks konjuge transpose). Örneğin B = A. Örneğin. 5 . >>!dir& komutu ise listeleme işlemini ayrı bir DOS penceresinde yapar.. : Üstüste iki nokta veya Colon (Sütun) operatörü: Ardışıl sayı gösterimlerinde ve matris indekslemesinde kullanılır. % Yüzde (percent) Açıklama (comment): Yüzde sembolü. ! Ünlem işareti: ! işaretini izleyen herhangi bir yazı.den büyük veya eşittir bağıntı işlemcisi. ~ Mantıksal tamamlayıcı (complemet) NOT (değil) işlemcisi.den küçük bağıntı işlemcisi.' ise eşlenik olmayan (non-conjugate) transpozesidir. Yardım (Help) sistemi için çok gereklidir.' gibi. = Atama (assignment): Bildirimleri atamak için kullanılır. X.. Noktalı virgül (semicolon): Matris satırlarının sonlarını göstermek için köşeli parantez içinde kullanılır. ' Ali"nin Masası.. < . | Mantıksal OR (veya) işlemcisi. & Mantıksal AND (ve) işlemcisi. >= .

Komut Satırında Klavye Kısayolları ¯ ¬ ® ctrl-® ctrl-¬ home end esc del Ctrl-P Bir önceki satırı çağırır (Recall previous line) Ctrl-N Bir sonraki satırı çağırır (Recall next line) Ctrl-B İmleç bir karakter sola hareket eder (Move back one character) Ctrl-F İmleç bir karakter sağa hareket eder (Move forward one character) Ctrl-R Bir kelime sağa hareket eder (Move right one word) Ctrl-L Bir kelime sola hareket eder (Move left one word) Ctrl-A Satırın basına gider (Move to beginning of line) Ctrl-E Satırın sonuna gider (Move to end of line) Ctrl-U Geçerli satırı iptal eder yani tamamen siler (Clear line) Ctrl-D Bir karakter sola doğru siler (Delete character at cursor) backspace Ctrl-H Imlecten satırın başına kadar olan kısmı siler (Delete character before cursor) Ctrl-K Imlecten satırın sonuna kadar olan kısmı siler (Delete to end of line) Şimdi. doğrudan komut satırında yazacağımız örneklerle MATLAB kullanımına başlayalım… 6 .

2.4179e+024 = 2. b=x-y. c=2^3^4. f=x^y a= 3 b= -1 c= 2 d= 0. y=2. >> a=2^1/2. d=2^(3^4) a= 1 b= 1. 7 . c=x*y.BÖLÜM I >> % ARİTMETİK İŞLEMLER >> % ÖRNEK 1 >> x=1. d=x/y.4179 x 1024 demektir. a=x+y.5000 f= 1 >> % ÖRNEK 2 >> % İşlem sırasına dikkat edilmelidir.4179e+024 >> % Bilimsel notasyonda e harfi 10 un kuvvetini temsil eder. b=2^(1/2).4142 c= 4096 d= 2.

x= 0. 2 ve e tabanında tanımlanmıştır.5)*180/pi % Açı cinsinden.>> % RADYAN .5000 >> % Değeri 0. ln5. acosd.5000 x= 30. c=log(2). >> % sind. ln2. e=log(3/5) 8 .0000 >> % LOGARİTMA >> % 10 tabanında logaritma: log10(x) >> % 2 tabanında logaritma: log2(x) >> % e tabanında doğal logaritma (lnx): log(x) >> % MATLAB de taban işlemleri 10.9880 >> b=sin(30*pi/180).5 olan sinüs fonksiyonun açısını bulalım. cosd. >> a=sind(30). x=asind(0. tand. >> % ÖRNEK 4 >> % ln1. x= 30. cotd. % Radyan cinsinden açı değeri. a= -0. acotd… gibi. d=log(5). Diğer tabanlar için 10 tabanına dönüştürülerek bölme işlemi yapılır.5236 >> x=asin(0. ln10.DERECE DÖNÜŞÜMÜ >> % ÖRNEK 3 >> a=sin(30). asind. >> x=asin(0. ln3/5 değerlerini bulalım. b=log(10).5) % Radyan cinsinden. >> a=log(1). % Derece cinsinden açı değeri. atand. b= 0.5) a= 0.0000 >> % Açı değerlerini derece cinsinden kullanmak için trigonometrik fonksiyonların sonuna d ekleyebiliriz.

e=log10(3/5) a= 0 b= 1 c= 0. log10.6094 e= -0.3010 d= 0. 2'yi. d=log10(5). 10'u ve 3/5'i bulalım.6990 e= -0. b=log10(10). 9 .2218 >> % ÖRNEK 6 >> % logaritma 2 tabanında 0'ı. 1'i. log2. log5.6931 d= 1. log3/5 değerlerini bulalım. c=log10(2). >> a=log10(1).5108 >> % ÖRNEK 5 >> % log1.3026 c= 0.a= 0 b= 2.

3219 e= -0.8221 10 . c=log2(2). b=log2(1).3679 ans = 1 ans = 2. exp(3/5) ans = 0. d=log2(10). 3 tabanı tanımlı olmadığı için 10 tabanı ile işlem yapacağız. exp(x).7183 ans = 1.>> a=log2(0).7370 >> % ÖRNEK 7 >> % logaritma 3 tabanında 12'yi bulalım. abs(x) şeklindedir.71828) üssü x karekök x x in mutlak değeri x^n. a= -Inf b= 0 c= 1 d= 3. exp(0). sqrt(x). >> % log312 = log1012 / log103 dür. >> % ÖRNEK 8 >> exp(-1). e=log2(3/5) Warning: Log of zero. exp(1).2619 >> % >> % >> % >> % x üssü n e (e= 2. >> a=log10(12)/log10(3) a= 2.

sqrt(0).7321 >> % ÖRNEK 11 >> % e= 2. e^pi.2026e+004 ans = 23. >> % e= exp(1) değişken ataması yapılabilir. e ile işlem yapabilmek için. abs(sqrt(3)-1) ans = 5 ans = 0. sqrt (3/5) ans = 0 + 1.4592 11 .7183 ans = 2. sqrt(1). e^10.0000i ans = 0 ans = 1 ans = 0.71828 sayısı MATLAB de tanımlı değildir.7746 >> % ÖRNEK 10 >> abs(-5). pi^e e= 2.>> % ÖRNEK 9 >> sqrt(-1). >> >> e=exp(1).1407 ans = 22.

ans = 3 >> % ÖRNEK 13 >> % >> % >> % >> % >> % Karmaşık sayıların kutupsal gösterimini bulabilmek için verilen sayının mutlak değerini ve faz açısını (derece cinsinden) bulmamız gerekir. ans = 0.>> % KARMAŞIK SAYILAR >> % ÖRNEK 12 >> % y= 2 + 3i için >> y=2+3i y= 2. Burada mutlak değer r=IyI=sqrt(a2+b2). % Karmaşık sayının reel kısmı. % karmaşık sayının modülü (mutlak değeri veya genliği). % Karmaşık sayının sanal kısmı. 12 . yani sqrt(a^2+b^2) ans = 3. faz açısı Ѳ=arctan(b/a) dır. y=1+i sayısını kutupsal eşdeğerini bulalım. y=a+bi = r(cosѲ + isinѲ) dır.0000i >> abs(y). % Karmaşık sayının radyan cinsinden faz açısı. ans = 2.3099 >> conj(y).3.6056 >> angle(y). ans = 56.0000 .0000 + 3.0000i >> real(y). % Karmaşık sayının derece cinsinden faz açısı.9828 >> angle(y)*180/pi. % Karmaşık sayının eşleniği. ans = 2 >> imag(y).

>> % ÖRNEK 14 >> fix(-6. ans = -7 >> ceil(-6. >> % YUVARLATMA İŞLEMLERİ >> % Yuvarlatma işlemleri: fix.1) % ceil: artı sonsuza doğru en yakın tam sayıya yuvarlatma yapar.1) % fix: sıfıra doğru en yakın tamsayıya yuvarlatma yapar. ans = 1.0000 + 1. ceil.>> y=1+i y= 1. ans = 45 >> % Sonuç. y= 1+i= 1. floor.0000i >> abs(y). ans = -6 >> round(-6. ans = -6 13 .1) % floor: eksi sonsuza doğru en yakın tam sayıya yuvarlatma yapar. ans = -6 >> floor(-6.4142(cos45 + isin45) olur. round fonksiyonları ile yapılır. % Derece cinsinden faz açısı.1) % round: en yakın tam sayıya yuvarlatma yapar. % Mutlak değeri.4142 >> angle(y)*180/pi.

31 5.5] d= Columns 1 through 5 0.y) fonksiyonu kullanılır.3100 Column 11 5. geomean.5000 1.3400 2.3400 >> length(d) % Veri sayısını bulur.5000 1.15) ans = 4 >> % TEMEL İSTATİKSEL İŞLEMLER >> % Temel istatiksel işlemler: max. >> d=[0.0000 6. mean.5 4.04 5 6.5000 >> max(d) % En büyük değeri bulur.0400 5. ans = 0.>> % KALAN BULMA >> % ÖRNEK 15 >> % Kalan bulma işlemleri için mod(x.0000 3. std. prod. min. sort >> % ÖRNEK 16 >> % Bir deneyin sonuçlarını d değişkenine vektör olarak girip inceleyelim.5000 >> min(d) % En küçük değeri bulur.0000 0. ans = 11 14 . length.5 1 0.0 3. sum.5 1.1400 Columns 6 through 10 3. ans = 6. median. >> % 79 un 15 e bölümünden kalanı bulalım.5000 4.34 2. >> >> mod(79.14 3. harmmean.

0400 4.3400 0.8300 >> prod(d) % Verileri çarpar. ans = 1. ans = 2.1272 >> mean(d) % Aritmetik ortalamayı alır.0946 >> harmmean(d) % Harmonik ortalamayı alır. 15 .5000 3.9845 >> geomean(d) % Geometrik ortalamayı alır.0000 1.0000 Columns 10 through 11 5. ans = 2.5000 1. ans = 3. ans = 32. ans = Columns 1 through 9 0.5000 6.1400 2.3100 5.0000 3. Bunun için factor fonksiyonunu kullanabiliriz.>> sum(d) % Verileri toplar.5000 >> % ASAL ÇARPANLARA AYIRMA >> % ÖRNEK 17 >> % 187 nin asal çarpanlarını bulalım. ans = 2.2719 >> sort(d) % Verileri küçükten büyüğe doğru sıralar.4042e+003 >> std(d) % Formülüne göre standart sapmayı bulur.

ans = 11 17 >> % KESİRLİ GÖSTERİM >> % ÖRNEK 18 >>% 12/96 değerini hem ondalıklı hem de kesirli olarak ifade edelim. >> >> 12/96 ans = 0. % Sonuçları kesirli gösterir.1250 >> format rat >> a a= 1/8 >> % OBEB-OKEK >> % ÖRNEK 19 >> % Ortak bölenlerin en büyüğü obeb için gcd fonksiyonu. Varsayılana tekrar dönmek için >>format komutu yazılmalıdır. ortak katların en küçüğü okek için lcm fonksiyonu >> % kullanılır. okek30_24=lcm(30. Örneğin 30 ve 24 ün obeb ini ve okek ini bulalım. >> % n!=prod(1:n) şeklindedir.24). 16 .>> factor(187) % 187 nin asal çarpanlarını bulur.24) obeb30_24 = 6 okek30_24 = 120 >> % FAKTÖRİYEL >> % ÖRNEK 20 >> % Faktöriyel hesapları için prod fonksiyonu kullanılabilir. >> obeb30_24=gcd(30.

Inverse sine.Cosecant. asech . cos . atan . atanh .Sine.Hyperbolic tangent.>> % 15!/(9!-5!) ifadesinin sonucunu bulalım. acsc .Tangent of argument in degrees.Sine of argument in degrees. result in degrees.Inverse cosine. asin .Inverse sine. acscd . sin . cosh .Hyperbolic cosecant. cscd .Inverse secant.Hyperbolic cosine.Inverse hyperbolic secant. tan .Cosine of argument in degrees.Inverse cosecant.Cosine.Inverse hyperbolic cosecant. atan2 .Inverse cosine. asind . secd . sinh .Secant. >> help elfun Elementary math functions.Inverse tangent.Inverse hyperbolic cosine.Secant of argument in degrees. result in degrees. sech .Inverse tangent.Inverse hyperbolic tangent. atand .Tangent. csch . tanh . >> prod(1:15)/(prod(1:9)-prod(1:5)) ans = 3.Inverse cosecant. result in degrees.Cosecant of argument in degrees.Hyperbolic sine. tand .Inverse hyperbolic sine. Trigonometric. acos . sind .Hyperbolic secant. asinh . 17 . result in degrees.Four quadrant inverse tangent. acosh . asec . cosd . acsch . result in degrees. csc . asecd .6048e+006 >> % NOT: MATLAB de temel (elemanter) matematiksel fonksiyonların listesi için >> % >>help elfun komutu kullanılır.Inverse secant. acosd . sec .

angle . log .cot . unwrap .Sort numbers into complex conjugate pairs.Complex real part. result in degrees. complex .Cotangent. hypot .Base 2 logarithm and dissect floating point number.Absolute value.Exponential. realpow . cotd . log1p . abs .Compute exp(x)-1 accurately. acot . imag .Inverse cotangent.Next higher power of 2.Complex imaginary part. coth . isreal .Square root.Remainder after division.Base 2 power and scale floating point number.Real n-th root of real numbers. acoth .Round towards minus infinity. Exponential. exp . log10 .Power that will error out on complex result.Compute log(1+x) accurately. floor . realsqrt .Construct complex data from real and imaginary parts. fix .Round towards zero. log2 .True for real array.Signum. mod . expm1 .Natural logarithm of real number.Natural logarithm. 18 . rem . round . nextpow2 .Common (base 10) logarithm.Square root of number greater than or equal to zero. cplxpair .Hyperbolic cotangent. pow2 .Inverse hyperbolic cotangent.Modulus (signed remainder after division). Rounding and remainder. acotd .Inverse cotangent. ceil . nthroot .Round towards nearest integer. real .Complex conjugate. sqrt . Complex.Round towards plus infinity. conj .Square root of sum of squares. sign .Unwrap phase angle.Cotangent of argument in degrees. reallog .Phase angle.

>>% ÖRNEK 1 >>% q= ò f (x)dx integrali için nümerik sonucu quad fonksiyonu ile bulabiliriz. 0 >> quad('sin(x). >>% quad fonksiyonu 10-6 hata ile f(x) fonksiyonunun a ile b arasındaki integraline yaklaşır.5000 19 .log(5)) ans = 8. simgesel olarak int fonksiyonu ile hesaplanabilir.1. bir fonksiyon grafiğinin altındaki alanı bulmak için kullanılan sayısal bir yöntemdir.BÖLÜM II >>% İNTEGRAL HESAPLARI >>% İntegral.a. (nokta) şeklinde kullanılır. >> quad('exp(2*x)'. sonuç belirli ise. >>% MATLAB de integral işlemleri. 1 ò 2 >> quad('x. a b >>% quad fonksiyonunun genel formatı q= quad(‘f(x)’. sayısal (nümerik) olarak quad fonksiyonu ile sonuç >>% belirsiz ise.8055 >>% ÖRNEK 3 p /2 >>% ò sin x cos xdx integralini hesaplayalım.b) şeklindedir.1.3333 >>% ÖRNEK 2 ln5 % Fonksiyonda değişkenler .2) ans = 2. >>% q= x 2 dx belirli integralinin sonucunu sayısal olarak quad fonksiyonu ile bulalım.pi/2) ans = 0.^2'. >>% òe 1 2x dx integralini hesaplayalım.0.*cos(x)'.

^2+3))/((x. 0 1 >> quad('(2*x.xmin. 20 .1.*(x. >>% q=dblquad(‘f ‘.^2'. >> quadv('(2*x.1667 >>% ÖRNEK 5 >>% 2 x( x 2 + 3) ò ( x 2 + 3)2 + 1 dx integralini hesaplayalım.0.^2+1)'. y max >>% dblquad fonksiyonunun genel formatı q= y min ò x max x min ò f ( x.1) ans = 0. Error in ==> quad at 79 if ~isfinite(y(7)) >>% Görüldüğü gibi hata verdi. xmax.^2+3).^2+1)'. Çünkü quad adaptif tekrarlı Simpson kuralını >>% (eğrisel alan toplamı yaklaşımı) kullanan düşük dereceli bir yöntemdir.^2+3).0. dblquad fonksiyonu kullanılır.2) ans = 0. ymax) şeklindedir.^2+3))/((x./(x+1).*(x.2653 >>% ÖRNEK 6 >>% İki katlı integral hesabında ise.1) ??? Index exceeds matrix dimensions. >>% Burada daha yüksek dereceli bir yöntem olan quadv yi kullanmamız gerekir. >> quad('1. ymin.>>% ÖRNEK 4 >>% ò ( x + 1) 1 2 1 2 dx integralini hesaplayalım. y )dxdy ise.

x.b) şeklindedir.'x') ans = -1/3*x^6-2*x^2+20*x >> syms x >> int(-2*x^5-4*x+20.4 x + 20) dx integralini hesaplayalım. >> int('-2*x^5-4*x+20'. >>% ÖRNEK 7 >>% Simgesel integral hesaplamalarında sayısal (nümerik) sonuç yerine değişkene göre sonuç elde edilir.b) ò f (x)dx ise.pi) ans = -9. q=int(f. >>% ò ( -2 x 5 .8696 >>% NOT: Üç katlı integral hesabında ise.x) ans = -1/3*x^6-2*x^2+20*x 21 .a.p >>% ò ò 0 2p p ( y sin x + x cos y ) dxdy integralini hesaplayalım. >>% NOT: Yukarıda verilen quad fonksiyonu yerine int fonksiyonu kullanılarak hem belirli >>% hem de belirsiz integral işlemleri yapmak mümkündür. >>% Kullanılacak fonksiyonlar >>help symbolic ile görülebilir. >>% MATLAB simgesel işlemlerde “Symbolic Math Toolbox” ı kullanır. >>% int fonksiyonunun genel formatı q= >>% q=int(f.2*pi. a b f(x) fonksiyonunun x ‘e göre a’dan b’ ye belirli integralini alır.pi. >>syms değişken1 değişken2 … >>% Simgesel işlemlerde kullanılacak değişkenlerin >>% şeklinde önceden bildirilmesi gerekmektedir. benzer olarak triplequad fonksiyonu kullanılabilir.a.x. >>% Aksi takdirde fonksiyonlar ve değişkenler tek tırnakların ' … ' arasında girilmelidir >>% MATLAB de simgesel integral alma fonksiyonu int dir. >>% ya da aynı sonuç aşağıdaki gösterimle de bulunabilir. >> dblquad('y*sin(x)+x*cos(y)'.0.

sonucu sadeleştirir.1/2 --------------------3t-1 >>% x2e3tx dx ò integralini hesaplayalım. exp(3 t x) (9 t 2 x 2 .1) x) .1/2 ---------------------3t+1 >>% ÖRNEK 9 cos((3 t .x) ans = 1/27/t^3*(9*t^2*x^2*exp(3*t*x)-6*t*x*exp(3*t*x)+2*exp(3*t*x)) >> simple(ans) ans = 1/27*exp(3*t*x)*(9*t^2*x^2-6*t*x+2)/t^3 >> pretty(ans) % simple(ans) fonksiyonu.6 t x + 2) 1/27 ------------------------------------------t3 22 . >> syms x t >> int(x^2*exp(3*t*x). sonucu daha anlaşılır gösterir.cos xdx integralini hesaplayalım.>>% ÖRNEK 8 >>% ò sin3tx. cos((3 t + 1) x) . >> syms x t >> int(sin(3*t*x)*cos(x).x) ans = -1/2/(3*t+1)*cos((3*t+1)*x)-1/2/(3*t-1)*cos((3*t-1)*x) >> pretty(ans) % pretty(ans) fonksiyonu.

xmin. >> int('exp(-a*x^2)'.y.y. xmax). >> syms x y >> int(int(y*sin(x)+x*cos(y).>>% ÖRNEK 10 ¥ .pi.x.pi) ans = -pi^2 >>% ÖRNEK 12 2 x( x 2 + 3) >>% ò 2 dx integralini quad v ve int fonksiyonları ile hesaplayalım.x. 1 23 .2*pi). otherwise]) >> syms x a >> int(exp(-a*x^2).0. y max >>% q = p y min ò x max x min ò f ( x.x. int fonksiyonunun kullanımı daha kullanışlı gözükmektedir.'x'. >>% Önce içerideki sonra dışarıdaki integral işlemi uygulanır. q=int(int(f.ymin. csgn(a) = 1]. y )dxdy ise.[Inf.inf) ans = PIECEWISE([1/a^(1/2)*pi^(1/2). >>% ò ò 0 2p p ( y sin x + x cos y )dxdy integralini hesaplayalım.ax ò e dx 2 >>% -¥ integralini hesaplayalım.-inf. >>% ya da aynı sonuç aşağıdaki gösterimle de bulunabilir. 2 0 ( x + 3) + 1 >>% Sonuçları karşılaştıralım.-inf. ymax) şeklindedir.inf) ans = 1/a^(1/2)*pi^(1/2) >>% ÖRNEK 11 >>% Çok katlı integrallerde iç içe int fonksiyonu kullanılabilir.

^2+3). dereceden türevini alıp. dereceden >>% türevini alır.t.*(x.1) ans = 0. daha genel olarak diff(f. >>% MATLAB de türev işlemleri simgesel mantık çerçevesinde çalışan diff fonksiyonu ile yapılır.0. >> syms x a b >> diff(5*x^3+a*x^2+b*x-14. >>% diff(f.1) ans = 1/2*log(17)-1/2*log(2)-1/2*log(5) >> sonuc=1/2*log(17)-1/2*log(2)-1/2*log(5) sonuc = 0.>> quadv('(2*x.2653 >> syms x >> int((2*x*(x^2+3))/((x^2+3)^2+1).3) fturev3 = -26*exp(t)*cos(3*t)+18*exp(t)*sin(3*t) >>% ya da aynı sonuç aşağıdaki gösterimle de bulunabilir.'x') ans = 15*x^2+2*a*x+b % Sayısal sonuç için 24 . x bağımsız değişkenine göre f(x) fonksiyonunun değişim oranı >>% olarak tanımlanır. >>% ÖRNEK 13 >>% f(x)= 5x3+ax2+bx-14 (a.2653 >>% TÜREV >>% Bir f(x) fonksiyonunun türevi.0.x.x. Pek çok fiziksel süreç (hız.^2+1)'. >> syms t >> fturev3=diff(exp(t)*cos(3*t). t=-2 deki değerini bulalım.x) ans = 15*x^2+2*a*x+b >>% ÖRNEK 14 >>% f(t)=et cos(3t) fonksiyonunun 3. ivme gibi) bir değişkenin değişim oranının ölçüsüdür.b sbt) fonksiyonunun türevini alalım. >> diff('5*x^3+a*x^2+b*x-14'.x) f nin x e göre türevini.^2+3))/((x.n) f nin x e göre n.

grafiğini çizdirelim.>> tdegeri=subs(fturev3. >> syms x >> fturev=diff(1/(1+5*cos(x)).3) fturev = 750/(1+5*cos(x))^4*sin(x)^3+150/(1+5*cos(x))^3*sin(x)*cos(x)-5/(1+5*cos(x))^2*sin(x) >> ezplot(fturev) % ezplot iki değişkenli bir fonksiyonun grafiğini çizer.'left') >> % x®a + lim f ( x) için sonuç limit(f.x. 25 .6979 >>% ÖRNEK 15 % Türev değerini subs fonksiyonu hasaplar: türevde t yerine -2 yazarak.x.'right') şeklinde hesaplanabilir.a. >>% f(x)=1/1+5cosx fonksiyonunun 3. dereceden türevini bulup.x. Örnek 6) >>% LİMİT >>% MATLAB de limit alma işlemleri simgesel mantık çerçevesinde limit fonksiyonu ile yapılır.-2) tdegeri = -2.t. >>% lim f ( x) x®a x ®a - için sonuç limit(f.a.a) >> % lim f ( x) için sonuç limit(f.x. (Bkz: Bölüm IV.

0.x.inf) ans = 0 >> syms x >> limit(x^2*exp(-x). b=limit(1/x.x.'right') >> syms x a= NaN b= -Inf c= Inf >>% ÖRNEK 17 >>% lim( x 2e .0).3 >> syms x >> limit((x-2)/(sqrt(4*x+1)-3). >> a=limit(1/x.inf) ans = 0 >>% ÖRNEK 18 >>% lim x®2 x-2 ifadesini hesaplayalım.x. c= lim limitlerini hesaplayalım. NaN (Not a Number)’a dönderilecektir.0.x.x. >>% ya da aynı sonuç aşağıdaki gösterimle de bulunabilir.x.2) ans = 3/2 26 . c=limit(1/x. x ®0 x x ®0 . >> limit('x^2*exp(-x)'.x x ®0 + x >>% Belirsiz limit durumunda sonuç. b= lim .>>% ÖRNEK 16 >>% a= lim 1 1 1 . 4x + 1 .x ) x ®¥ ifadesini hesaplayalım.'left').

a) ans = a^2 27 . >> limit(sin(3*x)^3/cos(3*x)^2.3a ) ifadesini hesaplayalım.'right') >> syms x ans = 0 >>% ÖRNEK 20 >>% x3 .x.x.>>% ÖRNEK 19 >>% sin 3 3x lim x ®p + cos 2 3 x ifadesini hesaplayalım.pi. >> syms x a >> limit((x^3-a^3)/sin(3*x-3*a).a 3 lim x ® a sin(3 x .

% % Burada n ilk değer ile son değer arasındaki nokta sayısıdır. Eşit aralıklı elemanlar kullanarak. Doğrudan köşeli parantez […] >>% kullanarak. c. sütun notasyonu ‘ : ’ kullanarak ya da linspace veya >>% logspace komutlarıyla. 3. Ancak transpoze alınacağı zaman % % parantezle veya köşeli parantezle gösterim kullanılmalıdır. 1xn uzunluktaki diziye satır vektörü. randn. 2. iki nokta arası doğrusal olarak 100 eşit parçaya bölünür.5) . rand. MATLAB de vektörler üç temel yoldan oluşturulabilir: a.5. >> x=[ 1. n) fonksiyonu kullanarak. x= 1 2 3 4 5 % Sütun notasyonu ilkdeğer : n : son değer % >> x=1:5 % kullanarak. (n artış miktarı yazılmadığında varsayılan değer 1 dir. x= 1 2 3 4 5 % linspace(ilk değer. 5 elemanlı bir satır vektörüdür. 4. mx1 uzunluktaki diziye ise sütun >>% vektörü denir. x= 1 2 3 4 5 28 >> x=linspace(1. elemanlar arası boşluk bırakarak. son değer. 5 ] % Köşeli parentez içinde. % % Eğer n değeri belirtilmezse.) % % x=1:5 =[1:5]= (1:5) gösterimleri eşdeğerdir. x vektörünün gösterim >>% şekilleri aşağıdaki gibidir: >> x=[ 1 2 3 4 5 ] x= 1 2 3 4 5 % Köşeli parentez içinde. ones. b.BÖLÜM III >>% VEKTÖRLER >>% VEKTÖR GÖSTERİMLERİ >>% Vektör. >>% ÖRNEK 1 >>% x=[ 1 2 3 4 5 ] vektörü 1x5 uzunluğunda. zeros fonksiyonlarıyla. kısaca tek boyutlu dizidir. elemanlar arası virgül kullanarak.

2.4.5] x= 1 2 3 4 5 % Köşeli parentez içinde elemanları noktalı virgülle ’.’ ayırarak. linspace ve logspace fonksiyonları grafik çizimlerinde kolaylık sağlar. 10ilk değer ile 10son değer arası logaritmik olarak eşit aralıklı 50 satır >> % vektörü oluşturulur. Görüldüğü gibi logspace. x in gösterim şekilleri aşağıdaki >>% gibi olurdu: >> x= [ 1 2 3 4 5] x= 1 2 3 4 5 >> x=[1. logaritmik ölçekte linspace fonksiyonunun rolünü >> % oynamaktadır. n) fonksiyonu ise. son değer. iki nokta arasında logaritmik aralıklı bir vektör >> % üretir. Eğer n değeri belirtilmezse. 29 .>> % NOT: logspace(ilk değer.3. % Köşeli parentez içinde alt alta yazımla. >>% Eğer x vektörü 5x1 uzunluğunda 5 elemanlı bir sütun vektörü olsaydı.

>>% rand fonksiyonunun genel sözbiçimi. 30 . f= a+(b-a)*rand(m. f= mu + sigma*randn(m. Sadece rand >>% fonksiyonu kullanıldığında 0 ile 1 arasında rasgele sayılar üretilir. >>% Deneme amaçlı bazı durumlar için rasgele sayılı vektörler üretmek gerekebilir.n) şeklinde olup. mu ortalama değerine ve sigma standart sapma değerine sahip bir >>% dağılımdan (Gauss dağılımından) normal rasgele sayılardan oluşur. >>% Bu fonksiyonlar her çağırılışlarında farklı sayılar üretilecektir. >>% randn fonksiyonunun genel sözbiçimi ise. >>% Sadece randn fonksiyonu kullanıldığında ortalaması 0 ile standart sapması 1 olan Gauss dağılımından >>% rasgele sayılar üretilir. burada üretilen >>% mxn boyutundaki f vektörü. % sonra satır vektörünün transpozesini alarak (yani sütun vektörüne dönüştürerek). burada üretilen mxn >>% boyutundaki f vektörü.n) şeklinde olup.>> x=1:5 x= 1 >> x' ans = 1 2 3 4 5 2 3 4 5 % Önce satır vektörünü oluşturup. Bunun için rand veya >>% randn fonksiyonları kullanılır. a ile b sayıları arasında düzenli dağılmış rasgele sayılardan oluşur.

>> f=2+5*randn(1.2527 1. ans = -1.2316 2.6267 3.1) f= -0.(sütun vektörü olsun) >> f=-1+2*rand(2.>>% ÖRNEK 2 >>% a=1 ile b=5 sayıları arasında rasgele 7 tane sayı üretelim.4384 % Sadece rand fonksiyonu 0–1 arasında rasgele sayılar üretir.0394 >>% Benzer olarak.3279 2.4115 Columns 6 through 7 4. >> randn % Sadece randn fonksiyonu kullanıldığında ortalaması 0 ile standart sapması 1 olan % % Gauss dağılımından rasgele sayılar üretilir.(satır vektörü olsun) >> f=1+4*rand(1.1628 -6.4) f= -0.6411 4.7) f= Columns 1 through 5 4.8381 >>% ÖRNEK 3 >>% mu=2 ve sigma=5 için 4 elemanlı bir satır vektörü üretelim.1465 31 .5746 1.6676 2. a=-1 ile b=1 sayıları arasında rasgele 2 tane sayı üretelim.3443 >> rand ans = 0.5947 0.

6250 -0. v vektörünün boyutunu verir. v vektörünün 5.1250 0 0. zeros ile elemanları 0 dan oluşan vektörler üretilir.8750 1.7500 0.2500 -0.0000 >> size(v) ans = 1 17 >> v(5) ans = -0. >> v=-1:.5000 % size(v).2500 0.0000 -0.5000 -0. 32 .8750 -0.125 artımlı bir vektör (dizi) üretip.5000 0.1250 0. >> v_dort=ones(1. v vektörü 1x17 uzunluğundadır.4) v_dort = 1 1 1 1 >> f_dotr=zeros(1.6250 0.3750 Columns 13 through 17 0.3750 Columns 7 through 12 -0. bu vektörü inceleyelim.>>% ÖRNEK 4 >>% ones ile elemanları 1 den oluşan.125:1 v= Columns 1 through 6 -1. elemanı. % v(5).7500 -0.4) f_dort = 0 0 0 0 >>% TEMEL VEKTÖR İŞLEMLERİ >>% ÖRNEK 5 >>% -1 ile 1 arasında 0.

terimi).8750 1.7500 -0.5000 0.1250 -0.7500 0.>> v(end-2) ans = 0. 33 .6250 Columns 7 through 9 0.5000 0.3750 0.6250 -0.1250 0.0000 >> (3*v/2)' ans = -1.3750 % v vektörünün her bir elemanının 3 katının yarısının sütun vektörü şeklinde gösterimi. -1.6250 0. Columns 1 through 6 0 0.7500 -0.9375 -0.5000 >> v(end-4:end) ans = % v vektörünün son 5 terimi.3125 -1.8750 1.0000 >> v(9:end) ans = % v vektörünün 9.5000 -1. >> v(1:5) ans = % v vektörünün ilk 5 terimi.8750 -0.0000 -0. terimi (yani baştan 15. teriminden son terimine kadar olan değerleri.2500 0.5625 -0.7500 0.7500 % v vektörünün sondan (son değer dahil) 3. 0.

7500 0.*b c= 3 2 8 15 % İki vektörün karşılıklı elemanlarının çarpımı (elemanter çarpım-sonuç vektördür). >> c1=a. >> t=(2*a)+(3*b) t= 11 -7 14 19 % Skaler sayılarla vektörlerin çarpımı ve oluşan yeni vektörlerin toplamı. >> b=[3 -1 2 3]. >> c2=a*b' c2 = 28 % Satır vektörüyle sütun vektörünün çarpımı (iç çarpım=skaler çarpım-sonuç skalerdir). 34 . >> a=[1 -2 4 5].3750 0.1875 0.-0.3125 1.9375 1.1250 1.5000 >>% ÖRNEK 6 >>% iki vektör tanımlayıp işlemler yapalım.1875 0 0.5625 0.

>> toplam=sum(t.0000 1.5000 16. 1. 3 -6 12 2 -4 8 12 -4 15 -5 10 15 >> b1=a.4278e+156 35 .0000 2.3333 2.^2)./b b1 = % a vektörünün her bir elemanı b vektörünün her bir elemanına bölünmüştür (sağa bölme). carpim=prod(t.6667 >> b2=a.5000 0.\b b2 = % b vektörünün her bir elemanı a vektörünün her bir elemanına bölünmüştür (sola bölme).>> c3=a' *b c3 = 3 -1 -6 2 % Sütun vektörüyle satır vektörünün çarpımı (dış çarpım-sonuç kare matristir). 0.0000 >> % NOT: MATLAB de nokta işaretli işlemler. yani dot işlemleri eleman eleman (elemanter) işlem yapılacağını gösterir. >>% ÖRNEK 7 >>% 1 den 100 e kadar tek sayıların kareleri toplamını ve çarpımını bulalım >> t=1:2:100.0000 125.0000 0. 3.^2) toplam = 166650 carpim = 7.0000 -0.6000 >> u=a.5000 0.^b u= % a vektörünün her bir elemanının b vektörü karşılığındaki üssü alınarak oluşan vektör.

randn gibi utility fonksiyonları >>% kullanarak. ones. paskal.0000 2. sağ sütunlarda sırasıyla sayıların tersi ve kareköklerini >>% gösterelim.0000 0.2500 2.0000 1.2000 2. bulalım. tersi=1. >> size(s) ans = 1 38 >>% 38 tane sayı vardır >>% MATRİSLER >>% MATRİS GÖSTERİMLERİ >>% Matrisler mxn uzunlukta 2 boyutlu dizilerdir.5000 1. >> goster=[sayi.0000 5. rand. Özel matrisler. 2.0000 1. 36 .0000 0. 3. tersi.4142 3.7321 4.0000 0.>>% ÖRNEK 8 >>% 1 den 5 e kadar olan sayılar için sol sütunda sayı. hilbert ve buna benzer fonksiyonlar kullanarak. Doğrudan köşeli parentez kullanarak./sayi. zeros. >> sayi=1:5. eye.2361 >>% ÖRNEK 9 >>% 0 ile 300 arasında 8 ile tam bölünen kaç sayı vardır. karekoku]' goster = 1.0000 0. MATLAB de matrisler 3 temel yoldan oluşturulabilir: >>% 1. >> s=0:8:300. karekoku=sqrt(sayi).3333 1.

a= 1 2 1 2 4 3 3 6 7 >> a=[ 1 2 3 2 4 6 1 3 7] a= 1 2 1 2 4 3 3 6 7 >>% ÖRNEK 11 >>% eye(n. 2 4 6. elemanlar arasında boşluk(virgül de kullanılabilir) % bırakıp. zeros fonksiyonu da bütün elemanları 0 lardan oluşan >>% matrisler üretir.3) ans = 1 0 0 0 1 0 0 0 1 >>% ones fonksiyonu bütün elemanları 1 lerden.>>% ÖRNEK 10 >>% a=[ 1 2 3. 1 3 7 ] % Köşeli parentez içinde. Köşegeni 1 lerden diğer elemanları 0 lardan oluşan birim matris oluşturur.n) fonksiyonu 1. 37 . >> eye(3. satırları noktalı virgülle ayırarak.

>> ones(3,3) ans = 1 1 1 1 1 1 1 1 1

>> zeros(3,3) ans = 0 0 0 0 0 0 0 0 0

>>% ÖRNEK 12 >>% rand fonksiyonunun genel sözbiçimi, f= a+(b-a)*rand(m,n) şeklinde olup, burada üretilen mxn >>% boyutundaki f matrisi, a ile b sayıları arasında düzenli dağılmış rasgele sayılardan oluşur. Sadece rand >>% fonksiyonu kullanıldığında 0 ile 1 arasında rasgele sayılı matrisler üretilir. >>% randn fonksiyonu ile rasgele matris üretmek pek yaygın değildir. >>% a=-5 ile b=5 sayıları arasında, rasgele sayılı 2x4 boyutunda matrisler üretmek için; >>% f= -5 + 10*rand(2,4) f= 4.5013 1.0684 3.9130 -0.4353 -2.6886 -0.1402 2.6210 -4.8150

>>% 0 ile 1 arasında rasgele sayılı 3x2 boyutunda matrisler üretmek için; >>% rand(3,2) ans = 0.8214 0.7919 0.4447 0.9218 0.6154 0.7382

38

>>% ÖRNEK 13 >>% pascal(k) fonksiyonu k. sıraya kadar pascal üçgeninin elemanlarından oluşan kxk boyunda bir matris >>% oluşturur. >> pascal(4) ans = 1 1 1 1 1 2 3 1 3 1 4

6 10

4 10 20

>>% magic(k) fonksiyonu kxk boyunda 1 den k ya kadar sayılardan oluşan (k=2 hariç) eşit satır, sütun ve >>% köşegen toplamına sahip bir kare matris oluşturur.

>> magic(3) ans = 8 3 4 1 5 9 6 7 2

>>% hilb(k) fonksiyonu kxk boyunda her bir elemanı 1/(i+j-1) ile belirlenen ve hilbert matrisi olarak >>% adlandırılan bir kare matris oluşturur.

>> hilb(3) ans = 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000

39

>>% [X,Y]=mesgrid(x,y) fonksiyonu x ve y vektörlerini, X ve Y matrislerine dönüştürerek, özellikle 3 boyutlu >>% grafik çizimleri için bir veri ortamı hazırlar. >>% -2 ile 2 arasında 1 artımlı X ve Y matrislerini oluşturalım. >> [X,Y]=meshgrid(-2:2,-2:2) X= -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 Y= -2 -2 -2 -2 -2 -1 -1 -1 -1 -1 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2

>>% TEMEL MATRİS İŞLEMLERİ >>% ÖRNEK 14 >> A=[-2 3; 4 1], k=3 A= -2 4 k= 3 3 1 % A matrisi ve k skaler sayısını ele alalım.

>> A+k ans = 1 7 6 4

% A+k=k+A dır. A matrisinin her bir elemanı k sayısı ile toplanır.

40

5080 19.6667 1. Matrix dimensions must agree. 1 -2 >> A*k ans = -6 12 9 3 % A*k=k*A dır.3333 % A matrisinin her bir elemanı k sayısına bölünür.5186 % k sayısı A matrisinin her bir elemanını üs olarak logaritmik işleme alır. A matrisinin her bir elemanı ile k sayısı çarpılır. A matrisinin her bir elemanından k sayısı çıkarılır.>> A-k ans = -5 0 % A-k=-(k-A) dır.3440 25. >> A^k ans = -44 45 60 1 % A matrisi yan yana k kere çarpılır: A*A*A >> k^A ans = 11.0106 14. >> A\k ??? Error using ==> mldivide % Boy uyuşmazlığı vardır.3333 0.0000 1. >> A/k ans = -0. 41 .

??? Error using ==> mrdivide Matrix dimensions must agree.3333 0. A matrisinin her bir elemanı k sayısına bölünür. Her k sayısı A matrisinin her bir elemanını üs olarak logaritmik işleme alır. A matrisinin her bir elemanının k.0000 >> A.0000 1.^k ans = -8 27 64 1 % A.1111 27.^k ¹ A^k dır. A matrisinin her bir elemanı ile k sayısı çarpılır. 0. >> k\A ans = % A matrisinin her bir elemanı k sayısına bölünür.6667 1.*k=k.0000 81.>> k/A % Boy uyuşmazlığı vardır. >> A. -0./k=A/k dır.3333 >> A.3333 0.0000 1.6667 1.3333 42 .*k ans = -6 12 9 3 % A.0000 3. >> k.^A ans = % k.*A =A*k =k*A dır.^A ¹ k^A dır. -0./k ans = % A. üssü alınır.

>> v=[1 2 3].\A % k.7500 3. Her k sayısı A matrisinin her bir elemanına bölünür./A ans = % k.0000 0.5000 1. Aksi takdirde MATLAB hata >>% mesajı verir.>> A. M=[4 5 6.\k ans = % A.7500 3. A matrisinin her bir elemanı k sayısına bölünür. matrisin sütun sayısı 2. >> v*M ans = 18 24 30 43 . Vektörlerin de aynı zamanda birer matris olduğunu unutmamak gerekir. Her k sayısı A matrisinin her bir elemanına bölünür.5000 1./A ¹ k/A dır. matrisin satır sayısına eşit olmalıdır.0000 >> k.\k ¹ A\k dır.3333 0.0000 0. -1. ans = -0.\A=k\A dır. 7 8 9.0000 >> k. -1.0000 1.6667 1. 0 1 2] v= 1 M= 4 7 0 5 8 1 6 9 2 2 3 % Bir vektörle bir matrisin çarpımı. Örneğin matris çarpma >>% kuralına göre 1. Sonuç bir vektördür.3333 >>% ÖRNEK 15 >>% Matris-matris işlemlerinde yapılacak işleme göre matrislerin boyları uyuşmalıdır.

0000 4.2166 5. rand(1.8333 5.2500 8.3).0000 0 0 0 2 5 8 3 6 9 0.6083 1.0000 2. b=[ones(1.0099 >> a+b ans = 2. Matrislerin karşılıklı elemanları kendi arasında toplanır.0000 6.1923 8.4167 1.8611 7.7885 % Matris çarpma kuralına göre işlem yapılır.0000 4. 4:6.0000 6.>> a=[1:3.8013 % a-b=-(b-a) dır.2028 9. >> a-b ans = 0 1.8132 0. 7:9].3529 0.8249 8. zeros(1.1389 8.0000 1.0000 4.0000 5.7972 8.0000 1.0000 3.0000 5.0000 6. >> a*b ans = 1. a= 1 4 7 b= 1. 44 .3).1987 % a+b=b+a dır.3)] % a ve b matrislerini alarak işlemler yapalım.0000 7.5962 4. Matrislerin karşılıklı elemanları kendi arasında çıkarılır.

matrisin tersi ile çarpılır. Warning: Matrix is singular to working precision.4276 -Inf 33. matrisin tersi ile çarpılır. 45 . matris 2.4276 >> b/a % Sola bölmede 2.0000 18. Görüldüğü gibi.3410 0 2. ans = NaN NaN NaN -Inf 33. ??? Error using ==> mpower At least one operand must be scalar.0000 0 2. ans = NaN NaN NaN NaN NaN NaN NaN -Inf Inf >> a^b % MATLAB de matris üssü matris işlemleri tanımlı değildir.0000 15.4276 -Inf 33. a*b ¹ b*a dır.>> b*a ans = % Matris çarpma kuralına göre işlem yapılır.4218 >> a/b % Sağa bölmede 1. Warning: Matrix is singular to working precision.8814 0 3. matris 1. 12.

0000 1.0000 1. 1. 3.*b ans = 1.4545 45.^b ans = % Elemanter üs almada a matrisinin her bir elemanı.0000 3.0253 0.3333 0 0 0 % Elemanter sola bölme normal sola bölmeden farklıdır.5245 1.7885 >> a.0000 3.6221 1.0000 0 0 0 % a.2895 >> a.0000 2.3103 1. 0.0198 0.0000 Inf % Elemanter sağa bölme normal sağa bölmeden farklıdır. ans = 1.0000 Inf 2. b matrisi karşılığındaki elemanı üs olarak alır.>> a./b Warning: Divide by zero.*b=b.0221 >> a.5475 46 .0000 Inf 50.3993 39. Elemanter çarpım normal çarpımdan farklıdır.0000 2.*a dır.0000 1.5000 0. 0.0000 0.0000 1.9722 1.\b ans = 1.

1056 -0. >> size(a) % a matrisinin boyutunu verir.0222 0. % Sadece det ¹ 0 olan karesel matrislerin inversi vardır.1444 0. ans = 3 3 >> a' % a matrisinin transpozesi (devriği) dir.1889 -0. ans = 0.0639 -0. >> inv(a) % a matrisinin çarpma işlemine göre tersi (inversi) dir. Burada matrisin aynı indisli satır ve sütunları yer değiştirmiştir.0611 0.>>% ÖRNEK 16 >> a=magic(3) a= 8 3 4 1 5 9 6 7 2 % a matrisini alalım.0194 0. Determinant alabilmek için matris kare olmalıdır. a matrisi 3 satır ve 3 sütundan oluşan 3x3=9 elemanlı bir matristir.1472 -0.1028 47 . ans = 8 1 6 3 5 7 4 9 2 >> det(a) ans = -360 % a matrisinin determinantıdır.

-1) ans = 3 9 % Ana köşegenin alt kısmındaki elemanları verir. -0. v özvektörlerini ve d özdeğerlerini verir.8131 -0. ans = 3 a= 8 3 1 5 9 6 7 2 >> diag(a) ans = 8 5 2 % Ana köşegen elemanlarını verir. a matrisinin tüm karesel alt matrislerinden. Yani.3416 -0. >> diag(a.1) ans = 1 7 % Ana köşegenin üst kısmındaki elemanları verir.>> rank(a) % a matrisinin rankıdır. 4 >> diag(a.5774 0.8131 48 . >> [v.5774 -0.d]=eig(a) v= % a matrisinin.4714 -0.4714 -0.3416 0. % determinantı sıfırdan farklı olan en yüksek boyutlusunun buyutudur.5774 0.

0000 0 0 >>% ÖRNEK 17 >> m=magic(5) m= 17 24 23 4 5 1 8 15 % m matrisini alıp inceleyelim.8990 7 14 16 6 13 20 22 10 12 19 21 3 11 18 25 2 9 >> m(2) ans = 23 % m matrisinin 2. >> m(1:9) ans = 17 23 % m matrisinin 1.d= 15. elemandan 9.8990 0 0 0 -4. >> m(2. elemana kadar olan elemanları. 0 4. elemana kadar olan elemanları. :) ans = 23 5 7 14 16 % m matrisinin 2. satırı. 49 . elemandan 9. 4 10 11 24 5 6 12 >> m(1:2:9) ans = 17 4 11 5 12 % m matrisinin 2 artımla 1. elemanı.

3. 4. sütunlarından oluşan alt matrisi. 11 18 25 2 >> m(:. satırlarından oluşan alt matrisi. 2) ans = 24 5 6 12 18 % m matrisinin 2.3) ans = 1 % m matrisinin 1. 50 . satır 3. 4.>> m(2:4. 6 13 12 19 21 18 25 2 >> m(1. 2:4) ans = 24 5 1 7 8 14 20 % m matrisinin 2. sütunu. m= 17 24 23 4 5 6 1 7 13 8 15 6 13 20 22 3 14 16 20 22 3 9 10 12 19 21 10 12 19 21 >> m(:. sütun elemanı. 3. :) ans = 23 4 5 7 14 16 % m matrisinin 2.

7 14 16 >> [i. sütunları. 2]. >> sonuc=[i. j] sonuc = 3 1 5 4 1 3 4 5 % m matrisinin 5 den küçük elemanlarının konumlarını bulur. 51 . [3. 4. :) ans = 17 24 23 5 1 8 15 % m matrisinin 1. 3.>> m([1. 5]) ans = 1 8 15 % m matrisinin 1. sütunlarından oluşan alt matrisi. ve 2. 4. 2 9 10 12 19 11 18 25 >> m([1. satırları ve 3. j]=find(m<5). satırları. 2.2].[1:3]) ans = 17 24 23 4 5 6 1 7 13 % m matrisinin 1. m= 17 24 23 4 5 6 1 8 15 7 14 16 13 20 22 7 14 16 10 12 19 21 3 11 18 25 >> m(:. 2. 5.

2. 15 14 16 13 20 22 10 12 19 21 3 11 18 25 2 9 >> m(1:3. 3. 5 5 5 10 12 19 21 3 11 18 25 2 9 52 . elemanlarını 5 yapar. 2. elemanını 5 yapar. m= 17 24 23 4 5 6 1 8 15 7 14 16 13 20 22 7 14 16 13 20 22 3 9 10 12 19 21 3 11 18 25 2 9 10 12 19 21 11 18 25 2 >> m(1:3)=5 m= 5 24 5 5 5 6 1 7 8 % m matrisinin 1. 3. satırlarını 5 yapar.:)=5 m= 5 5 5 5 5 5 5 5 5 5 5 5 % m matrisinin 1.>> m(1)=5 m= 5 24 23 4 5 6 1 8 15 % m matrisinin 1.

sütunu siler.>> m(:. satır olarak m matrisine ekler. 4 13 22 10 19 11 25 3 9 >> c=[1:5] c= 1 2 3 4 5 % c vektörünü 6. ve 4. c ] ek_satir = 17 24 23 4 5 6 1 8 15 7 14 16 13 20 22 3 9 5 10 12 19 21 11 18 25 1 2 3 2 4 53 . [2. m= 17 24 23 4 5 6 1 8 15 7 14 16 13 20 22 7 14 16 13 20 22 3 9 10 12 19 21 3 11 18 25 2 9 12 19 21 18 25 2 >> m(:. sütunu siler. 4])= [ ] m= 17 23 1 15 7 16 % m matrisinin 2. 1)= [ ] m= 24 5 6 1 8 15 % m matrisinin 1. >> ek_satir=[ m.

>> ek_sutun=[ m. c' ] ek_sutun = 17 24 23 4 5 1 7 8 15 14 16 20 22 3 9 % c’ vektörünü 6. m= 17 24 1 8 15 1 2 3 4 5 23 4 5 6 7 14 16 13 20 22 6 13 10 12 19 21 3 11 18 25 2 9 10 12 19 21 11 18 25 2 >> sum(m) ans = 65 65 65 65 65 % m matrisinin her bir sütununun toplamını bulur. 54 . >> sum(m') ans = 65 65 65 65 65 % m matrisinin her bir satırının toplamını bulur. >> sum(diag(m)) ans = 65 % m matrisinin ana köşegen elemanlarının toplamını bulur. sütun olarak m matrisine ekler.

Yani.-1]. >>% Burada denklem sisteminin kökleri. a2 n ú ê x1 ú = ê b2 ú ê . 5. y=5..3. a1n ù é x1 ù é b1 ù êa úê ú ê ú ê 21 a22 .. + amn xn = bm é a11 a12 . amn û ë xn û ëbm û A X = B >>% n bilinmeyenli ve m tane denklemden oluşan lineer denklem sitemi ve onun matris biçimi verilmiştir... 55 . ú ê .0000 -2. >>% Görüldüğü bibi. ú ê . AX=B dir... >>% X=A\B matris denklemi AX=B çözümünü gösterir... + a1n xn = b1 …………………………………………… am1 x1 + am 2 x2 + ... .0000 % Sabitler sütun vektörü. Ç={(-3. % Bilinmeyenleri içeren sütun vektörü. 1 2 2. çözüm kümesi. sabitler sütun vektörüdür.. . >>% >>% >>% 2y+4z=2 x+2y+2z=3 3x+4y+6z=-1 >>% Yukarıda verilen lineer denklem sisteminin çözüm kümesini bulalım.0000 5.. >>% Çözüm x=-3. 3 4 6]. ú ê úê ú ê ú ë am1 am 2 . >> A=[0 2 4. >> X=inv(A)*B X= -3.>>% ÖRNEK 18 a11 x1 + a12 x2 + . X bilinmeyenler sütun vektörü. % Katsayılar matrisi. X=A\B=inv(A)*B den bulunabilir.. . -2)} şeklindedir.... >> B=[2. Burada A katsayılar matrisi. >>% B ise. >>% X=B/A matris denklemi XA=B çözümünü gösterir. + a1n xn = b1 a11 x1 + a12 x2 + . z=-2 dir.

Polinom katsayıları.% % Burada polinom dereceleri eşittir. Q=[3 0 0 5] P= 1 0 -2 1 % Polinomların azalan üsse göre vektörel gösterimi.y.4x + 27 dir. köşeli parantezler arasında. 17x3 . Dereceler farklı olsaydı toplama işlemi için.% % düşük dereceli polinoma sıfır katsayıları ilave edilerek.>>% Çözümü başka bir yoldan. >> P=[1 0 -2 1]. polinomda x in en büyük üssünden >>% başlayarak azalan sıradaki katsayılarıdır. aralarında >>% boşluk bırakılarak satır vektörü formatında ifade edilir.'x+2*y+2*z=3'. dereceler eşitlenirdi. >>% ÖRNEK 19 >>% P(x)=x3-2x+1 ve Q(x)=3x3 +5 polinomlarını alalım. solve fonksiyonu ile de bulabiliriz.'3*x+4*y+6*z=-1') x= -3 y= 5 z= -2 >>% POLİNOMLAR >>% MATLAB de polinomlar vektörlerle gösterilir ve vektörün elemanları. Katsayı vektörleri.z]=solve('2*y+4*z=2'. Q= 3 0 0 5 >> 2*P+5*Q % Skaler ile polinom çarpımı ve polinomların toplamı. >> [x. Sonuç. ans = 17 0 -4 27 56 .

Q) fonksiyonu kullanılır. B= 0.6667 dir.K]=deconv(P. 57 .0. % % İkiden fazla polinomun çarpımı için conv fonksiyonunu tekrar tekrar kullanmak gerekir.6667 >> roots(P) ans = -1.Q) % Polinomların çarpmak için conv(P. % Bölüm= 0.K]=deconv(P.0000 -0. 3x6 .Q) % Polinomların bölmek için [B.3333 K= 0 0 -2.10x + 5 dir. ans = 3 0 -6 8 0 -10 5 >> [B. K ise kalanı gösterir. % Burada B bölüm.6180 % roots(P) fonksiyonu P polinomunun köklerini bulur.Q) fonksiyonu kullanılır. kalan=-2x .>> conv(P.3333x. % % Sonuç.6180 1.0000 0. >> solve('x^3-2*x+1=0') ans = 1 1/2*5^(1/2)-1/2 -1/2-1/2*5^(1/2) % Polinomların köklerini bulmak için solve fonksiyonu da kullanılabilir.6x4 + 8x3 .

P= 1 0 -2 1 % Katsayılar vektörü. Sonuç.Piecewise cubic Hermite interpolating polynomial.Data gridding and surface fitting.>>poly([1 -1]) ans = 1 0 -1 % poly([1 -1]) kökleri 1 ve -1 olan polinomu bulur.Quick 1-D linear interpolation. .1 dir. interp1q . pchip interp1 komutu ile ulaşılabilir. 3x2 – 2 dir. griddata . >>% P(x)=x3-2x+1 polinomunun türevini iki ayrı yoldan bulalım. >>% NOT: Polinom fonksiyonlarına >>help polyfun >> help polyfun Interpolation and polynomials.'x') ans = 3*x^2-2 % diff fonksiyonu da P polinomunun x e göre türevini alır. . 58 . . >> polyder(P) ans = 3 0 -2 % polyder(P) fonksiyonu P polinomunun türevini alır. .1-D interpolation (table lookup). interpft . >> diff('x^3-2*x+5'. interp2 interp3 interpn .3-D interpolation (table lookup).2-D interpolation (table lookup). >> P=[1 0 -2 1]. Sonuç. x2 . Data interpolation.N-D interpolation (table lookup).1-D interpolation using FFT method.

Data gridding and hyper-surface fitting for 3-dimensional data. polyvalm .Voronoi diagram. convhulln . roots poly polyval .Convex hull. inpolygon .Closest triangle search.True for points inside polygonal region.Search N-D Delaunay tessellation for nearest point.Evaluate piecewise polynomial.Find polynomial roots. tsearch . .N-D Voronoi diagram. rectint . Spline interpolation. convhull . delaunay3 .griddata3 . . 59 . spline ppval . griddatan . .Evaluate polynomial with matrix argument. tsearchn .Fit polynomial to data. polyarea .Delaunay triangulation.N-D convex hull. Polynomials. voronoi .Convert roots to polynomial.Search Delaunay triangulation for nearest point. Geometric analysis. delaunayn .Rectangle intersection area.Evaluate polynomial. .Partial-fraction expansion (residues). delaunay .Area of polygon. dsearch . residue polyfit polyder .Differentiate polynomial. voronoin .N-D Delaunay tessellation. dsearchn .N-D closest triangle search.Cubic spline interpolation. .Data gridding and hyper-surface fitting (dimension >= 2).3-D Delaunay tessellation.

>> y=interp1(x. interft fonksiyonu ise. Ara değer hesaplarında veriler. . bir boyutlu aradeğer hesabı yapar. Tabloda bir motorun belli >>% devirlerde ve belli zamanlarda silindir kafası sıcaklık değerleri gösterilmiştir.polyint conv deconv . >> x=[1 :. Buna göre 3. artan ya da azalan >>% değerlerine göre sıralanmalıdır. >>% ARADEĞER HESAPLARI >>% interp fonksiyonu polinom tekniğini kullanarak. >>% ÖRNEK 20 >>% x ve y değerlerini içeren verilerden hareketle. 8 : 10].45678 ara değerine karşılık >>% gelen yi değerini bulalım. 5. Motor hızı (dev/dak) 2000 3000 4000 Sıcaklık (oC) 5000 6000 Zaman (s) 0 1 2 3 4 5 0 20 60 68 77 110 0 110 180 240 320 405 0 176 220 349 450 503 0 190 285 380 510 623 0 240 327 428 620 785 60 . interp2 iki boyutlu.xi) formatında bir boyutlu ara değer fonksiyonu. Fourier dönüşümünü >>% kullanarak ara değer hesabı yapar. interp3 üç boyutlu interpn n boyutlu aradeğer fonksiyonlarıdır.8 :19].4568 % yi=intp1(x. >>% interft ise. >>% interp1 bir boyutlu. >>% Şimdi iki boyutlu ara değer hesabı için aşağıdaki tabloyu inceleyelim. y.Integrate polynomial analytically.45678) y= 14.y.Multiply polynomials. y=[10 :. xi=5.Divide polynomials. veri tablosunda olmayan. .25 saniyedeki >>% 3500 devir/dakika ya karşılık gelen sıcaklık değerini hesaplayalım.

25) y= 315.zi) formatında iki boyutlu ara değer fonksiyonu. >> y=interp2(x.z. % Sıcaklık değerleri. % yi=interp2(x.8750 61 .y.>> x=[2000 3000 4000 5000 6000].3.y. >> y=[ 0 >> z=[ 0 1 0 2 0 3 0 4 0 5 ].xi.3500. 20 110 176 190 240 60 180 220 285 327 68 240 349 380 428 77 110 310 450 510 620 405 503 623 785]. % Zaman değerleri. % Motor hızları.z.

>> plot( x. En temel grafik çizdirme fonksiyonu olan >>% plot fonksiyonunun genel hali: plot(x.y) >>% Aynı grafiği her bir veri noktası mavi + olacak şekilde çizdirelim. >> y=exp(4*cos(x)). 'b+' ) % 'b+' blue + çizgi türünü ifade eder. >>% ÖRNEK 1 >>% y = e 4cos x fonksiyonunun grafiğini.BÖLÜM IV >>% GRAFİK İŞLEMLERİ >>% MATLAB da hemen her türlü grafiği çizdirmek mümkündür. 62 . >> plot(x. π/15 artımla 0 £ x £ 4p aralığında çizdirelim.y. >> x=0: pi/15: 4*pi. y. ' çizgi türü ' ) şeklindedir.

>> grid on % eksen isimleri % kılavuz çizgileri 63 . % grafik başlığı >> xlabel('x'). ylabel('y'). >> title('y=exp(4cosx) in grafiği'). xlabel ve ylabel ile eksen isimlerini ve grid on ile de kılavuz >>% çizgilerini grafiğe ekleyelim.>>% Şimdi title ile grafik başlığını.

y) kesişim noktasını adlandırır. 'g' ) % İki fonksiyon eğrisini de aynı grafikte çizer. plot komutundan sonra istenilen sırayla kullanılabilir. girdiğiniz yazı mouse ile tıkladığınız yerde belirir. hold off >>% fonksiyonlarını kullanılabiliriz. >>% Bu komutlar.Yol: hold on ve hold off fonksiyonlarını kullanarak.>>% NOT: Çizgi türü kodları aşağıdaki tabloda verilmiştir. hold off fonksiyonu ile de dondurulan grafikler >>% tekrar serbest bırakılır. klavuz çizgilerini kaldırır. y1=sinx. Ayrıca bütün diğer grafik işelemlerini de ( bakış açısını değiştirme. >> y1=sin(x). >> y1=sin(x). >> plot( x. y2=cosx eğrilerini aynı grafik üzerinde iki farklı >>% yoldan çizdirelim: >>% 1. 64 . eğri uydurma. y1. >>% Grafiğe bilgi eklemek için kullanılan komutlar ise şunlardır: title ('text') xlabel('text') ylabel('text') grid on grid off text(x. klavuz çizgileri ekler. 'r'. gibi) figür penceresinden kolayca yaptırabiliriz. >>% Çoklu grafikler çizdirmemiz gerektiğinde ise. >> x=-2*pi: pi/100: 2*pi. (x. yani figür penceresinden yapmak da mümkündür.Yol: Tek bir plot fonksiyonunda sırasıyla değişkenleri yazarak. Örneğin. >>% 2. y2.'text') gtext('text') grafiğin üst tarafına başlık ekler. y-eksenine isim verir. hold on fonksiyonu bir önceki grafiği dondurur ve >>% aynı düzlemde diğer grafiklerin çizilmesine izin verir. renk haritası ekleme. >> x=-2*pi: pi/100: 2*pi. x-eksenine isim verir.y. x. data analizi vs. >> y2=cos(x). en basit olarak plot fonksiyonunu veya hold on. >>% >>% >>% >>% Grafiğe bilgi ekleme işlemlerini ve çizgi türlerini grafiği çizdirdikten sonra grafik ekranından.

sin(x)) >> subplot(2. aynı düzlem üzerinde ve aynı eksen takımını kullanarak (veya kullanmayarak). Şöyle bir tablo yararlı olabilir: >>% Şimdi bunu bir örnek üzerinde inceleyelim. y1. satır 2. grafik . % Grafiği dondurur.1) komutu ekranı dörde böler ve bunlardan birincisini aktif hale getirir. >>% >>% >>% >>% >>% Ayrıca. 'g' ) % 2.2. grafik 65 % 1.2.2. subplot komutu bir grafik ekranını bölmeye yarar.p) şeklinde olup. >> subplot(2.2. >>hold off % Grafikleri tekrar serbest bırakır. satır 1. grafik % 1.3) % 2. y2. ekranı m tane satır n tane sütundan oluşan p tane grafik ekranı haline getirir. >> x=linspace(-2*pi.1) >> plot(x. Bunun için subplot fonksiyonu kullanılır. >> hold on >> y2=cos(x).>> plot( x.2*pi). grafiği çizer. Kullanımı subplot(m.n.2) >> plot(x. Mesela subplot(2. satır 1. grafiği çizer. tek bir grafik penceresinde birden fazla grafiği grup halinde gösterebiliriz.cos(x)) >> subplot(2. 'r' ) % 1. >> plot( x.

grafik >>% Aşağıda harmonik dalga grafikleri de benzer şekilde subplot komutuyla gösterilmiştir. >> plot(t. % 2. >> subplot(3. >> y=sin(2*pi*2*t).>> plot(x. 1. satır 2. % 3.y) >> title('Birinci Harmonik'). % 1.cot(x)) % 2. grafik >> t=0: 0. >> subplot(3.01: 1. 1). grafik >> t=0: 0. satır 3.4) >> plot(x. 2). satır 2. 1. >> plot(t.tan(x)) >> subplot(2. >> z=sin(2*pi*10*t). satır 1. grafik >> w=y+z. 3).01: 1. 1. >> subplot(3. 66 .2.z) >> title('İkinci Harmonik').

w) >> title('Harmonik Dalgaların Toplamı') 67 .>> plot(t.

ya da yarı logaritmik (semilog) olmak üzere ikiye ayrılmıştır. >> x=[1 2 3 4 5]. >> plot(x. semilogx(x. >>% Logaritmik grafikler genel olarak çok büyük veya çok değerli verileri anlaşılabilir bir ölçeğe uyarlar ya da >>% doğrusal olmayan verilere uygun bir çizim zemini sağlarlar. semilogy.y). >> xlabel('zaman(da)'). bağımlı değişkeni göstermektedir. 68 .) >>% Burada x’ler bağımsız değişken y’ler ise. x ve y nokta sayıları birbirine >>% eşit olmalıdır.>>% İKİ BOYUTLU GRAFİKLER >>% İki boyutlu (2D) grafik fonksiyonları: plot.y) fonksiyonları kullanılmaktadır. >>% ÖRNEK 2 >>% plot(x. x ve y eksenlerindeki değerlerin artım miktarlarının eşit aralıklı olduğu doğrusal grafikleri çizmekte kullanılır. semilogy(x. semilogx. Eşit eksen artım değerli olmayan logaritmik grafikleri çizmek için ise loglog(x. ezplot.y) x ve y eksenlerini lineer olarak ölçeklendirir ve verilerin grafiğini çizer. loglog. >> y=[25 0 20 5 15].y) >> title('Hız-Zaman Grafiği'). plotyy. Burada logaritmik grafikler.y). ylabel('hız(km/sa)'). (Tek değişkenli >>% fonksiyonların grafiklerini çizer. >>grid on >>% ÖRNEK 3 >>% >>% >>% >>% >>% Görüldüğü gibi plot fonksiyonu. fplot dır. eksenler gözönüne alınarak ya tam logaritmik (loglog).

45e-4]'.78e-4 2.96e-3 9.>>% loglog(x. >> plot(n. Her iki eksen de logaritmik ölçeklidir. >>% semilogy(x. y ekseni ise lineer ölçeklidir. >>% semilogx(x.57e-1 6. x ekseni lineer.sn. >>% Bir maddenin tanecik ayrışım eğrisini hem lineer hem de logaritmik ölçekte çizdirelim. x ekseni logaritmik.46e-2 1.y): y ekseninde 10 tabanlı logaritmik eksen kullanılır ve plot( x. y ) ile aynı >>% sonucu verir. >> sn=[2.51e-2 3.y): x ekseninde 10 tabanlı logaritmik eksen kullanılır ve plot( log10(x). log10(y) ) >>% ile aynı sonucu verir. log10(y) ) ile aynı >>% sonucu verir.y): x ve y eksenlerinde 10 tabanlı logaritmik eksen kullanılır ve plot( log10(x). >> n=[3 5 9 17 33 65]'. y ekseni ise logaritmik ölçeklidir.'r*') % Grafik gösterimi zayıf 69 .

sn.5 >> zaman=[ 6 10 17 25 32 ]. gerilim eksenini (y-ekseni) logaritmik olarak göstermek. yani semilogy(x. kondansatörün uçları arasındaki gerilim değerleri aşağıdaki tabloda verilmiştir.6 1. Tablo incelendiğinde gerilim değerlerindeki azalma miktarının.6 1. Bu nedenle grafikte. >> gerilim=[ 498 162 23 9.'r*') % Grafik gösterimi daha belirgin >>% ÖRNEK 4 >>% >>% >>% >>% Bir kondansatörün deşarj süresince kaydedilen.5 ].>>loglog(n. 70 . zaman değerlerindeki artma miktarından çok çok fazla olduğu görülür. Zaman (dk) 6 10 17 25 32 Gerilim (volt) 498 162 23 9.y) fonksiyonunu kullanmak daha yerinde olur.

71 . >>semilogy(zaman.>>plot(zaman. x-ekseni lineerdir. gerilim) % y-ekseni logaritmik. gerilim) % x ve y eksenleri lineerdir.

y1. >>% sağ y.eksenine de fun2(x2. y2) 72 . zaman.'fun2') Bu fonksiyon sol y-eksenine fun1(x1.1 :10. 'fun1'. >> plotyy(zaman.5 ].'plot'. y2.>>% ÖRNEK 5 >>% Bazı durumlarda verileri y-ekseninin hem sol hem de sağ tarafında ölçeklemek gerekebilir. Fonksiyonun genel yazım biçimi >>% şöyledir: plotyy(x1. >> zaman=[ 6 10 17 25 32 ]. >> gerilim=[ 498 162 23 9. x. y1.'semilogy') >>% Şimdi iki ayrı fonksiyon için plotyy yi kullanalım. Böyle iki tane >>% y-ekseni olan grafikleri çizdirmek için plotyy fonksiyonu kullanılır.6 1. >>y1=exp(-x). >>x=1: . >>y2=exp(x). >>plotyy(x. >>% Örnek 4 deki grafikleri plotyy fonksiyonunuyla iki y-ekseni olan tek bir grafikte çizdirelim.*cos(x).*sin(x).y2) grafini çizecektir. gerilim. x2. gerilim.y1) grafiğini.

[ymin. kabataslak bir fikir alabilmek için. xmax]. 73 . Genel yazım >>% biçimleri: ezplot( ‘fun’.>>% ÖRNEK 6 >>% İki boyutlu iki değişkenli fonksiyonların grafiklerini. >> ezplot('sin(x)/1+x^2') %x-ekseninin varsayılan sınırları [ -2*pi. ymax] ) şeklindedir. 2*pi ] aralığıdır. >>% y=sinx/1+x2 fonksiyonunun grafiğini çizdirelim. ezplot ya da >>% onunla hemen hemen aynı işleve sahip fplot fonksiyonlarıyla çizdirmek mümkündür. [xmin.

>>% ÖRNEK 6 >>% x2+ y2 = 4 denklemi ile tanımlanan eğriyi ezplot fonksiyonu ile çizdirelim. [-3. 2sin(t) : 0 ≤ t ≤ 20 } noktalar kümesiyle t ye bağlı parametrik olarak tanımlanmış grafiği. >> ezplot( '2*cos(t)' .3] ) >>% ÖRNEK 7 >>% f: { 2cos(t). >> ezplot( 'x^2+y^2=4'. >>% ezplot fonksiyonu ile çizdirelim. 3]. [-3. '2*sin(t)' ) 74 .

>>% ÖRNEK 8 >>% (x. >> ezplot( '(sin(t)/t)*cos(t)' . [-6*pi.r(Ѳ)sin(y) ).y) = ( r(Ѳ)cos(x). r(Ѳ)=sin(x)/x (cochleoid) ile tanımlanan polar grafiği ezplot fonksiyonu ile >>% çizdirelim. '(sin(t)/t)*sin(t)'. 6*pi] ) 75 .

radyan olarak ρ (rho) değerlerine karşı. x^2. >> t=0: pi/20: 2*pi. >> polar(t.5 için. >>% ÖRNEK 10 >>% Verileri kutupsal koordinatlarda (polar grafikler için) polar(θ. 1] ) % Fonksiyonlar vektör elemanları olarak girilmiştir. ses kaynağının yönüne bağlı olarak mikrofon kazancının polar grafiğini çizdirelim. y=x4 grafiklerini fplot fonksiyonu ile çizdirelim. >> fplot ( '[x. x^3. θ (theta) açısının kutupsal koordinatlarını kullanarak >>% çizim yapar. x^4]'. >>% 2g(1+cos θ) denklemi. ρ) >>% fonksiyonu. polar(θ. θ ise radyan cinsinden. y=x3. mikrofon ekseni ile ses kaynağı arasındaki >>% açıdır. >> r=2*0. y=x2. >>% Burada g mikrofon kazanç sabiti. >>% y=x. θ açısının bir fonksiyonu olarak bir cardioid mikrofonun kazancını gösterir. g=0. fplot ile parametrik ve polar >>% koordinatlarda grafikler çizilemez ancak fplot fonksiyonu aynı grafik üzerinde birden fazla grafiğin >>% çizilmesine ve eğrilere çizim sembolleri ve renk eklenmesine olanak tanır. ρ) fonksiyonuyla çizdirebiliriz. r) 76 .>>% ÖRNEK 9 >>% fplot fonksiyonu ezplot fonksiyonu ile hemen hemen aynı işlevi görür. [-1.5*(1+cos(t)).

>> t=linspace(0.*cos(2*t)).cos2t I grafiğini kartezyen ve polar kaoordinatlarda çizdirelim.>>% ÖRNEK 11 >>% y=I sin2t.1. >> r=abs(sin(2*t). >> subplot(2.1.1) >> plot(t.2*pi.r) 77 .200).r) >> subplot(2.2) >> polar(t.

Control axis scaling and appearance. loglog . >> help graph2d Two dimensional graphs. . Elementary X-Y graphs.Semi-log scale plot.Polar coordinate plot.Semi-log scale plot. polar .Log-log scale plot. plot . plotyy .Linear plot.Graphs with y tick labels on the left and right. axis zoom .>>% NOT: İki boyutlu grafikler ile ilgili bilgilere >>help graph2d komutuyla ulaşılabilir. semilogy . semilogx . 78 . Axis control.Zoom in and out on a 2-D plot.

.Grid lines.X-axis label. title .Axis box. See also graph3d. 79 . texlabel . Graph annotation.Text annotation.Y-axis label.Create axes in arbitrary positions.Set paper orientation. .Rubberband box. or save graph to M-file.Produces the TeX format from a character string. text gtext . ylabel . orient . .Hold current graph. Hardcopy and printing. specgraph.Graph title. subplot . printopt .Tools for editing and annotating plots.Place text with mouse. . xlabel .Print graph or Simulink system.Printer defaults.grid box rbbox hold axes . print .Create axes in tiled positions. plotedit . .

z nin aynı boyutlu vektörler olması gerekir. >>% ÖRNEK 12 >>% plot3(x. >> z=[0 230 75 600]. >> y=[10 20 30 40 ]. zlabel('z-ekseni').y. y.z) üç boyutlu uzayda x. y. Temel olarak üç boyutlu çizgi. >> plot3(x. ylabel('y-ekseni'). z elemanlarıyla oluşan noktalardan geçen bir çizgi grafiği oluşturur. Aşağıdaki üç boyutlu çizgi grafikte olduğu gibi.y. >> grid on 80 . >>title('Üç Boyutlu Bir Doğru Grafiği'). ağ ve yüzey grafiklerini inceleyelim.>>% ÜÇ BOYUTLU GRAFİKLER >>% Üç boyutlu (3D) grafikler temel olarak iki boyutlu (2D) grafiklere üçüncü boyut olan z-ekseninin >>% eklenmesiyle elde edilir. >>xlabel('x-ekseni').z). >>% Burada x. >> x=[10 20 30 40 ].

>>% ÖRNEK 13 >>% Benzer olarak üç boyutlu ilginç bir çizgi grafik olan heliks i plot3 fonksiyonu ile çizdirelim. >> title('Heliks Grafiği').'Orijin').0.t. ylabel('y-ekseni'). >> text(0. >> plot3(sin(t). zlabel('z-ekseni'). >> t=0: pi/50: 10*pi.0. >> xlabel('x-ekseni').'r'). >> grid on 81 .cos(t).

meshgrid ve mesh fonksiyonlarını kullanarak çizdirelim. ezmesh >>% fonksiyonuyla şöyle de çizdirilebilir: >> ezmesh( 'x.^2+y. >>title('z=x^2+y^2 Parabolünün Ağ Grafiği'). üç boyutlu ağ grafik çizmek için.^2 . >> ezplot3 ( 'cos(t)'.y. [-10: 1: 10]. zlabel('z-ekseni') 82 . >>% z=x2+y2 üç boyutlu parabolünün ağ grafiğini.z). 'sin(t)'. % Matris elemanları olduğu için elemanter üs alma yapıldı. 'sin(5*t)'. meshgrid ve >>% mesh fonksiyonları kullanılır. >> z=x.y]=meshgrid(x_nok.^2+y. tıpkı iki boyutta olduğu gibi ezplot fonksiyonu kullanılır.^2'. >>% xyz düzleminde { x(t)=cost. >> [x. y(t)=sint. % Izgara için oluşturulan matris. Önce meshgrid fonksiyonu ile xy-düzleminde noktaların bir ızgarası >>% oluşturulur ve sonra mesh fonksiyonu ile yüzey çizdirilir. ylabel('y-ekseni'). [-pi pi] ) >>% ÖRNEK 15 >>% z=x2+y2 gibi üç boyutlu fonksiyonların yüzeyini gösterecek. >> mesh(x. [-10: 5: 10] ) >> x_nok=[-10: 1: 10]. >>% Aynı grafik daha pratik olarak. z(t)=sin(5t) } ile tanımlanan çizgisel parametrik eğriyi –π ≤ t ≤ π >>% aralığında ezplot3 fonksiyonu ile çizdirelim. y_nok).>>% ÖRNEK 14 >>% Üç boyutta iki değişkenli çizgi grafikler için. >> y_nok=[-10: 5: 10]. >> xlabel('x-ekseni').

>>% Ortaya çıkan üç boyutlu ağ. y-ekseni yönünde 1 birim uzunluktaki >>% dikdörtgenlerden oluşan bir paraboldür. x-ekseni yönünde 4 birim. aşağıdaki örnekte incelenebilir.y) X= 1 1 1 Y= -1 -1 -1 -2 -2 -2 -3 -3 -3 2 2 2 3 3 3 83 . >>% NOT: meshgrid fonksiyonu ile oluşturulan ızgaranın matris yapısı. >> [X. >> y=[-1 -2 -3 ]. >> x=[ 1 2 3 ].Y]=meshgrid(x.

ylabel('y-ekseni').y. π/50 artımlı olarak üç boyutlu düzlemde >>% mesh ve meshgrid fonksiyonlarıyla çizdirelim. z=x2+y2 üç boyutlu parabolünün yüzey grafiğini. surf(x. ezmesh >>% fonksiyonuyla şöyle de çizdirilebilir: >> ezmesh('5*cos(x).siny fonksiyonunun grafiğini. zlabel('z-ekseni'). >>% Daha önce ağ grafiği olarak çizdirdiğimiz. >> xlabel('x-ekseni').*sin(y).*sin(y)'.y]=meshgrid( -pi: pi/50: pi.z) ile aynıdır.z) fonksiyonu >>% kullanılır. >>% Aynı grafik daha pratik olarak.z) >>% fonksiyonu ile çizdirelim.[-pi: pi/50: pi]) >> title('z=5cosx. -pi: pi/50: pi ).>>% ÖRNEK 16 >>% z=5cosx. >>% ÖRNEK 17 >>% Ağ grafiklerinin içi renkle doldurulduğunda yüzey grafikleri elde edilir. >> mesh(z) % mesh(x.π ile +π aralığında.[-pi: pi/50: pi]. .siny Fonksiyonunun Ağ Grafiği'). 84 .y.y. Dolayısıyla üç boyutlu ağ >>% grafiklerini üç boyutlu yüzey grafiği olarak çizdirmek mümkündür. Bunun için surf(x. >> z=5*cos(x). >> [x.

y. >> y_nok=[-10: 5: 10]. ezsurf >>% fonksiyonuyla şöyle de çizdirilebilir: >> ezsurf( 'x. >> z=x. [-10: 5: 10] ) >> [x.z).y]=meshgrid(x_nok.^2+y.y)=xye –(x2+y2) fonksiyonunun -2 ≤x ≤2 ve 0≤ y≤ 2 aralıklarında üç boyutlu yüzey grafiğini surf >>% fonksiyonu ile çizdirelim.^2 . >> surf(x. 85 . y_nok). >>title('z=x^2+y^2 Parabolünün Yüzey Grafiği').^2 '. >>% Aynı grafik daha pratik olarak. >> xlabel('x-ekseni').>> x_nok=[-10: 1: 10]. [-10: 1: 10]. % Matris elemanları olduğu için elemanter üs alma yapıldı. % Izgara için oluşturulan matris. ylabel('y-ekseni'). zlabel('z-ekseni') >>% ÖRNEK 18 >>% f(x.^2+y.

^2+Y. z=sqrt(9.x2 .2:2).2:2].*Y. ezmesh >>% fonksiyonuyla şöyle de çizdirilebilir: >> ezmesh( 'X.^2)). ylabel('y-ekseni'). >> surf(X. zlabel('z-ekseni') >>% ÖRNEK 19 >>% x2 + y2 + z2 = 9 küresinin üst yarısının grafiğini ezsurf fonksiyonu ile çizdirelim. 86 . >>% Aynı grafik daha pratik olarak. >> Z=X.2:2).2:2] ) >> xlabel('x-ekseni').Y. [-2:.^2))'.y2) olur. [-2:.>> x=(-2:. >>% Denklem düzenlenirse.*exp(-(X.*exp(-(X. >> y=(-2:.^2+Y.*Y.Z).

>>% NOT: Hem iki boyutta hem de üç boyutta. ezsurf fonksiyonları >>% kullanılabilir. düzey eğrilerini de çizdirmek gerekebilir.y^2)'.>> ezsurf('sqrt(9. 87 . Bunun için ağ grafiklerde ezmeshc. ezmesh. >>% ÖRNEK 20 >>% >>% >>% >>% Bazen z=f(x. ezcontour (ağ gösterimi için) ya da ezcontourf (yüzey gösterimi için) fonksiyonları yeterli olacaktır. mesh. ezplot3. [-4 4]. grafikleri doğrudan çizdirmek için plot. [-4 4] ) >>% NOT: Yukarıdaki örneklerde de görüldüğü gibi çizdirilen grafiklere figür ekranından renk haritası >>% eklemek ve figür ekranında grafiğin bakış açısını değiştirmek mümkündür.y) şeklindeki iki değişkenli fonksiyonlarda.x^2 . yüzey grafiklerde ezsurfc fonksiyonları kullanılır. surf gibi grafik >>% çizdirme fonksiyonlarının başına –ez ekinin getirildiği ezplot. Sadece düzey eğrilerini göstermek istediğimizde ise.

[-3 3] ) 88 .1) >> ezmeshc( 'y^2-x^2'. Sonra hemen altında >>% ezcontour fonksiyonuyla sadece düzey eğrilerini gösterelim. >> subplot(2.1. [-3 3]. [-3 3]. [-3 3] ) >> subplot(2.>>% z=y2 – x2 fonksiyonunu.1.2) >> ezcontour( 'y^2-x^2'. düzey eğrileriyle birlikte ezmesc fonksiyonuyla çizdirelim.

ylabel ve title adlandırmalarında ya da grafik üzerinde legend. ® gibi sembolleri eklemek gerekebilir.>>% >>% >>% >>% >>% NOT: Grafik çizimlerinde xlabel. hatta eksen centiklerinin adlandırılmasında a. l gibi Yunan karakterlerini ya da km2. b. ¥ . £ . text veya gtext kullanımlarında. Yunan Karakterleri ve Semboller Krakter \alpha \beta \gamma \delta \epsilon \zeta \eta \theta \vartheta \iota \kappa \lambda \mu \nu \xi \pi \rho µ Sembol Krakter \upsilon \phi \chi \psi \omega \Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega \forall Sembol Krakter \sim \leq \infty \clubsuit \diamondsuit \heartsuit \spadesuit \leftrightarrow \leftarrow \uparrow \rightarrow \downarrow \circ \pm \geq \propto \partial º ± Symbol ~ 89 . Bunların MATLAB kod sistemindeki kullanımları aşağıdaki tabloda verilmiştir. w. MATLAB de bu işlemler yazı dizgeleri (text strings) olarak adlandırılır.

..\sigma \varsigma \tau \equiv \Im \otimes \cap \supset \int \rfloor \lfloor \perp \wedge \rceil \vee \langle \exists \ni \cong \approx \Re \oplus \cup \subseteq \in \lceil \cdot \neg \times \surd \varpi \rangle · ¬ x \bullet \div \neq \aleph \wp \oslash \supseteq \subset \o \nabla \ldots \prime \0 \mid \copyright • ÷ . ´ | © 90 .

>>% y ekseninde "Hız katsayısı: Ko=10-12 " görünmesini istersek. v \füntname{fontname} – Kullanılacak yazıtipi (font) ailesinin adını bülirler.. v \fontsize{fontsize} – FontUnits olarak yani punto olarak yazıtipi boyutunu belirler. v _{.Normal yazıtipine dönüş.yazıtipi (oblique font. >> ylabel ('Hız katsayısı: K_o=10^{-12}') >>% komutu kullanılır. nadiren kullanılır)...Parantez içindeki karakterler ya da yazı üstindis olarak gösterilir. Örneğin..İtalik yazıtipi (italics font).Parantez içindeki karakterler ya da yazı altindis olarak gösterilir. >> xlabel ('-\gamma{_0^1} ışıldamasına göre yarılanma değerleri ') komutu kullanılır. >>% x ekseninde "-co1 ışıldamasına göre yarılanma değerleri " görünmesini >>% istersek. v \rm . v \it{} .>>% Tablo da verilen tüm karakterler.Koyu yazıtipi (bold font ).}. 91 . >>% Genel kullanımda tabloda verilen yunan karakterlerini ve sembollerini üç şekilde ifade edebiliriz: >>% Eşitlik >>% Üst indis >>% Alt indis : : : b=3 için ‘\beta=3’ (equal) b3 için ‘\beta^3’ (subscript) b3 için ‘\beta_3’ (superscript) >>% Ayrıca bu gösterim mantığı m3 veya K12 gibi normal yazı işlemleri için de geçerlidir. v ^{.}. >>% Alt indis veya üst indislerde birden fazla karakter kullanılacak ise bu durumda { } şeklindeki süslü >>% parantez kullanılmalıdır. ayrıca aşağıdaki özel değiştiriciler (stream modifier) ile kullanılabilir: v \bf{} . v \sl{} .

>>% NOT: Üç boyutlu grafiklerle ilgili bilgilere >>help graph3d komutuyla ulaşılabilir.Diffuse reflectance. .Pseudocolor axis scaling.Mesh hidden line removal mode. . lighting .Lighting mode. graymon .Plot lines and points in 3-D space. shading . Color control. material . caxis . Lighting.Specular reflectance. diffuse . specular .Color look-up table.Filled 3-D polygons. colordef .3-D shaded surface with lighting. plot3 mesh surf fill3 . surfl .3-D colored surface. >> help graph3d Three dimensional graphs. 92 . brighten .Surface normals. Elementary 3-D plots. colormap .3-D mesh surface. surfnorm . .Set graphics defaults for gray-scale monitors.Brighten or darken color map.Color shading mode.Material reflectance mode.Set color defaults. hidden .

Shades of green and yellow color map. alphamap . Transparency.Enhanced color-cube color map. .Hue-saturation-value color map. vga jet prism cool autumn spring winter summer . .Shades of magenta and yellow color map. .Transparency (alpha) look-up table.Color map with the line colors. .Variant of HSV.Zoom in and out on a 2-D plot. .Shades of blue and green color map. .Transparency (alpha) mode.Black-red-yellow-white color map.Prism color map.Control axis scaling and appearance. . . alim . axis zoom . white. . colorcube .Linear gray-scale color map. . and black color map.Windows colormap for 16 colors. . blue.All white color map.Gray-scale with tinge of blue color map.Shades of red and yellow color map. .Color maps.Pastel shades of pink color map.Linear copper-tone color map.Shades of cyan and magenta color map. . . .Transparency (alpha) scaling Axis control. . hsv hot gray bone copper pink white flag lines .Alternating red. alpha . 93 .

3-D graph viewpoint specification.Z limits. daspect .Camera up vector. campan .Camera projection.Dolly camera.Grid lines.Pan camera.Axis box. camtarget . xlim ylim zlim .Create axes in tiled positions.X limits. Viewpoint control.Camera view angle. 94 . . campos .Y limits. .Orbit camera. .View transformation matrix. High level camera control. subplot . viewmtx . . . view .Create axes in arbitrary positions. camproj . rotate3d .grid box hold axes . camorbit . camdolly . camva camup .Plot box aspect ratio.Camera position. .Camera target.Data aspect ratio.Interactively rotate view of 3-D plot. pbaspect .Hold current graph. camzoom .Zoom camera. Camera control.

.Creates or sets position of a light.0 file. camlookat . or save graph to M-file. lightangle . print .Experimental graph editing and annotation tools. cameratoolbar .Y-axis label.Printer defaults.Print graph or Simulink system. printopt . specgraph. camlight .Spherical position of a light.Text annotation.camroll . . . Hardcopy and printing.Move camera and target to view specified objects.Graph title. .Set paper orientation. . High level light control.Roll camera. orient vrml . 95 . plotedit .Z-axis label.Save graphics to VRML 2. See also graph2d.Interactively manipulate camera. . Graph annotation.X-axis label.Mouse placement of text. title xlabel ylabel zlabel text gtext .

>>% NOT: MATLAB deki grafik çeşitleri aşağıda özet olarak gösterilmiştir. 96 .

x12-3x10+x7-120x2+67=0 denkleminin köklerini bulalım.….z. >> syms x >> solve(x^2-x-6.x.denk3.y. solve fonksiyonunun genel hali: >>% syms x y z … >>% [x.51246479578529006009603072834460+1.80004143504146966877333266198056*i -.y.…]=solve(denk1.4261986019933698713398249020469*i -. >>% Benzer olarak.3799412975372923656562133279358+.50217039300299764820601368779329+1.4418562120833487079385352327090*i -1.8739449545046381201418339113910 1.…) şeklindedir.2} olarak bulunur.9210009404907231481170457094651 -1.x) ans = 3 -2 >>% Çözüm kümesi.3468332163973951506034599502807-.BÖLÜM V >>% DENKLEMLER-DENKLEM SİSTEMLERİNİN ÇÖZÜMÜ >>% CEBİRSEL DENKLEMLER >>% Cebirsel denklemlerin sembolik çözümünü solve fonksiyonu verir. >> syms x >> solve(x^12-3*x^10+x^7-120*x^2+67.denk2.74720356628315882129201933741592 1. >>% ÖRNEK 1 >>% x2-x-6=0 denkleminin çözümünü bulalım.3468332163973951506034599502807+.79883587021658777179945832073383*i .80004143504146966877333266198056*i 97 .74577493701228339964228021354946 -1.x) ans = . Ç={3.z.

7988i >>% ÖRNEK 2 >>% >>% >>% x+2y=1 x-y=2 denklem sisteminin çözüm kümesini bulalım.y) % Denklemler sıfıra eşitlenerek işlem yapıldı.7458 -1.x-y-2.1.3799412975372923656562133279358-. elde edilen sonucu dört haneli hale getirir.y]=solve(x+2*y-1.8000i -0.4262i -0.5022 + 1.4261986019933698713398249020469*i 1. >> syms x y >> [x.0.4419i 0.0.5125 + 1.1.3468 + 0.-.5022 .4419i -1.3799 .3799 + 0.8739 1. x= 5/3 y= -1/3 98 .4262i 1.5125 .3468 .8000i -0.9210 -1.79883587021658777179945832073383*i >> double(ans) % double(ans) fonksiyonu.7472 1.50217039300299764820601368779329-1.51246479578529006009603072834460-1.4418562120833487079385352327090*i .7988i 0.x. ans = 0.

1).992000712861186211615062078174e-1 99 . Ç={(1.>>% ÖRNEK 3 >>% >>% >>% x2+xy+y=3 x2-4x+3=0 denklem sisteminin çözüm kümesini bulalım. >> syms x y >> [x.-3/2)} şeklindedir.y) x= 2.y]=solve(sin(x+y)-exp(x)*y.'y') x= 1 3 y= 1 -3/2 y= 1 -3/2 >>% Yani çözüm kümesi.x.x-y-2.y) x= 1 3 >>% ya da aynı sonuç aşağıdaki gösterimle de bulunabilir >> [x.x^2-4*x+3.(3. >>% ÖRNEK 4 >>% >>% >>% sin(x+y)-ex y=0 x-y=2 denklem sisteminin çözüm kümesini bulalım.y]=solve('x^2+x*y+y=3'.y]=solve(x^2+x*y+y-3.'x^2-4*x+3=0'.'x'.0992000712861186211615062078174 y= . >> syms x y >> [x.x.

>>% D harfi v bağımsız değişkenine göre türevi (yani d/dt yi) gösterir. başlama değerini 1 alarak bulalım. >>% dsolve fonksiyonunun genel formatı: dsolve('denk1'.t.z]=solve(t*x+z*y-1.5708 >>% Benzer olarak 2eX . Ç={1/5x . >> fzero( 'cos(x)'.5=0 denkleminin çözümünü.z) t= 1/5/x z= 4/5/y >>% Yani. 100 . >> fzero( '2*exp(x)-5' .'şart1'. y(x) ya da y(t) nin 3. [0 pi] ) ans = 1. Bu amaçla.2*t*x-3*z*y+2. yani cosx=0 denklemini çözelim. >>% Örneğin.…. >>% DİFERANSİYEL DENKLEMLER >>% Doğrusal diferansiyel denklemlerin analitik çözümü mümkündür. 4/5y} olacaktır. D3y. >>% adi diferansiyel denklemlerin simgesel çözümü için dsolve fonksiyonu kullanılır. Ayrıntılı bilgi için >> help funfun komutu kullanılabilir.….'şart2'.…) şeklindedir. >>% ÖRNEK 6 >>% fzero: Fonksiyon fonksiyonu. tek değişkenli bir fonksiyonun sıfırını hesaplar.'denk2'. 1 ) ans = 0.>>% ÖRNEK 5 >>% >>% >>% tx+zy-1=0 2tx-3zy+2=0 denklem sistemde x ve y parametre olmak üzere çözüm kümesini t ve z ye göre bulalım.9163 >>% NOT: MATLAB de ileri düzey nümerik analiz ve matematiksel işlemler için fonksiyon fonksiyonları >>% kullanılır. türevini ifade eder. Gösterimden emin olmak için pretty fonksiyonu ile kontrol edilebilir. >> syms x y t z >> [t. Varsayılan bağımsız değişken t dir.'v'. >>% cosx fonksiyonunun 0 ile π arasındaki kökünü bulalım.

exp(2) -------------------------x 101 . 't') ans = cos(a*t) >>% ÖRNEK 9 >>% d2y dy + 3 + y = 0 diferansiyel denkleminin çözümünü bulalım. 't') ans = C1*exp(1/2*(5^(1/2)-3)*t)+C2*exp(-1/2*(5^(1/2)+3)*t) >>% ÖRNEK 10 >>% y(1)=0 şartı altında xy’+y=2e2X birinci dereceden diferansiyel denklemin çözümünü bulalım.'y(1)=0'. y(0)=1. y’(π/a)=0 diferansiyel denkleminin çözümünü bulalım. 2 dt dt >> dsolve('D2y+3*Dy+y=0'. dt >>dsolve('Dy=1+y^2'. >> dsolve('x*Dy+y=2*exp(2*x)'.>>% ÖRNEK 7 >>% dy = 1 + y 2 diferansiyel denkleminin çözümünü bulalım.a 2 y .'x') ans = (exp(2*x)-exp(2))/x >> pretty(ans) exp(2 x) .'Dy(pi/a)=0'. 2 dt >> dsolve('D2y=-a^2*y'.'t') ans = tan(t+C1) >>% ÖRNEK 8 >>% d2y = .'y(0)=1'.

y’(0)=0 koşulları altında y”+6y’+13y=10sin5t >>% ikinci dereceden diferansiyel denklemin çözümünü bulalım.'Dy(0)=4'.'Dy(0)=0'. = -4 y + 3 x dt dt 102 . >> dsolve('D2y+6*Dy+13*y=10*sin(5*t)'.'t') ans = -1 1 cos(t) -cos(t) >>% ÖRNEK 14 >>% y(0)=0 ve x(0)=1 koşulları altında d y d x = 3 y + 4x . >> dsolve('(Dy)^2+y^2=1'.>>% ÖRNEK 11 >>% y(0)=-1/2 ve y’(0)=4 koşulları altında y”-4y=4x2 >>% ikinci dereceden diferansiyel denklemin çözümünü bulalım.'y(0)=0'.--.cos(5 t) 174 87 87 87 >>% ÖRNEK 13 >>% y’(0)=0 koşulu altında (y’)2 + y2 =1 diferansiyel denklemin çözümünü bulalım.'Dy(0)=0'.--.exp(-3 t) sin(2 t) + --.sin(5 t) .'t') ans = 125/174*exp(-3*t)*sin(2*t)+25/87*exp(-3*t)*cos(2*t)-10/87*sin(5*t)-25/87*cos(5*t) >> pretty(ans) 125 25 10 25 --. >> dsolve('D2y-4*y=4*x^2'.'y(0)=-1/2'.exp(-3 t) cos(2 t) .'x') ans = exp(2*x)-exp(-2*x)-1/2-x^2 >>% ÖRNEK 12 >>% y(0)=0.

'x(0)=1'. 103 . ode23t. >>% odefun.Y]=ode45(odefun. ode113. >>% ÖRNEK 15 d2y dy + m ( y 2 .>>% diferansiyel denklem sisteminin çözümünü bulalım.1) + y = 0 >>% Literatürde sıkça karşımıza çıkan. analitik çözümleri bulunan yüksek dereceden çok sayıda diferansiyel denklem >>% takımının da sayısal çözümleri daha pratik olmaktadır. ode45 fonksiyonunu kullanarak bulalım.'y(0)=0'. Şimdi Dormand-Prince çiftini kullanan ve belirgin Runge-Kutta (4. >>% Benzer biçimde. ode fonksiyonları sayısal integrasyon yolu ile çözümü sağlar (benzetim). zaman aralığı boyunca adım >>% adım ilerleyerek her bir zaman adımında bir çözüm hesaplar. T0 da başlangıç koşulları değerini içeren sütun vektörünü ifade eder.Y0) dır. fonksiyonun hata tolerans ölçütünü karşılarsa bu başarılı bir adım sayılır. karşılamazsa fonksiyon >>% adım boyunu kısaltarak tekrar deneme yapar.5) >>% yöntemine dayanan ode45 fonksiyonu ile diferansiyel denklem çözücülerinin genel formatını >>% inceleyelim: >>% [T. >>% Bu fonksiyonlar başlangıç koşulları ile bir başlangıç zamanından başlayıp. m-dosyası şeklinde tanımlanmış difreransiyel denklemlerin sağ tarafını ifade eder. analitik çözüm içersin ya da içermesin bütün diferansiyel denklemlerin >>% çözümünde kullanılabilir.'Dx=-4*y+3*x'. >>% Tspan.y) ye karşılık gelen bir sütun vektörü üretir. ode15s. ode23s. >>% y0. MATLAB de ode (ordinary differential equations) >>% çözüm fonksiyonları. ode23.Tspan. >>% MATLAB de değişik yöntemler kullanan “ ode45.y]=dsolve('Dy=3*y+4*x'. y’=f(t.'t') x= exp(3*t)*cos(4*t) y= exp(3*t)*sin(4*t) >>% Analitik çözümleri bulunmayan diferansiyel denklemlerin ise sayısal çözümleri mümkündür. ode23tb ” >>% gibi çok sayıda ode çözücü vardır. Eğer bir zaman adımında elde edilen >>% çözüm.Y]. >> [x. >>% Burada [T. [T0 Tson] biçiminde tanımlanan integral etme zaman değerleri anlamına gelir. 2 dt dt >>% Van Der Pol denkleminin sayısal çözümünü. başlangıç zamanı.

8190 29. >>% Şimdi. & y1 = y2 & y2 = m (1. >>% Burada seçeceğimiz y(1)=1. & >>% Burada y1 = y ve y2 = y biçiminde yeni değişkenler tanımlanırsa.y. dy=[y(2).m olarak kaydedilen bu dosya artık komut satırından çağırılabilecektir.tspan. denklemimizin son hali. mu=2.7286 29. d2y dy + m ( y 2 .0001 0.y0) t= 0 0.>>% Önce denklemi yeniden düzenleyerek 1.y1 olur. dereceden diferansiyel denklem halinde ifade etmemiz >>% gerekir.6381 29.0002 … 29.0000 104 . >>tspan=[0 30].y]=ode45('vdpmu'.m >>% olarak kaydedelim.0002 0.y). >>% vdpmu. y(2)=0 başlangıç koşulları altında ve [0 30] zaman aralığında çözüm.0001 0.0]. 2 dt dt y’’=F(t. mu*(1-y(1)^2)*y(2)-y(1)].1) + y = 0 ise. >> [t. örneğin m = 2 için y1 ve y2 nin geçerli değerlerine dönderecek bir m-dosyasını yazıp vdpmu.y12) y2 . >>y0=[1.y’) = m y’(1-y2) – y dir. (Bkz: Bölüm VI) function dy = vdpmu(t.9095 30.

0000 0 1.7065 -0.0000 -0.4363 >>% t sütun vektörü t çözümün zaman noktası değerlerini ifade eder.0000 -0.1) biçiminde t zaman noktalarında çözümün kendisi.y= 1.7776 -0.y(:.1).4205 1.3926 1.3800 1.0000 -0. y matrisinde ise.0001 1. 1. sütun y(:.0002 … … 1.0001 1.0002 1.'o') 105 .2) biçiminde t zaman noktalarında çözümün 1. Bu zaman değerleri integral almada >>% kullanılan zaman adımları (gerektiğinde bu da ayarlanabilir) olmayıp.6691 -0. >> plot(t.7426 -0. grafik için belirlenen uygun >>% adımlardır.6304 -0. sütun >>% y(:.0000 -0. türevidir. 2.4060 1.

>>% d2y dy + m ( y 2 .y1 >>% 2-) 1.0]) t= 1. >> [t. dereceden diferansiyel denklem takımı olacak şekilde >> düzenlenir. 2 dt dt y’’=F(t. dereceden diferansiyel denklem sistemini bir m-dosyasında saklayalım.y]=ode15s('vdpmu'. [0 3000] zaman aralığında m = 1000 için van der Pol >>% denklemini çözelim.[1. dereceden sistem bir m-dosyasında kodlanır. grafiğini çizdirelim.[0 3000]. y(2)=0 başlangıç koşulları altında.Hazırlanan 1.Verilen denklem 1.7982 106 . function dy = vdpmu(t.y’) = m y’(1-y2) – y dir.0000 0. 2. sonuçlar yorumlanır. >>% ÖRNEK 16 >>% y(1)=1.0e+003 * 0 0. >>% 3-) ode15s fonksiyonu ile çözümü bulup. denklemimizin son hali. & y1 = y2 & y2 = m (1. mu=1000. dy=[y(2). olur.1) + y = 0 ise. & >>% Burada y1 = y ve y2 = y biçiminde yeni değişkenler tanımlanırsa.y).0000 … 2. >>% 1-) 1. mu*(1-y(1)^2)*y(2)-y(1)].>> NOT: Yukarıdaki örnekte de görüldüğü gibi yüksek dereceden bir diferansiyel denklemin sayısal çözümü 3 >> adımda gerçekleşmektedir: 1.y12) y2 . yerine ode15s kullanılmalıdır.y. 3-Uygun ode fonksiyonu ile >> çözüme gidilir. dereceden diferansiyel denklem takımına dönüştürelim.0000 0. ode45 burada yetersiz kalacaktır.

y(:.0000 0.0010 -0.0018 -0.0010 -0.1).0000 y= 1.0010 0 0.0019 -0.8696 3.0010 -0.2.0000 0.0019 -0.0000 0.0000 0.0000 0.0000 … … 0.'o') 107 .8220 2.8458 2.0000 >> plot(t.0e+003 * 0.0000 0.0020 -0.0020 -0.

y). y3=y’’ değişken değişimi yapılırsa. dy=[y(2).9313 0. -1]) t= 0 0. function dy=diffonk(t. >>% >>% >>% >>% 1.0001 0.3*y(3)+y(2)*y(1)]. >>% [0 1] aralığında çözüm.[0. 1.0002 … 0.dosyası.>>% ÖRNEK 17 >>% y’’’ . Denklemin çözümünü bulalım.9657 0. y’(0)=1.[0 1].y(3).9828 1. >>% y’’(0)=-1 olarak tanımlanmıştır.y’y = 0 biçiminde verilen bir diferansiyel denklemde.0002 0. >> [t.dereceden denklem sisteminin m. >>% y1=y. başlangıç koşulları y(0)=0.3y’’ .9485 0.y]=ode45('diffonk'. y1’= y2 y2’= y3 y3’ = 3y3 + y2y1 olur.0000 108 . y2=y’.0001 0.

y(:.5255 -0.'o') % y(:.1).6459 -0.6066 -17.t.2427 -19.7586 -5.0006 … … … -0. y(:.0003 0.0297 -15.0005 0.y= 0 1.y(:.5897 -4. 109 .t.0002 0.9999 -1.3110 -16.9170 -18.türevi.4417 -4.0001 0.0000 0.9998 -1.0002 0.8015 -0.1) çözüm.0001 0.9999 -1.6714 -4.türevidir.4404 >> plot(t.y(:.5132 -4.0000 -1. y(:.3) çözümün 2.0002 0.2).2) çözümün 1.3).'*'.9998 -1.9915 -0.

pi/4) Warning: Obsolete syntax.y).8593 0. >> [x.2000 0.1818 110 . dy= 2*x*(cos(y))^2.6000 0.y0.0000 1. > In funfun\private\odearguments at 41 In ode23 at 172 x= 0 0.1071 1.0.9367 1.4000 1. function dy= diffonk(x.0232 1..tspan.2000 1..0000 y= 0. Use ode23(fun..y]=ode23('diffonk'.7854 0.) instead.2.4000 0.8000 1.8000 2.8050 0.>>% ÖRNEK 18 >>% y’ = 2cos2 (y) diferansiyel denklemini ode23 fonksiyonunu kullanarak çözelim.6000 1.

y1y3.2970 1.y(:.2451 1.1)) >>% ÖRNEK 19 >>% >>% >>% >>% y1’= y2y3.3735 >> plot(x.51y1y2. Y3’= -0. y1(0)=0 y1(0)=1 y1(0)=1 diferansiyel denklemini çözelim. 111 .1. Y2’= .3393 1.

8712 12.0000 0.0000 1. >> [t.8539 0.4098 -0.6136 11.0000 1.51*y(1)*y(2)].6987 -0.0001 1.7128 0.0000 … … … -0.0000 1.0001 0.0002 1.4847 11.9540 0.[0.8650 112 .8974 -0.0000 0.y) dy=[y(2)*y(3).-0.0002 … 11.0002 0.9279 -0.0000 y= 0 1.0002 1.0001 0.7424 11.9548 -0.[0 12].0000 1.9763 -0.0000 0.y]=ode45('rig'.function dy=rig(t.5169 -0.6135 -0.2936 -0.9102 0. 1]) t= 0 0.7874 0.0000 0. 1.0000 1.-y(1)*y(3).0001 1.

>> plot(t.'-.y(:.t. function dy=diffonk(t.y(:.y).13y1 + 10sin5t olur.-6*y(2)-13*y(1)+10*sin(5*t)].'. y1’= y2 y2’= -6y2 .t.dosyası. >>% y1=y.'-'. y2=y’ değişken değişimi yapıldığında. y’(0)=0 başlangıç koşulları altında ikinci dereceden diferansiyel denklemin sayısal çözümünü bulalım.2). dy=[y(2).y(:.1).dereceden denklem sisteminin m. >>% >>% >>% 1.') >>% ÖRNEK 20 >>% (Örnek 12 de analitik olarak çözdüğümüz) >>% y”+6y’+13y=10sin5t y(0)=0.3). 113 .'.

0732 0.0192 0.1325 -1.0383 0.1244 … … 0.0014 0.0575 0.0767 … 0.6708 0.9534 0.6244 0.0088 0.1135 -1.y]=ode45('diffonk'.0033 0.9767 0.0339 0.6763 114 .0748 -1.6603 0.9650 0.>> [t. 0]) t= 0 0.0000 y= 0 0 0.[0 .0004 0.9883 1.0001 0.6448 0.0942 -1.[0 1].0553 -1.

y(:.>> plot(t.1)) 115 .

%İstenen iki sayının karelerinin ortalamasını alır. Düzyazı (script) m dosyaları: Bir dizi MATLAB deyimini otomatik olarak icra eder.3) yazıp.b) y=(a^2+b^2)/2.inM) giriş argümanlarını.m dosya adı ile varsayılan olarak work klasörüne kaydettiğimiz m dosyamız artık kullanıma hazırdır. M-dosyalarının iki türü vardır: 1.b) fonksiyonunu yazalım. Fonksiyonların genel yazım formatı: function [out1. Bu dosyalar. yani komut satırında yazıyor ve işletiyorduk (run). r = 10 s = 1.. yani fonksiyon tanım satırı... Fonksiyon (function) m dosyaları: Giriş olarak argümanlar kabul eder ve çıkış olarak bu argümanlara karşılık gelen çözümü üretir.out2. s=4*pi*r^2.m olarak saklanır.in2. Fonksiyon. M ve N sıfır veya herhangi bir pozitif tamsayı olabilir.... . % r yarıçapı ile verilen bir kürenin alan ve hacmini bulur. .. (out1. m dosyaları (m-files) olarak adlandırılır ve genel olarak *.out2. r=10...outN) ise çıkış argümanlarını gösterir. 2. Bu format. Böylece her seferinde klavyedan komutları tekrar tekrar girmeye gerek kalmaz.outN] = fonksiyon_adı (in1. v=4/3*pi*r^3. function y=hesapla(a. örneğin hesapla(2.BÖLÜM VI MATLAB de PROGRAMLAMA Daha önceki bölümlerde komutlarımızı interaktif modda. hesapla.. m kelimesi MATLAB ın ilk harfinden gelir. Örnek olarak.m şeklinde gösterilir. (in1.c gibi. iki sayının karelerinin ortalamasını alan hesapla(a. Örnek. fonksiyon_adı ile çağrılır ve fonksiyon_adı. Komut satırında.188790204786391e+003 Farklı r yarıçap değerleri için alan ve hacimler kolayca hesaplanabilir.256637061435917e+003 v = 4. m-dosyasının ilk satırında olmalıdır....in2.inM) Şeklindedir. Tıpkı C++ dilindeki . enter tuşuna basarsak sonuç aşağıdaki gibi ekrana gelir: 116 .. Programlama mantığı çerçevesinde artık kodlarımızı bir dosyaya yazıp bu dosya üzerinden çalıştıracağız.

enter tuşuna basarak programımızı çalıştırabiliriz. Eğer verilen ad geçerli ise 1. >> isvarname hesapla ans = 1 Bir MATLAB Programının Anatomisi 1. Bir değişkenin üzerine başka bir değer atanırsa. 4. MATLAB ekranında File*New*M file komutuyla veya komut satırından edit komutunu yazıp Enter’a basarak ya da fareyle File-New-M-File ı seçerek etkileşimli m dosyası yazmak için Editor/Debugger ekranına geçelim. Değişken adları bir harfle başlamalıdır. Bir değişkeni atamadan önce atamanın sağ tarafında bir değer olmalıdır. yani büyük A ile küçük a ayrı ayrı değişkenlerdir. isvarname fonksiyonuyla kontrol edilebilir. Diğer bir deyişle maksimum değişken adı uzunluğu 63 karakter olmalıdır. 117 . gelen pencerede (m dosyaları için varsayılan çalışma klasörü olan work e) kaydedelim. Adım: MATLAB ı çalıştıralım. İleriki aşamalarda ise bir konu başlığı altında ayrı bir klasör açıp. Komut satırında bir değişkene kesinlikle MATLAB ın kendi hazır m dosyalarının isimlerinden biri verilmemelidir. 3. MATLAB ı ilk açtığımızda work klasörü aktif. Daha önce kullanılan değişkenler whos komutu ile görüntülenebilir. ancak MATLAB değişken adının ilk 63 karaterini dikkate alır. Bunun için MATLAB Editor/Debugger pencerisinde Run ikonuna tıklayarak veya F5 kısayol tuşuyla ya da komut penceresinde.3) ans = 6. rakam veya altçizginin kombinasyonu gelebilir. Burada herhangi bir metin (text) editöründe de (örneğin Not Defteri veya Word Programı gibi) MATLAB m dosya kodu yazabiliriz. Bu nedenle kolaylık olsun diye ilk başlarda m dosyalarımızı work klasörüne kaydedebiliriz. Yazdığımız MATLAB kodunu Ctrl+S tuş kombinasyonu veya File*Save komutu ile ya da save ikonuna tıklayarak. 3. Aksi takdirde MATLAB ın kendi m dosyası clear all komutu kullanılmadıkça işletilemez. kaydettiğimiz m file dosyasının adını ekrana yazıp. Adım: Kodu kaydedelim. Ayrıca bir değişkene verilen adın daha önce kullanılıp kullanılmadığı. değilse 0 değeri gösterilir.5000 M-Dosyalarında değişken kullanımı: 1. Adım: Program kodunu yazalım. Örnek. Ancak programın çeşitli aşamalarını test edebilmek ve hataları anında düzeltip yeni sonuçları görebilmek için MATLAB ın kendi editörünü kullanmak daha doğru olacaktır. 2. 5. 2. yani geçerli klasör olarak ekrana gelir. Adım: Programı çalıştıralım. sonra herhangi bir harf. Değişken uzunluğu herhangi bir uzunlukta olabilir. 4. MATLAB büyük küçük harfleri ayırt eder. m dosyalarını buraya kaydetmek ve yine bu klasörden çalıştırmak gerekebilir.>> hesapla(2. eski değişkenin değeri atanan yeni değişkenin değeri olur.

sayısal sonucu metne bağlayan num2str fonksiyonu disp fonksiyonu ile kullanılabilir. program işleyişinde ya da veri girişi hata uygulamalarında metin dizgesel ifadeleri göstermek için kullanılır. geçerli çalışma ortamında değişkenler kullanarak işleme konacak herhangi bir ifade olabilir. disp(x) Uyarı: Tanımlanmamış sembol girdiniz! 1 2 3 4 5 Veri çıkışlarında. disp('Uyarı: Tanımlanmamış sembol girdiniz!') disp(' ') x=[1 2 3 4 5]. sayısal sonuçları aynı satırda gösterebilmek için. Örnek. disp(' ') komutu kendisinden önce ve sonra gelecek satır arasında bir satır boşluk sağlar. input('prompt'. 118 . bir dizi veya metni görüntüler. Örnek.']) İşlemin sonucu: 5 dir. x=5. Örnek. yani genelde metinsel bir ifade gerektiğinde kullanılır.Veri Giriş-Çıkışları Ve Hata Bildirimleri İçin Kullanılan Önemli Fonksiyonlar input fonksiyonu: input fonksiyonu kullanıcıdan bir veri girişi istendiğinde kullanılır.'s') ise bir değişken adı veya sayısal değerden ziyade girilen dizgeyi bir metin değişkeni olarak döndürür. Genel sözdizimi: kullanıcı_girişi = input('prompt') kullanıcı_girişi = input('prompt'. disp(x) komutu ise. Tek tırnaklar arasındaki boşluk sayısının önemi yoktur. prompt. x bir karakter dizgesi ise metin olarak görüntülenir. 's') şeklindedir.num2str(x).' dir. disp(['İşlemin sonucu: '. s takısı giriş olarak bir karakter dizge girişi. input('prompt') kullanıcının klavyeden yapacağı bir giriş için bekler ve girilen değeri kullanıcı_girişine döndürür. a=input('Bir sayı giriniz: Bir sayı giriniz: ') disp fonksiyonu: disp fonksiyonu genelde. Genel yazım formatı: disp('prompt') şeklindedir. Dizi görüntülemede dizinin adı yazılmaz ve boş bir dizi görüntülenmez.

Burada yüzde işareti % sabittir ve mutlaka bulunmalıdır. Genel yazım biçimi: fprintf('format' . çıkışın sola hizalı olacağını.5f İşaretleyici -zorunluDeğiştirici -isteğe bağlıAlan genişliği -isteğe bağlıTamlık -isteğe bağlıFormat tanımlayıcı -zorunlu- Karakter \n \r \b \t \f '' \\ %% Kaçış (Kontrol) Kodları Tanımı Yeni bir satıra başlar (return or Enter) Yeni satırın başı (linefeed) Carriage return Geriboşluk karakteri (backspace) Yatay sekme karakteri (Tab) Formfeed karakteri Apostrof karakteri (iki tek tırnak) Ters bölü karakteri (backslash) Yüzde işareti karakteri Belirteç %e %E %f %g %G %s %c %d Dönüşüm (Biçim) Kodları Tanımı Küçük harfle bilimsel notasyon Büyük harfle bilimsel notasyon Sabit nokta (ondalık) notasyon En kısa olmasına göre %e veya %f %g ile aynı ancak E kullanır karakter dizgesi tanımlar Tekil karakter İşaretli ondalık notasyon Örnekler: fprintf('Islem sonucu %d bulunmustur.00 bulunmustur.fprintf fonksiyonu: fprintf komutu.A. .. 119 . Islem sonucu 2007 bulunmustur.. Bayrak (flag) olarak adlandırılan [-/+/0] gösteriminde – işareti. Islem sonucu 2007. formatlı program çıkışını ekranda göstermek için kulanılır. .) şeklindedir. % işaretinden sonra yazılacak ifadelerin arasında boşluk bırakılmamalıdır.liste. Yazdırılacak rakamların minimum alan genişliğini sayı1. 2007). fprintf('format' . Burada liste.) şeklindedir. Daha basit bir yazım biçimi ise. Kod.. ondalık göstergesi olan noktanın sağındaki rakam sayısını ise sayı2 ifade eder. Komuttaki format stringinin genel formatı: % [ -/+/0 ] [sayı1. Sayı alanı ve kesinliği. \n'.. % -12. \n'. sayı2] Kod şeklindedir. + işareti. denetim ve veri türü bilgisini daha doğrusu dönüşüm karakterlerini içerir. Köşeli parantez içindeki kısımlar isteğe bağlıdır. 2007). önünde sürekli + işaretinin olacağını ve 0 işareti de sayı alanında boş hanelerin 0’larla doldurulacağını gösterir.2f bulunmustur. virgülle ayrılan değişken adlarını listeler. fprintf('Islem sonucu %7. sayı1 ve sayı2 ile belirlenir. 'format' stringinde belirtilen formatta A dizisi veya ek dizi argümanlarının elemanlarını gösterir.

Program Yazımında Sıkça Kullanılan Koşul Deyimleri (CONDITIONAL STATEMENTS) if (eğer) Deyimi: if deyimin genel formatı: if mantıksal ifade deyim end şeklindedir. Eğer mantıksal ifade doğru ise deyim de belirtilen işlem yapılır ve end ile işlem sona erdirilir. Örnek 1:
a=input('Bir sayı giriniz: ');

if a>0 disp('Pozitif bir sayı girdiniz.') end

Bir sayı giriniz: 4 Pozitif bir sayı girdiniz.

Örnek 2: Birden fazla if ifadesi ard arda kullanabilir. Burada, her if ifadesi end ile sonlandırılmalı, yani kaç tane if varsa o kadar da end olmalıdır.

a=input('Bir sayı giriniz:

');

if a>0 disp('Pozitif bir sayı girdiniz.') end if a==0 disp('İşaretsiz bir sayı girdiniz.') end if a<0 disp('Negatif bir sayı girdiniz.') end

Bir sayı giriniz: 4 Pozitif bir sayı girdiniz. Bir sayı giriniz: 0 İşaretsiz bir sayı girdiniz. Bir sayı giriniz: -5 Negatif bir sayı girdiniz.

120

else (başka) Deyimi: else deyiminin genel formatı:
if mantıksal ifade deyim takımı-1 else deyim takımı-2 end şeklindedir. Eğer mantıksal ifade doğru ise deyim takımı-1’de belirtilen, yanlış ise deyim takımı-2’de belirtilen işlem yapılır ve end ile işlem sona erdirilir. else deyim takımı-2 şeklindeki yazım da doğrudur, ancak else den sonra en az bir boşluk bırakılmalıdır. Örnek:
if a < 50 sonuc= 5*a else sonuc= 2*a end Bir a degeri giriniz: 9 sonuc = 45 Bir a degeri giriniz: 100 sonuc = 200 Bir a degeri giriniz: 50 sonuc = 100

elseif (eğer-başka) Deyimi: elseif deyiminin genel formatı: if mantıksal ifade-1 deyim takımı-1 elseif mantıksal ifade-2 deyim takımı-2 . . . elseif deyim takımı-n end

121

şeklindedir. Eğer mantıksal ifade-1 doğru ise deyim takımı-1’de belirtilen işlem gerçekleştirilir; değilse başka bir mantıksal ifade-2 verilir ve eğer bu ikinci şart doğru ise deyim takımı-2’de belirtilen işlem gerçekleştirilir ve bu durum deyim takımı-n e kadar böylece sürüp gider. Örnek 1:
a=input('Bir sayı giriniz: ');

if a>0 disp('Pozitif bir sayı girdiniz.') elseif a==0 disp('İşaretsiz bir sayı girdiniz.') elseif a<0 disp('Negatif bir sayı girdiniz.') end

Bir sayı giriniz: 9 Pozitif bir sayı girdiniz. Bir sayı giriniz: 0 İşaretsiz bir sayı girdiniz. Bir sayı giriniz: -7 Negatif bir sayı girdiniz.

Örnek 2:

ì x + y x ³ 0 ve y ³ 0 ï f (x) = íx +1/ y x ³ 0 ve y < 0 ï x. y x < 0 veya y < 0 î
clear all, close all, clc

fonksiyonu için, if-elseif-end yapısıyla bir program yazalım.

% x ve y fonksiyon girdi değişkenleri, % f ise, fonksiyonun aldığı değeri gösteren çıktı değişkenidir. x=input('x değerini giriniz: y=input('y değerini giriniz: if x>=0 & y>=0 f=x+y elseif x>=0 & y<0 f=x+1/y elseif x<0 | y<0 f=abs(x*y) end '); ');

122

x değerini giriniz: y değerini giriniz: f = 8.7500

9 -4

Örnek 3: if-elseif-else deyimlerini birlikte kullanarak basit bir hesap makinesi programı yazalım.

clear all; close all; clc; disp('bhm: basit hesap makinesi') disp('==========================') disp( ' ' ) a=input('İlk sayıyı giriniz: '); b=input('İkinci sayıyı giriniz: '); c=input('Yapacağınız işlemin sembolünü giriniz: if c=='+' sonuc=a+b elseif c=='-' sonuc=a-b elseif c=='*' sonuc=a*b elseif c=='/' if b==0 disp('Uyarı: Bölme işleminde bölen sayı sıfır olamaz!') else sonuc=a/b end elseif c=='^' sonuc=a^b else disp('Uyarı: Tanımlanmamış işlem sembolü girdiniz!') end

+, -, *, /, ^

===>

', 's');

bhm: basit hesap makinesi ========================== İlk sayıyı giriniz: 5 İkinci sayıyı giriniz: 9 Yapacağınız işlemin sembolünü giriniz: sonuc = 45

+, -, *, /, ^

===>

*

123

Giriş ifadesi hiçbir case değerini karşılamıyorsa otherwise ile belirtilen deyim grubu yürütülür. Örnek 1: Girilen bir açı değerinin hangi bölgede olduğunu ve sinüs değerinin işaretini bulmak için aşağıdaki kodu switch-case-otherwise yapısıyla yazalım. Giriş ifadesi. . 2.switch-case-otherwise (değiştir-durum-aksi durum) Yapısı: switch-case-otherwise yapısı. otherwise deyim grubu-n end şeklindedir. Bölgede ve sinüsü pozitif') case 2 disp('III. else ve elseif yapılarının kullanımına bir alternatif oluşturur. sonuç fix fonksiyonu ile 0 a doğru en yakın tamsayıya yuvarlatıldı ve böylece analitik düzlemin bölgeleri 0. switch-case-otherwise yapısının genel formatı: switch giriş ifadesi (skaler veya karakter dizgesi) case ifadesi deyim grubu-1 case ifadesi deyim grubu-2 . Bölgede ve sinüsü negatif') otherwise disp('0 ile 360 derece arasinda bir deger giriniz') end Derece cinsinden bir açı değeri giriniz: 275 IV. 124 . Burada her bir case değeri ayrı bir satırda olmalıdır. Bölgede ve sinüsü pozitif') case 1 disp('II. . her bir case değeri ile karşılaştırılır ve sonuç deyim gurubuyla verilir. yukarıda gördüğümüz if. switch fix(angle/90) case 0 disp('I. angle=input('Derece cinsinden bir açı değeri giriniz: '). Bölgede ve sinüsü negatif') case 3 disp('IV. 3 sayı durumlarıyla belirtilmiş oldu. Aslında switch-case-otherwise ile yapılan herşey if yapılarıyla da yapılabilir ama switch-case-otherwise ile yazılan programlar daha okunabilir bir özelliğe sahiptir. 1. açı değerleri 90 a bölünüp. Bölgede ve sinüsü negatif Yazdığımız kodda.

j artım miktarlı ilk değeri m. disp('Güney') case {-270.') end Bir açı değeri giriniz: 85 Böyle bir yön yoktur. Her for döngüsü end ile kapatılmalıdır.270}. disp('Doğu') case {-90. for i=1:5 x=i^2 end 125 . bir komut ifadesini ya da bir komut ifadesi grubunu önceden saptanan bir sayı kere yürütür. disp('Batı') otherwise.360}. disp('Böyle bir yön yoktur. Örneğin ifade döngüdeğişkeni=m:j:n şeklinde ise burada m:j:n. yani bir grup bilginin birkaç defa değerlendirilmesinde kullanılır. for i=1:5 disp('MATLAB') end MATLAB MATLAB MATLAB MATLAB MATLAB Örnek 2: 1 den 5 e kadar sayıların karelerini ekrana farklı şekillerde yazdıralım. MATLAB yazısını ekranda 5 kez bastıralım. Örnek 1: for döngüsünü kullanarak. angle=input('Bir açı değeri giriniz: '). for (için) Döngüsü: for döngüsü.Örnek 2: Girilen açı değeri ile yönü veren bir kod yazalım. Bir for döngüsününnün genel formatı: for döngüdeğişkeni=ifade deyimler end şeklindedir. disp('Kuzey') case {-180. son değeri n olan bir sayı aralığıdır.90}.180}. switch angle case {0.

i)=i^2. for i=1:5 x(i. end x x = 1 4 9 16 25 126 . for i=1:5 x(:.:)=i^2. 5 in karesini yazdırmak istersek. for i=1:5 x=i^2.x = 1 x = 4 x = 9 x = 16 x = 25 Sadece son değerin. end x x = 25 Matris endeksleme ile sonucu sütun şeklinde yazdıralım. end x x = 1 4 9 16 25 Matris endeksleme ile sonucu satır şeklinde yazdıralım.

Vektör endeksleme ile sonucu satır şeklinde yazdıralım.. num2str(t). elseif mod(i.num2str(n). % 1 den n’e kadar pozitif tek ve çift tamsayıların % kareleri toplamını bulan program.. ' e kadar tek tamsayıların kareleri toplamı: '.mod(i.num2str(n). for i=1:n if mod(i.2)==0 c=c+i^2. 1 den 100 e kadar tek tamsayıların kareleri toplamı: 166650 dir.2)==0 ifadesi ile çift sayıları (2 ile bölündüklerinde kalan 0 dır). num2str(c). end end disp(['1 den '.. for i=1:5 x(i)=i^2. c=0. 127 . clear all. ' e kadar çift tamsayıların kareleri toplamı: '..2)==1 ifadesi ile de tek sayıları (2 ile bölündüklerinde kalan 1 dir) belirledik. Tek ve çift sayıların kareleri toplamı için...clc n=input('n pozitif tamsayı değerini giriniz: ').']) n pozitif tamsayı değerini giriniz: 100 1 den 100 e kadar çift tamsayıların kareleri toplamı: 171700 dir.' dir. end x x = 1 4 9 16 25 Örnek 3: 1 den n e kadar pozitif tek ve çift tamsayıların kareleri toplamlarını bulan bir kod yazalım. ' dir.']) disp(['1 den '. Burada mod(i.2)==1 t=t+i^2. t=0. başlangıçları 0 alarak for döngüsüyle sonuca ulaştık.

0f'. clc disp(' disp(' 1 2 3 4 5 6 7 8 9 10') --. işlem Ctrl+C ile durdurulabilir. end kt plot(kt) xlabel('sayı').--9 10 18 20 27 30 36 40 45 50 54 60 63 70 72 80 81 90 90 100 while (süresince-iken) Döngüsü: while döngüsü. for j=1:10 fprintf(' %3.ylabel('karesinin tersi') 128 . % 1 den 10 a kadar sayıların karelerinin terslerini bulur. Örnek 1: 1 den 10 a kadar sayıların karelerinin terslerini bulan ve karelerinin terslerinin sayısına göre grafiğini çizen bir program yazalım. denetleyen deyim doğru (1) olduğu sürece bir ifadeyi veya ifade grubunu yürütür.--.--.0f'. Eğer döngü sonsuz çevrime girerse. end fprintf('\n')./i^2.---') for i =1:10 fprintf(' %2.--. end 1 2 3 4 5 6 7 8 9 10 1 --1 2 3 4 5 6 7 8 9 10 2 --2 4 6 8 10 12 14 16 18 20 3 --3 6 9 12 15 18 21 24 27 30 4 --4 8 12 16 20 24 28 32 36 40 5 --5 10 15 20 25 30 35 40 45 50 6 --6 12 18 24 30 36 42 48 54 60 7 --7 14 21 28 35 42 49 56 63 70 8 --8 16 24 32 40 48 56 64 72 80 9 10 --.--. clear all. Her while döngüsü end ile kapatılmalıdır.Örnek 4: İç-içe for döngüsünü kullanarak çarpım taplosu kodu yazalım.--. i=1. while i<11 kt(i)=1.--.--. % Grafiğini çizer. Bir while döngüsünün genel formatı: while ifade deyimler end şeklindedir.i). i=i+1.--.i*j).

010000000000000 0.040000000000000 Columns 7 through 8 0.250000000000000 Örnek 2: n! hesabında n in hangi değeri için sonucun 1000 den küçük olacağını bulan bir kod yazalım. close all.062500000000000 0.kt = Columns 1 through 2 1.015625000000000 0.012345679012346 0.020408163265306 Columns 9 through 10 0.111111111111111 Columns 5 through 6 0. clc n=1. end sonuc=n-1 sonuc = 6 129 . while prod(1:n)<1E3 n=n+1.027777777777778 0.000000000000000 Columns 3 through 4 0. clear all.

Ortalaması:%g. %Sayıcı artımı.Ortalaması:5.. iv. ii.9 6 Girilen sayı adeti:5. while ~isempty(data) %Veri var mı? Yoksa. Öğrencinin adı.sum(v). girdiği sayıların toplamını. i. ortalamasını ve standart sapmayı veren bir program yazalım. Son olarak da başka bir öğrenci notu girilip girilmeyeceğini e/h (evet/hayır) şeklinde sorgulatalım.Toplamı:%g. Genel ortalamayı. soyadı ve numarasını giriniz.mean(v). 1.703.Standart sapma:%g\n'. 130 . data=input('Bir sayı giriniz (İşlemi bitirmek için enter a basınız): ').vize.489307 Örnek 4: Öğrenci notlarını girerek genel ortalamayı hesaplayan bir program yazalım. clc data=input('Bir sayı giriniz (İşlemi bitirmek için enter a basınız): '). v(i)=data. iii. 2. clear all.78 5 5. işlemi kes. %Sayıcı başlangıcı. vize ortalamaların %30 u + ödevin %20 si + final notunun %50 si şeklinde hesaplatalım ve harfsel karşılığını yazdıralım.5406. i=i+1.Toplamı:27.Standart sapma:0. ödev ve final notlarını giriniz. onu v vektöründe sakla.Örnek 3: Kullanıcıdan istediği miktarda sayı girmesini..length(v). %Evet: Veri geldi. i=1.std(v)) Bir Bir Bir Bir Bir Bir sayı sayı sayı sayı sayı sayı giriniz giriniz giriniz giriniz giriniz giriniz (İşlemi (İşlemi (İşlemi (İşlemi (İşlemi (İşlemi bitirmek bitirmek bitirmek bitirmek bitirmek bitirmek için için için için için için enter enter enter enter enter enter a a a a a a basınız): basınız): basınız): basınız): basınız): basınız): 5. end disp(' ') fprintf('Girilen sayı adeti:%g. .vize. işlemi bitirmek için enter a basmasını ve sonuçta kaç sayı girdiğini. close all.023 5.

elseif (not>=80) & harf='B'. %Açık pencereleri kapat. not=(mean(vize1.vize2))*(30/100)+odev*(20/100)+final*(50/100).not. diger=input('Başka bir öğrenciyi girmek ister misiniz [e/h]?'. clc. %Giriş verileri. odev=input('Ödev notunu giriniz: '). end harfsel karşılığı. no=input('Öğrencinin numarasını giriniz: '. vize1=input('1. elseif (not>=60) & harf='D'. döngü yürütülür.'s'). vize notunu giriniz: 87 2. close all. disp(' ') %Not ortalamasının if (not>=90) harf='A'. vize2=input('2.'s'). (not<90) (not<80) (not<70) %Çıkış verileri fprintf('%s nolu %s. %Komut penceresini temizle. final=input('Final notunu giriniz: '). % Daha başlangıçta bir kere döngüye girer. elseif (not>=70) & harf='C'.2f .'s').. no.Harfsel Karşılığı: A Başka bir öğrenciyi girmek ister misiniz [e/h]? 131 . elseif (not<60) harf='E'. end Genel not ortalamasını hesaplatan program ========================================= Öğrencinin adı ve soyadını giriniz: Sinan Bayram Öğrencinin numarasını giriniz: 97051207 1. vize notunu giriniz: 83 Ödev notunu giriniz: 90 Final notunu giriniz: 95 97051207 nolu Sinan Bayram. Ortalama Notunuz: 91. ad=input('Öğrencinin adı ve soyadını giriniz: '.harf). vize notunu giriniz: '). Ortalama Notunuz:%7.. %Bütün değişken değerlerini sil. while diger=='e' %Cevap evet 'e' ise. %Genel not ortalaması hesabı.ad. vize notunu giriniz: ').Harfsel Karşılığı: %s\n'.clear all. disp('Genel not ortalamasını hesaplatan program') disp('=========================================') disp(' ') diger='e'.. disp(' ') %İşlemin devamının sorgulatılması.60 .

-4.3010 -1.0000 Columns 8 through 10 0. for k=1:length(t) if t(k)<0 continue end t(k)= log10(t(k)).1].3.6021 -3.0000 0. break deyimi ise.5917 132 .4.4771 -2.0000 0.2.-3. end t t = Columns 1 through 7 -5.-1. Örnek 2: for t=1:10 m=100-t^3 if m<0 break end n=sqrt(m) end m m = 99 n = 9.0000 0 Görüldüğü gibi eksi işaretli sayılar işleme konulmamıştır.5.9499 m = 92 n = 9.0000 0. for/while döngülerinde program akışını her ne olursa olsun bir sonraki çevrime geçirir.-2.6990 -4. Örnek 1: t=[-5.continue ve break Deyimleri: continue deyimi. for/while döngülerinde verilen koşul sağlandığında o andaki işlemi orada keser.

/(sin(x)-cos(x)). toc fonksiyonu) Programlama işlemlerinde hesaplama ya da yürütme süresi kavramları dikkate alınmalıdır. tic. x=0:0.*cos(x)). tic.m = 73 n = 8. 133 .104800 seconds. bu işleme derleme. toc. Bunun için help timefun komutu ile yardım alınabilir. derleme işini yapan programlara da derleyici (compiler ) denir.5440 m = 36 n = 6 m = -25 m = -25 Görüldüğü gibi yine eksi işaretli sayılar işleme konulmamıştır. Elapsed time is 0. Programlamada Zamanlama (tic. toc fonksiyonu bir işlemin ne kadar süre aldığını ölçmek için kronometre gibi kullanılır.) MATLAB de yazılmış (Türkçe karakter kullanılmamasına dikkat edilmelidir!) olan bir fonksiyon m-dosyasını ya da GUI uygulamasını derlemek için mcc ve mbuild adlı iki temel fonksiyon vardır. MATLAB Derleyicisi (mcc) ile fonksiyon m-dosyaları veya grafik kullanıcı arayüzü (GUI) şeklindeki programlar. (Ve bu durumun tersi de mümkün olmaktadır.001:100. kronometreyi başlatır. tic. C/C++ diline dönüştürülebilmektedir. MATLAB Derleyicisi (compiler) Bir programın çalışabilmesi için önce makine diline çevrilmesi gerekir. toc ise tic in kullanıldığı andan itibaren geçen süreyi yazdırır. y=(sin(x).

m olarak work klasörünekaydettikten sonra. dereceden denklem cozumu') disp(' ') %Katsayilari girme a=input ('a katsayisini giriniz (a katsayisi 0 olmamalidir!): '). function [x1.sqrt(D) )/(2*a). fonksiyon adıyla aynı adlı idddkokleri. x2=( -b .x2]=iddkokleri disp('ax^2+bx+c=0 seklindeki 2.Şimdi bir örnekle. MATLAB ortamında yazdığımız bir m-fonksiyon dosyasını C kodunda .' kok2: '. dereceden denklemin köklerini bulan bir program yazıp. >> mbuild-setup "Please choose your compiler for building standalone MATLAB applications: Would you like mbuild to locate installed compilers [y]/n?" y yazıp enter a bastığımızda compiler seçeneği ile karşılaşırız. 134 .' kok2: '. Burada 1. Türkçe karakter kullanmadan fonksiyon m-dosyasını oluşturalım.4.' dir.num2str(x1).']) elseif D>=0 disp('Denklemin iki reel ayrik koku vardir. Örnek: ax2+bx+c=0 şeklindeki 2.num2str(x1).') disp(['kok1: '.num2str(x2).']) elseif D==0 disp('Denklemin iki esit koku vardir. derleyelim.' dir. % Kokleri sinama if D<0 disp('Denklemin iki kompleks koku vardir.' kok2: '.' dir.') disp(['kok1: '.0 in D:\Program Files\Borland [2] Lcc C version 2. Böylece MATLAB ın imkânlarını MATLAB yüklü olmayan başka bilgisayarlarda da kullanabiliriz.num2str(x2). doğrudan çalıştırılabilir bir programa nasıl dönüştüreceğimizi .2 veya 0 girmemiz istenecek. c=input ('c katsayisini giriniz: '). yani derleyeceğimizi görelim.exe uzantılı. derleyici konfigürasyonu için komut satırına mbuild –setup komutunu girelim.']) end Programı yazıp.1 in D:\MATLAB71\sys\lcc [0] None Compiler [1] seçildiği varsayılırsa. b=input ('b katsayisini giriniz: '). disp(' ') Katsayilar=[a b c] % Dikstriminant bulma D=b^2-4*a*c.num2str(x2).') disp(['kok1: '. Önce. Select a compiler: [1] Borland C++Builder version 6.num2str(x1). % Kokleri bulma x1=( -b + sqrt(D) )/(2*a).

m komutunu girerek. iddkokleri.exe dosyası work klasöründe oluşturuldu.m dosyasını iddkokleri. komut satırında mcc-m iddkokleri.dll succeeded.Please verify your choices: Compiler: Borland C++Builder 6.bat From template:D:\MATLAB71\BIN\win32\mbuildopts\bcc56compp.dll succeeded –> “”D:\MATLAB71\bin\win32\mwregsvr” “D:\MATLAB71\bin\win32\mwcommgr.exe haline dönüştürdüğümüz programımızı MATLAB den bağımsız olarak kullanabiliriz.bat Done . y yazıp enter a basarak doğruluğunu onaylayalım. –> “”D:\MATLAB71\bin\win32\mwregsvr” “D:\MATLAB71\bin\win32\mwcomutil.exe dosyasına dönüştürebiliriz. . .dll”"DllRegisterServer in D:\MATLAB71\bin\win32\mwcommgr. Derleyici konfigürasyonunu başarıyla tamladığımıza göre. 135 .0 Location: D:\Program Files\Borland Are these correct?([y]/n): y Doğrulama istenecek. Artık . Böylece işlemimiz sorunsuz tamamlanmış oldu. >> mcc-m iddkokleri iddkokleri. Try to update options file: C:\Documents and Settings\Administrator\Application Data\MathWorks\MATLAB\R14SP3\compopts.dll”" DllRegisterServer in D:\MATLAB71\bin\win32\mwcomutil.

Valentine.ufl.rit.edu/lab/ms/MATLAB/MATLAB.mathworks.edu/~tilbury/tutorials/MATLAB.HTM 8.utah. ftp://ftp. http://www. Aslan İnan.ubc.shtml 2.htm 15.html#MATLAB 6. http://www. Papatya.owlnet. http://www.shtml 3. Vipas.geosc.mathworks.edu/~trapp/wvuMATLAB. http://www. http://www.html 10. Hahn & Daniel T.com/faq 5.utexas.engin. http:// www. İbrahim Yüksel.html 18.edu/~geiTy/MATLAB/masterOutline.html 17. 2007 İnternet Kaynakları: 1.me. http://www.edu/~ceng303/MATLAB/MatCont. http://www. 2000 3.edu/~gilliam/m5399-MATLAB.edLi/~hennesse/geosc203_html/lutorial. http://www. http://www-personal. MATLAB ve Programlama.com/products/deinos/index.com/pub/doc/MATLAB_frequently_asked_questions 4.cc.htm 12.math.umich.html 16.rice. http://www. http://www.edu/help/MATLAB-tutorial/ 7.edu/mm/ 136 .html 14.com/products/gallery/gaiTies/index.mathworks. http://www. http://www.Uk/software/index.eece.edu/group/ctrn/ 13.pdx. http://www.com 2.html 19.csee. MATLAB ile Mühendislik Sistemlerinin Analizi ve Çözümü.engin.ca/ec/scientific/MATLAB/MATLAB. Elsevier. http://www.umich.maine.uwaterloo.edu/~pnveme/MATLAB_Course/DEFAULT.psu. http://www-math.mathworks.wvu.edu/math/MATLAB/MATLAB. 2004 4.ttu.cs.html 9. http://www.mathworks.KAYNAKLAR 1.ca/spider/cavers/MATLABGuide/guide. http://www. Essential MATLAB for Engineers and Scientists.dundee.math.mcs.dcs.html 11.math. Brian D.ac.

edu/lance/mswindows/MATLAB_rcfcrcnce.html 44.indiana.edu/decs/facilities/software/MATLAB 42.math.stolaf.wustl.navy.edu/courses/ase366k/MATLAB_Tutorial.edu/software/MATLAB/www/home.html 47.htm 45.math.html 31.vanderbilt.html 26.edu/people/mckelvey/envision.ucsd.edu/Resources/docs/MATLAB/primer35.html 41.edu/~huber/MATLAB/ 50. http://wings.lance. http://www-ccs. http://www.edu/answers/MATLAB/index.ufl.edu/enme/403/0201/MATLABl.ae.pdf 22. http://www.math. http://w3. http://www. http://math.edu/~maejohns/mae305/MATLAB.html 25.edu/Classes/ACE491g/MATLAB.psc.uiuc.mit.edu/ACE491G/MATLABi.edu:8888/esl30/lectures/lecture9/lecture9.edu/afs/athena. http://netec. http://www. http://classes.html 46. http://web.edu/~umsfjdoc/MATLAB.html 24. http://web.dir/mar97.buffalo.tutorial.mit.class.uc.html 43.edu/~kingjt/MATLAB_lnk.unh.siu.html 33.ae.edu/people/abbe/MATLAB/main. http://www. http://wwwfp.montana.mit.edLi/~mmartin/work/MATLAB. http://www.edu/MATLAB/tutorial3.edU/afs/.htm 48.html 32. http://web.amath.vuse.sr.mit.edu/help/tutorial/eel3135/MATLAB_tut.html 28.edu/computing/sc/mat.washington.html 35.mit. http://www.umd.ag.mil/~mecheng/DESIGN/CAD/MATLAB/usna. http://spicerack.ece.edu/~malhadm/tutorial/software/MATLAB/ 38. http://www. http://web.html 39. http://www.arizona. http://www.unh.html 30.usna. http://www.gmu.20.html 21.egr.html 37.edu/general/software/packages/MATLAB/MATLABprimer.msstate.msu.html 40.math.edu/~erker/mallab/MATLAB.colostate.edu/help/MATLAB/faq.uiuc. http://physics.math. http://bass.utexas.edu/~adnetec/CodEc/MATLAB. http://www.ufl.princeton. http://www.aces.edu/MATLAB 36. http://www. http://www.gac.edu/MATLAB/MATLAB.htm 29. http://web.edu/~statmath/math/MATLAB/ 23.html 49. http://www.math.ppt 34.edu/~mathadm/tutorial/software/MATLAB/ 137 .athena/astaff/project/logos/olh/Math/MATLAB/MATLAB.html 27.

math.utah.uwaterloo.umd. http://texas. http://riceinfo.ufl. http://opal.ufl.rice.html 57.edu/help/MATLAB-tutorial 55.html 58. http://www.edu/~nsw/MATLAB.nwu.chpc. http://www.html 61.net/index.edu/Computer/Documents/Classes/Unix/MATLAB/MATLAB.php?topic=291.edu/~mathadm/tutorial/software/MATLAB/ 60.ttu.edu:2020/info/algebra 54.indiana.glue. http://ist.html 53.mech.html 59. http://www.math. http://www.math.edu/~statmath/smdoc/MATLAB. http://www. http://lims.math.edu/~gilliam/mlhtml_l/m4330_ml_l.unh. http://tortoise.edu/software/math/MATLABprimer.0 138 .doc/techdoc/ref/refix.html 52.ca/ew/saw/MATLAB 56.51.edu/~tickel/MATLAB/reference.muhendisforum.

Sign up to vote on this title
UsefulNot useful