You are on page 1of 138

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

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

doğrudan komut satırında yazacağımız örneklerle MATLAB kullanımına başlayalım… 6 .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.

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

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

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

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

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

3099 >> conj(y). 12 . faz açısı Ѳ=arctan(b/a) dır. ans = 56. % karmaşık sayının modülü (mutlak değeri veya genliği).6056 >> angle(y).0000i >> abs(y). ans = 0. % Karmaşık sayının eşleniği. Burada mutlak değer r=IyI=sqrt(a2+b2). yani sqrt(a^2+b^2) ans = 3.0000i >> real(y). y=1+i sayısını kutupsal eşdeğerini bulalım.0000 + 3. % Karmaşık sayının reel kısmı. % Karmaşık sayının derece cinsinden faz açısı.3. % Karmaşık sayının sanal kısmı. ans = 2 >> imag(y). % Karmaşık sayının radyan cinsinden faz açısı. y=a+bi = r(cosѲ + isinѲ) dır. ans = 2.0000 . 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.>> % KARMAŞIK SAYILAR >> % ÖRNEK 12 >> % y= 2 + 3i için >> y=2+3i y= 2.9828 >> angle(y)*180/pi.

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

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

3100 5.5000 1. ans = 3.0000 1. ans = 2. ans = 2.5000 6.>> sum(d) % Verileri toplar.1272 >> mean(d) % Aritmetik ortalamayı alır.0000 3.5000 3.0946 >> harmmean(d) % Harmonik ortalamayı alır. ans = 32.1400 2.9845 >> geomean(d) % Geometrik ortalamayı alır. 15 . ans = Columns 1 through 9 0.0400 4.8300 >> prod(d) % Verileri çarpar. ans = 2.3400 0.2719 >> sort(d) % Verileri küçükten büyüğe doğru sıralar. Bunun için factor fonksiyonunu kullanabiliriz.5000 >> % ASAL ÇARPANLARA AYIRMA >> % ÖRNEK 17 >> % 187 nin asal çarpanlarını bulalım.0000 Columns 10 through 11 5. ans = 1.4042e+003 >> std(d) % Formülüne göre standart sapmayı bulur.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1) f= -0.6411 4.1628 -6.2527 1.5746 1. ans = -1.6676 2.6267 3.0394 >>% Benzer olarak.>>% ÖRNEK 2 >>% a=1 ile b=5 sayıları arasında rasgele 7 tane sayı üretelim. >> 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.4384 % Sadece rand fonksiyonu 0–1 arasında rasgele sayılar üretir.5947 0. >> f=2+5*randn(1.3443 >> rand ans = 0.7) f= Columns 1 through 5 4.(sütun vektörü olsun) >> f=-1+2*rand(2. a=-1 ile b=1 sayıları arasında rasgele 2 tane sayı üretelim.4) f= -0.3279 2.4115 Columns 6 through 7 4.8381 >>% ÖRNEK 3 >>% mu=2 ve sigma=5 için 4 elemanlı bir satır vektörü üretelim.2316 2.1465 31 .

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

-1.7500 % v vektörünün sondan (son değer dahil) 3. >> v(1:5) ans = % v vektörünün ilk 5 terimi.0000 -0. terimi (yani baştan 15.6250 Columns 7 through 9 0.5000 >> v(end-4:end) ans = % v vektörünün son 5 terimi.>> v(end-2) ans = 0.1250 0.7500 -0.5000 0.5625 -0.6250 -0.0000 >> (3*v/2)' ans = -1.0000 >> v(9:end) ans = % v vektörünün 9.3125 -1.8750 -0.8750 1. 33 .3750 0. teriminden son terimine kadar olan değerleri.7500 0.5000 0. 0.8750 1.2500 0.6250 0.7500 -0.1250 -0. terimi). Columns 1 through 6 0 0.5000 -1.7500 0.9375 -0.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.

5625 0.3750 0. >> t=(2*a)+(3*b) t= 11 -7 14 19 % Skaler sayılarla vektörlerin çarpımı ve oluşan yeni vektörlerin toplamı.5000 >>% ÖRNEK 6 >>% iki vektör tanımlayıp işlemler yapalım.*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). >> b=[3 -1 2 3].1250 1. >> c1=a. >> a=[1 -2 4 5].1875 0.7500 0.-0. 34 . >> 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).9375 1.1875 0 0.3125 1.

^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.0000 >> % NOT: MATLAB de nokta işaretli işlemler.\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). >>% Ö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.>> 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). 3 -6 12 2 -4 8 12 -4 15 -5 10 15 >> b1=a.^2) toplam = 166650 carpim = 7.3333 2.^2). 3. yani dot işlemleri eleman eleman (elemanter) işlem yapılacağını gösterir. carpim=prod(t. 0.0000 1./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).5000 0.0000 0.6000 >> u=a.6667 >> b2=a.0000 -0.0000 2.4278e+156 35 . 1. >> toplam=sum(t.5000 16.5000 0.

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

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

>> 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

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

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

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

0000 2.8132 0.3). Matrislerin karşılıklı elemanları kendi arasında toplanır.8249 8.0000 4.0000 4.7972 8.5962 4. rand(1. >> a*b ans = 1. 44 . 7:9].>> a=[1:3.4167 1.1987 % a+b=b+a dır.3).0000 6.3)] % a ve b matrislerini alarak işlemler yapalım. zeros(1.8013 % a-b=-(b-a) dır.0000 5.1923 8.1389 8.0000 0 0 0 2 5 8 3 6 9 0. 4:6.0000 4.0099 >> a+b ans = 2.0000 6.7885 % Matris çarpma kuralına göre işlem yapılır. >> a-b ans = 0 1. Matrislerin karşılıklı elemanları kendi arasında çıkarılır.0000 1.2500 8.0000 7.6083 1.8611 7.2028 9.0000 1.3529 0. a= 1 4 7 b= 1.2166 5.0000 5.0000 6.8333 5.0000 3. b=[ones(1.

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

0. 1. ans = 1.0221 >> a.0198 0.^b ans = % Elemanter üs almada a matrisinin her bir elemanı.\b ans = 1.0000 1.4545 45.6221 1.3333 0 0 0 % Elemanter sola bölme normal sola bölmeden farklıdır.2895 >> a.0000 2.0000 1.7885 >> a.0000 Inf 2.0000 3.0000 1.5000 0.5475 46 . 0.0000 Inf 50.3993 39.0000 Inf % Elemanter sağa bölme normal sağa bölmeden farklıdır.>> a.0000 2.0000 1.0000 0 0 0 % a. 3.0000 3.0000 0.9722 1.3103 1./b Warning: Divide by zero.0253 0.*b=b.5245 1.*a dır. Elemanter çarpım normal çarpımdan farklıdır. b matrisi karşılığındaki elemanı üs olarak alır.*b ans = 1.

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

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

0000 0 0 >>% ÖRNEK 17 >> m=magic(5) m= 17 24 23 4 5 1 8 15 % m matrisini alıp inceleyelim. >> m(1:9) ans = 17 23 % m matrisinin 1. 49 . elemanı.8990 0 0 0 -4. satırı. elemandan 9. >> m(2.d= 15. elemana kadar olan elemanları. 4 10 11 24 5 6 12 >> m(1:2:9) ans = 17 4 11 5 12 % m matrisinin 2 artımla 1. :) ans = 23 5 7 14 16 % m matrisinin 2. elemana kadar olan elemanları.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. 0 4. elemandan 9.

6 13 12 19 21 18 25 2 >> m(1.>> m(2:4. 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(:. 4. satır 3. sütunu. 2) ans = 24 5 6 12 18 % m matrisinin 2. 3. :) ans = 23 4 5 7 14 16 % m matrisinin 2. 4. 3. sütunlarından oluşan alt matrisi. 11 18 25 2 >> m(:.3) ans = 1 % m matrisinin 1. 2:4) ans = 24 5 1 7 8 14 20 % m matrisinin 2. sütun elemanı. 50 . satırlarından oluşan alt matrisi.

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

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

>> m(:. 4 13 22 10 19 11 25 3 9 >> c=[1:5] c= 1 2 3 4 5 % c vektörünü 6. 1)= [ ] m= 24 5 6 1 8 15 % m matrisinin 1. satır olarak m matrisine ekler. 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. 4])= [ ] m= 17 23 1 15 7 16 % m matrisinin 2. >> ek_satir=[ m. ve 4. 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. sütunu siler.

>> sum(m') ans = 65 65 65 65 65 % m matrisinin her bir satırının toplamını bulur. 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.>> ek_sutun=[ m. 54 . >> sum(diag(m)) ans = 65 % m matrisinin ana köşegen elemanlarının toplamını bulur. sütun olarak m matrisine ekler.

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

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

>> 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. % Bölüm= 0.0000 0.6x4 + 8x3 .K]=deconv(P.Q) fonksiyonu kullanılır.0.6180 1.Q) fonksiyonu kullanılır.>> conv(P. ans = 3 0 -6 8 0 -10 5 >> [B.10x + 5 dir.0000 -0. % Burada B bölüm.6667 dir.K]=deconv(P.6180 % roots(P) fonksiyonu P polinomunun köklerini bulur.3333 K= 0 0 -2. % % Sonuç.Q) % Polinomların çarpmak için conv(P.6667 >> roots(P) ans = -1. 57 .Q) % Polinomların bölmek için [B. K ise kalanı gösterir. B= 0. kalan=-2x .3333x. % % İkiden fazla polinomun çarpımı için conv fonksiyonunu tekrar tekrar kullanmak gerekir. 3x6 .

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

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

artan ya da azalan >>% değerlerine göre sıralanmalıdır. xi=5.Multiply polynomials.8 :19]. bir boyutlu aradeğer hesabı yapar. >>% interp1 bir boyutlu. interp3 üç boyutlu interpn n boyutlu aradeğer fonksiyonlarıdır. Tabloda bir motorun belli >>% devirlerde ve belli zamanlarda silindir kafası sıcaklık değerleri gösterilmiştir. . >>% interft ise.45678) y= 14. interp2 iki boyutlu. 5.xi) formatında bir boyutlu ara değer fonksiyonu. >> y=interp1(x. Buna göre 3.25 saniyedeki >>% 3500 devir/dakika ya karşılık gelen sıcaklık değerini hesaplayalım.45678 ara değerine karşılık >>% gelen yi değerini bulalım. 8 : 10].4568 % yi=intp1(x.Integrate polynomial analytically. y. Ara değer hesaplarında veriler. y=[10 :. 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 . >> x=[1 :. interft fonksiyonu ise. veri tablosunda olmayan. >>% Şimdi iki boyutlu ara değer hesabı için aşağıdaki tabloyu inceleyelim.y.Divide polynomials. . >>% ÖRNEK 20 >>% x ve y değerlerini içeren verilerden hareketle. Fourier dönüşümünü >>% kullanarak ara değer hesabı yapar.polyint conv deconv . >>% ARADEĞER HESAPLARI >>% interp fonksiyonu polinom tekniğini kullanarak.

3500. % yi=interp2(x.3.xi.>> x=[2000 3000 4000 5000 6000]. % Zaman değerleri. % Motor hızları.y.zi) formatında iki boyutlu ara değer fonksiyonu. >> y=[ 0 >> z=[ 0 1 0 2 0 3 0 4 0 5 ].z.y.8750 61 . % Sıcaklık değerleri. >> y=interp2(x. 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].z.25) y= 315.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>title('z=x^2+y^2 Parabolünün Yüzey Grafiği'). [-10: 1: 10]. y_nok). [-10: 5: 10] ) >> [x.y.^2 '.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+y. 85 . ylabel('y-ekseni').^2 . >> surf(x.z). % Matris elemanları olduğu için elemanter üs alma yapıldı. zlabel('z-ekseni') >>% ÖRNEK 18 >>% f(x.^2+y. % Izgara için oluşturulan matris. >>% Aynı grafik daha pratik olarak.y]=meshgrid(x_nok. >> z=x. >> xlabel('x-ekseni'). >> y_nok=[-10: 5: 10]. ezsurf >>% fonksiyonuyla şöyle de çizdirilebilir: >> ezsurf( 'x.>> x_nok=[-10: 1: 10].

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

Sadece düzey eğrilerini göstermek istediğimizde ise.x^2 . düzey eğrilerini de çizdirmek gerekebilir. ezsurf fonksiyonları >>% kullanılabilir. ezcontour (ağ gösterimi için) ya da ezcontourf (yüzey gösterimi için) fonksiyonları yeterli olacaktır. ezmesh.>> ezsurf('sqrt(9. yüzey grafiklerde ezsurfc fonksiyonları kullanılır. [-4 4]. >>% ÖRNEK 20 >>% >>% >>% >>% Bazen z=f(x. 87 . mesh. >>% NOT: Hem iki boyutta hem de üç boyutta. ezplot3. [-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. surf gibi grafik >>% çizdirme fonksiyonlarının başına –ez ekinin getirildiği ezplot. Bunun için ağ grafiklerde ezmeshc. grafikleri doğrudan çizdirmek için plot.y^2)'.y) şeklindeki iki değişkenli fonksiyonlarda.

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

w. text veya gtext kullanımlarında. £ .>>% >>% >>% >>% >>% NOT: Grafik çizimlerinde xlabel. b. ® gibi sembolleri eklemek gerekebilir. ylabel ve title adlandırmalarında ya da grafik üzerinde legend. Bunların MATLAB kod sistemindeki kullanımları aşağıdaki tabloda verilmiştir. 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 . MATLAB de bu işlemler yazı dizgeleri (text strings) olarak adlandırılır. l gibi Yunan karakterlerini ya da km2. ¥ . hatta eksen centiklerinin adlandırılmasında a.

.. ´ | © 90 .\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 • ÷ .

v \rm . v \fontsize{fontsize} – FontUnits olarak yani punto olarak yazıtipi boyutunu belirler. ayrıca aşağıdaki özel değiştiriciler (stream modifier) ile kullanılabilir: v \bf{} .İtalik yazıtipi (italics font). >>% Alt indis veya üst indislerde birden fazla karakter kullanılacak ise bu durumda { } şeklindeki süslü >>% parantez kullanılmalıdır. nadiren kullanılır). 91 . v \it{} .Parantez içindeki karakterler ya da yazı üstindis olarak gösterilir.Normal yazıtipine dönüş. >>% y ekseninde "Hız katsayısı: Ko=10-12 " görünmesini istersek. Örneğin.>>% Tablo da verilen tüm karakterler. v \füntname{fontname} – Kullanılacak yazıtipi (font) ailesinin adını bülirler. v ^{. >>% x ekseninde "-co1 ışıldamasına göre yarılanma değerleri " görünmesini >>% istersek.. >> xlabel ('-\gamma{_0^1} ışıldamasına göre yarılanma değerleri ') komutu kullanılır.Koyu yazıtipi (bold font ). v _{. >>% 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..Parantez içindeki karakterler ya da yazı altindis olarak gösterilir.}..}. >> ylabel ('Hız katsayısı: K_o=10^{-12}') >>% komutu kullanılır. v \sl{} .yazıtipi (oblique font..

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

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

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

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

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

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

y) % Denklemler sıfıra eşitlenerek işlem yapıldı.3799412975372923656562133279358-.8000i -0.4262i 1.4419i -1.3468 + 0.5125 .7472 1.-.50217039300299764820601368779329-1. ans = 0.8000i -0.7988i 0.x. elde edilen sonucu dört haneli hale getirir.x-y-2.51246479578529006009603072834460-1.7988i >>% ÖRNEK 2 >>% >>% >>% x+2y=1 x-y=2 denklem sisteminin çözüm kümesini bulalım.3468 . x= 5/3 y= -1/3 98 .4262i -0.5022 + 1.4261986019933698713398249020469*i 1.1.9210 -1.8739 1.4419i 0.7458 -1.3799 + 0.y]=solve(x+2*y-1.0. >> syms x y >> [x.4418562120833487079385352327090*i .5125 + 1.1.79883587021658777179945832073383*i >> double(ans) % double(ans) fonksiyonu.5022 .0.3799 .

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

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

't') ans = tan(t+C1) >>% ÖRNEK 8 >>% d2y = . '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(0)=1'. 't') ans = cos(a*t) >>% ÖRNEK 9 >>% d2y dy + 3 + y = 0 diferansiyel denkleminin çözümünü bulalım. 2 dt dt >> dsolve('D2y+3*Dy+y=0'. dt >>dsolve('Dy=1+y^2'.a 2 y . >> dsolve('x*Dy+y=2*exp(2*x)'.'Dy(pi/a)=0'.'y(1)=0'. 2 dt >> dsolve('D2y=-a^2*y'.exp(2) -------------------------x 101 .'x') ans = (exp(2*x)-exp(2))/x >> pretty(ans) exp(2 x) .>>% ÖRNEK 7 >>% dy = 1 + y 2 diferansiyel denkleminin çözümünü bulalım. y’(π/a)=0 diferansiyel denkleminin çözümünü bulalım. y(0)=1.

'x') ans = exp(2*x)-exp(-2*x)-1/2-x^2 >>% ÖRNEK 12 >>% y(0)=0. >> dsolve('D2y+6*Dy+13*y=10*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 --.'y(0)=-1/2'.'Dy(0)=0'.'Dy(0)=0'.'Dy(0)=4'.exp(-3 t) sin(2 t) + --.--. >> dsolve('D2y-4*y=4*x^2'.--. y’(0)=0 koşulları altında y”+6y’+13y=10sin5t >>% ikinci dereceden diferansiyel denklemin çözümünü bulalım.'y(0)=0'.sin(5 t) .>>% Ö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. = -4 y + 3 x dt dt 102 .exp(-3 t) cos(2 t) . >> dsolve('(Dy)^2+y^2=1'.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.'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 .

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

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

0001 1.4363 >>% t sütun vektörü t çözümün zaman noktası değerlerini ifade eder.1).0000 -0.7065 -0.y= 1. sütun >>% y(:. sütun y(:.0000 0 1.0002 1.0000 -0.6691 -0.0000 -0.0002 … … 1.'o') 105 .6304 -0.7776 -0.4060 1. Bu zaman değerleri integral almada >>% kullanılan zaman adımları (gerektiğinde bu da ayarlanabilir) olmayıp. 1.0001 1. türevidir. 2. >> plot(t.3926 1.7426 -0. y matrisinde ise.y(:.2) biçiminde t zaman noktalarında çözümün 1. grafik için belirlenen uygun >>% adımlardır.0000 -0.3800 1.1) biçiminde t zaman noktalarında çözümün kendisi.4205 1.

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

1).0020 -0.0018 -0.0000 0.0000 0.0000 y= 1.8220 2.2.0010 -0.0010 -0.0010 0 0.0019 -0.0000 0.0e+003 * 0.0000 0.0019 -0.'o') 107 .0000 … … 0.0020 -0.0000 >> plot(t.0000 0.0000 0.y(:.8696 3.0010 -0.8458 2.

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

5132 -4. y(:.9998 -1.y(:.1) çözüm.0002 0.0003 0.2) çözümün 1.3).6714 -4.9999 -1.y(:.0002 0.türevidir.t.'*'.9170 -18.6459 -0.5897 -4.4417 -4.9915 -0.6066 -17.0001 0.4404 >> plot(t.9998 -1.0002 0.5255 -0. 109 .0000 0.0005 0.7586 -5. y(:.0001 0.0000 -1.9999 -1.2).türevi.8015 -0.t.1).3) çözümün 2.'o') % y(:.2427 -19.0297 -15.y(:.3110 -16.y= 0 1.0006 … … … -0.

9367 1.>>% ÖRNEK 18 >>% y’ = 2cos2 (y) diferansiyel denklemini ode23 fonksiyonunu kullanarak çözelim.1818 110 .1071 1.0232 1.8000 1.4000 0.y)..8050 0.2000 0.2.0000 y= 0. function dy= diffonk(x.8000 2...pi/4) Warning: Obsolete syntax. >> [x.0000 1.8593 0.y]=ode23('diffonk'.7854 0. > In funfun\private\odearguments at 41 In ode23 at 172 x= 0 0.6000 0.y0. dy= 2*x*(cos(y))^2. Use ode23(fun.6000 1.4000 1.2000 1.tspan.0.) instead.

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

0002 1.-0.0001 1.0002 1.9548 -0. 1]) t= 0 0.0002 0.9763 -0.0000 0.9540 0.5169 -0.9102 0.2936 -0.0000 … … … -0.0000 1.51*y(1)*y(2)].[0.4847 11.0000 1. 1.y) dy=[y(2)*y(3).7128 0.6987 -0.7874 0.0000 0.[0 12].8974 -0.0000 1.8650 112 .0002 … 11.0000 y= 0 1.-y(1)*y(3).function dy=rig(t.0000 1.6135 -0.6136 11.7424 11.0000 0.0001 1.0001 0.9279 -0.0000 0.4098 -0.y]=ode45('rig'.8712 12.0000 1.0001 0. >> [t.8539 0.

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

9767 0.0942 -1.0732 0.0014 0.0004 0.0339 0.6708 0.[0 .0000 y= 0 0 0.1135 -1.0192 0.9534 0.6603 0.9650 0. 0]) t= 0 0.y]=ode45('diffonk'.9883 1.6448 0.>> [t.1325 -1.0767 … 0.0383 0.0001 0.6244 0.0748 -1.0033 0.1244 … … 0.0553 -1.6763 114 .[0 1].0088 0.0575 0.

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

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

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

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

denetim ve veri türü bilgisini daha doğrusu dönüşüm karakterlerini içerir. \n'. formatlı program çıkışını ekranda göstermek için kulanılır. Yazdırılacak rakamların minimum alan genişliğini sayı1.. 'format' stringinde belirtilen formatta A dizisi veya ek dizi argümanlarının elemanlarını gösterir.liste. Burada liste. fprintf('format' .00 bulunmustur. \n'.. virgülle ayrılan değişken adlarını listeler. fprintf('Islem sonucu %7. % -12. sayı2] Kod şeklindedir. . Genel yazım biçimi: fprintf('format' . Islem sonucu 2007.2f bulunmustur. 2007).) şeklindedir. Burada yüzde işareti % sabittir ve mutlaka bulunmalıdır.A. Komuttaki format stringinin genel formatı: % [ -/+/0 ] [sayı1. ondalık göstergesi olan noktanın sağındaki rakam sayısını ise sayı2 ifade eder. önünde sürekli + işaretinin olacağını ve 0 işareti de sayı alanında boş hanelerin 0’larla doldurulacağını gösterir.. Köşeli parantez içindeki kısımlar isteğe bağlıdır. Kod.fprintf fonksiyonu: fprintf komutu. . 2007).. 119 . + işareti. Bayrak (flag) olarak adlandırılan [-/+/0] gösteriminde – işareti. Islem sonucu 2007 bulunmustur.) şeklindedir. Sayı alanı ve kesinliği.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. % işaretinden sonra yazılacak ifadelerin arasında boşluk bırakılmamalıdır. çıkışın sola hizalı olacağını. sayı1 ve sayı2 ile belirlenir. Daha basit bir yazım biçimi ise.

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

Bölgede ve sinüsü pozitif') case 2 disp('III. 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. Ö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. switch fix(angle/90) case 0 disp('I. her bir case değeri ile karşılaştırılır ve sonuç deyim gurubuyla verilir. otherwise deyim grubu-n end şeklindedir. . Giriş ifadesi. Bölgede ve sinüsü pozitif') case 1 disp('II. sonuç fix fonksiyonu ile 0 a doğru en yakın tamsayıya yuvarlatıldı ve böylece analitik düzlemin bölgeleri 0. yukarıda gördüğümüz if. 1. else ve elseif yapılarının kullanımına bir alternatif oluşturur. 3 sayı durumlarıyla belirtilmiş oldu. 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. Burada her bir case değeri ayrı bir satırda olmalıdır. 124 . . angle=input('Derece cinsinden bir açı değeri giriniz: ').switch-case-otherwise (değiştir-durum-aksi durum) Yapısı: switch-case-otherwise yapısı. 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 . açı değerleri 90 a bölünüp. Giriş ifadesi hiçbir case değerini karşılamıyorsa otherwise ile belirtilen deyim grubu yürütülür. Bölgede ve sinüsü negatif') case 3 disp('IV. Bölgede ve sinüsü negatif Yazdığımız kodda.

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

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

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

--. clear all.--.--. for j=1:10 fprintf(' %3. clc disp(' disp(' 1 2 3 4 5 6 7 8 9 10') --. Ö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.---') for i =1:10 fprintf(' %2. end fprintf('\n'). end kt plot(kt) xlabel('sayı').--.0f'. i=i+1./i^2. Her while döngüsü end ile kapatılmalıdır. Bir while döngüsünün genel formatı: while ifade deyimler end şeklindedir.i*j). i=1.Örnek 4: İç-içe for döngüsünü kullanarak çarpım taplosu kodu yazalım.--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ü. denetleyen deyim doğru (1) olduğu sürece bir ifadeyi veya ifade grubunu yürütür.0f'.--. while i<11 kt(i)=1.ylabel('karesinin tersi') 128 .--. işlem Ctrl+C ile durdurulabilir. 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 --. Eğer döngü sonsuz çevrime girerse. % Grafiğini çizer.--.--. % 1 den 10 a kadar sayıların karelerinin terslerini bulur.i).

012345679012346 0. end sonuc=n-1 sonuc = 6 129 . clear all.020408163265306 Columns 9 through 10 0.027777777777778 0.062500000000000 0. close all.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.015625000000000 0. clc n=1. while prod(1:n)<1E3 n=n+1.040000000000000 Columns 7 through 8 0.010000000000000 0.000000000000000 Columns 3 through 4 0.kt = Columns 1 through 2 1.111111111111111 Columns 5 through 6 0.

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

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

break deyimi ise.5.3010 -1.0000 0.-2. Ö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.1]. Örnek 1: t=[-5.6021 -3.continue ve break Deyimleri: continue deyimi.4. for/while döngülerinde verilen koşul sağlandığında o andaki işlemi orada keser. for/while döngülerinde program akışını her ne olursa olsun bir sonraki çevrime geçirir.0000 0.-4.-1.-3.6990 -4.5917 132 .2. for k=1:length(t) if t(k)<0 continue end t(k)= log10(t(k)).3.4771 -2.0000 Columns 8 through 10 0. end t t = Columns 1 through 7 -5.0000 0.9499 m = 92 n = 9.

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

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

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

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

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

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