P. 1
TEMEL_MATLAB__KULLANIMI

TEMEL_MATLAB__KULLANIMI

|Views: 5,238|Likes:
Yayınlayan: laydahayhay

More info:

Published by: laydahayhay on Apr 05, 2011
Telif Hakkı:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/13/2015

pdf

text

original

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

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

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

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.

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

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

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

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

sqrt(1). e^pi. pi^e e= 2.1407 ans = 22.7746 >> % ÖRNEK 10 >> abs(-5). e ile işlem yapabilmek için.4592 11 .0000i ans = 0 ans = 1 ans = 0.7183 ans = 2.2026e+004 ans = 23.71828 sayısı MATLAB de tanımlı değildir. abs(sqrt(3)-1) ans = 5 ans = 0. sqrt (3/5) ans = 0 + 1.7321 >> % ÖRNEK 11 >> % e= 2. >> >> e=exp(1). e^10. >> % e= exp(1) değişken ataması yapılabilir. sqrt(0).>> % ÖRNEK 9 >> sqrt(-1).

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

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

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

ans = 2.0000 1. 15 .4042e+003 >> std(d) % Formülüne göre standart sapmayı bulur.5000 6.3400 0.0400 4.5000 1.1272 >> mean(d) % Aritmetik ortalamayı alır. ans = 2. ans = 2.5000 3.8300 >> prod(d) % Verileri çarpar. ans = 1. ans = 32.>> sum(d) % Verileri toplar.1400 2.2719 >> sort(d) % Verileri küçükten büyüğe doğru sıralar.5000 >> % ASAL ÇARPANLARA AYIRMA >> % ÖRNEK 17 >> % 187 nin asal çarpanlarını bulalım. ans = 3.0946 >> harmmean(d) % Harmonik ortalamayı alır.0000 3.9845 >> geomean(d) % Geometrik ortalamayı alır.3100 5. Bunun için factor fonksiyonunu kullanabiliriz. ans = Columns 1 through 9 0.0000 Columns 10 through 11 5.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5947 0.6267 3.8381 >>% ÖRNEK 3 >>% mu=2 ve sigma=5 için 4 elemanlı bir satır vektörü üretelim.6411 4. ans = -1.3279 2.4384 % Sadece rand fonksiyonu 0–1 arasında rasgele sayılar üretir.1) f= -0.3443 >> rand ans = 0.4) f= -0.0394 >>% Benzer olarak.2316 2.2527 1.(satır vektörü olsun) >> f=1+4*rand(1. a=-1 ile b=1 sayıları arasında rasgele 2 tane sayı üretelim.1465 31 .5746 1.(sütun vektörü olsun) >> f=-1+2*rand(2.7) f= Columns 1 through 5 4.1628 -6.6676 2. >> randn % Sadece randn fonksiyonu kullanıldığında ortalaması 0 ile standart sapması 1 olan % % Gauss dağılımından rasgele sayılar üretilir.4115 Columns 6 through 7 4.>>% ÖRNEK 2 >>% a=1 ile b=5 sayıları arasında rasgele 7 tane sayı üretelim. >> f=2+5*randn(1.

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

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

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

0000 2.0000 >> % NOT: MATLAB de nokta işaretli işlemler. carpim=prod(t.^2) toplam = 166650 carpim = 7. 3 -6 12 2 -4 8 12 -4 15 -5 10 15 >> b1=a.0000 125. yani dot işlemleri eleman eleman (elemanter) işlem yapılacağını gösterir.5000 0./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).>> 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). >>% ÖRNEK 7 >>% 1 den 100 e kadar tek sayıların kareleri toplamını ve çarpımını bulalım >> t=1:2:100. 3.0000 0.0000 -0. 1.5000 16.3333 2.0000 1. >> toplam=sum(t.^2).5000 0.6667 >> b2=a.^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. 0.\b b2 = % b vektörünün her bir elemanı a vektörünün her bir elemanına bölünmüştür (sola bölme).6000 >> u=a.4278e+156 35 .

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

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

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

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

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

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

1923 8.8013 % a-b=-(b-a) dır. Matrislerin karşılıklı elemanları kendi arasında çıkarılır. b=[ones(1.7885 % Matris çarpma kuralına göre işlem yapılır.0000 3.0000 4.0000 4.3).0000 1.0000 6.3)] % a ve b matrislerini alarak işlemler yapalım.3).8249 8.>> a=[1:3.8132 0.2166 5.6083 1.1987 % a+b=b+a dır. 44 . Matrislerin karşılıklı elemanları kendi arasında toplanır.0000 0 0 0 2 5 8 3 6 9 0. rand(1.7972 8. >> a*b ans = 1.5962 4.0000 1. a= 1 4 7 b= 1. zeros(1. 4:6.0000 5. 7:9].0000 6.0000 2.0000 5.2028 9.8333 5.4167 1.3529 0.0000 6.0000 4.2500 8.0099 >> a+b ans = 2.8611 7.1389 8. >> a-b ans = 0 1.0000 7.

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

*a dır. 0.0198 0. b matrisi karşılığındaki elemanı üs olarak alır.5245 1.0000 Inf % Elemanter sağa bölme normal sağa bölmeden farklıdır.0000 Inf 2.0000 0.0221 >> a.5000 0.0000 1.7885 >> a.0000 2.2895 >> a.5475 46 .0000 2.3333 0 0 0 % Elemanter sola bölme normal sola bölmeden farklıdır.0000 1.*b ans = 1.0000 0 0 0 % a.0000 1.3993 39.>> a.^b ans = % Elemanter üs almada a matrisinin her bir elemanı.9722 1.4545 45.0000 3./b Warning: Divide by zero. 0.6221 1. 1.\b ans = 1.*b=b. ans = 1. 3.0000 3.3103 1. Elemanter çarpım normal çarpımdan farklıdır.0000 1.0253 0.0000 Inf 50.

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

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

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

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

>> sonuc=[i. 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. 51 . satırları ve 3. m= 17 24 23 4 5 6 1 8 15 7 14 16 13 20 22 7 14 16 10 12 19 21 3 11 18 25 >> m(:. 2 9 10 12 19 11 18 25 >> m([1. 4. j]=find(m<5). 2]. [3. 5. 5]) ans = 1 8 15 % m matrisinin 1. :) ans = 17 24 23 5 1 8 15 % m matrisinin 1.2]. satırları. 4. 2.[1:3]) ans = 17 24 23 4 5 6 1 7 13 % m matrisinin 1. 3. ve 2.>> m([1. 7 14 16 >> [i. sütunları. 2.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

y.y. >>% ÖRNEK 1 >>% x2-x-6=0 denkleminin çözümünü bulalım.74577493701228339964228021354946 -1.z. solve fonksiyonunun genel hali: >>% syms x y z … >>% [x.9210009404907231481170457094651 -1.x) ans = 3 -2 >>% Çözüm kümesi.4261986019933698713398249020469*i -.74720356628315882129201933741592 1.…]=solve(denk1. >>% Benzer olarak.80004143504146966877333266198056*i -.denk2.z. >> syms x >> solve(x^12-3*x^10+x^7-120*x^2+67.denk3.2} olarak bulunur.x) ans = .3468332163973951506034599502807-. x12-3x10+x7-120x2+67=0 denkleminin köklerini bulalım.….3799412975372923656562133279358+.51246479578529006009603072834460+1.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.4418562120833487079385352327090*i -1.80004143504146966877333266198056*i 97 .79883587021658777179945832073383*i .…) şeklindedir. Ç={3. >> syms x >> solve(x^2-x-6.50217039300299764820601368779329+1.3468332163973951506034599502807+.8739449545046381201418339113910 1.

3799 + 0.4418562120833487079385352327090*i .x-y-2.3468 .8739 1.7988i 0. ans = 0.51246479578529006009603072834460-1.7472 1.5125 .4419i -1.7458 -1.1.0.4262i 1.0.3468 + 0.1.4262i -0.5022 . x= 5/3 y= -1/3 98 .79883587021658777179945832073383*i >> double(ans) % double(ans) fonksiyonu.5125 + 1. elde edilen sonucu dört haneli hale getirir.9210 -1.y]=solve(x+2*y-1.y) % Denklemler sıfıra eşitlenerek işlem yapıldı.3799412975372923656562133279358-.4419i 0.50217039300299764820601368779329-1.5022 + 1.7988i >>% ÖRNEK 2 >>% >>% >>% x+2y=1 x-y=2 denklem sisteminin çözüm kümesini bulalım.3799 .x. >> syms x y >> [x.-.4261986019933698713398249020469*i 1.8000i -0.8000i -0.

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

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

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

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

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

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

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

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

0018 -0.0019 -0.0020 -0.1).0000 0.0000 0.0010 -0.'o') 107 .8696 3.0000 y= 1.0010 0 0.0010 -0.0000 0.0019 -0.8220 2.0e+003 * 0.0020 -0.2.0000 … … 0.0000 0.y(:.0000 >> plot(t.0000 0.0000 0.8458 2.0010 -0.

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

0000 0.6714 -4.6459 -0.'o') % y(:.0002 0.0002 0.9999 -1.t.'*'.8015 -0. 109 .y(:.0006 … … … -0. y(:.türevidir.2) çözümün 1.y(:.0002 0.6066 -17.9170 -18.5132 -4.y(:.3110 -16.y= 0 1.9998 -1.0001 0.5255 -0.4404 >> plot(t.0297 -15.0005 0.9999 -1.1) çözüm.0001 0.3).0003 0.9915 -0.0000 -1.7586 -5. y(:.t.1).2427 -19.türevi.5897 -4.2).9998 -1.3) çözümün 2.4417 -4.

pi/4) Warning: Obsolete syntax.tspan.4000 0.0232 1.6000 1. > In funfun\private\odearguments at 41 In ode23 at 172 x= 0 0. dy= 2*x*(cos(y))^2. >> [x.4000 1.9367 1.0000 1..2.8000 2. function dy= diffonk(x.y).y0..0000 y= 0.8050 0..0.8593 0.2000 0.1818 110 .6000 0.) instead.y]=ode23('diffonk'. Use ode23(fun.>>% ÖRNEK 18 >>% y’ = 2cos2 (y) diferansiyel denklemini ode23 fonksiyonunu kullanarak çözelim.2000 1.7854 0.1071 1.8000 1.

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

[0 12].0000 0.0001 1.-0.5169 -0.0000 1.0002 1.y]=ode45('rig'.7424 11. 1]) t= 0 0.function dy=rig(t.9279 -0.6135 -0.8974 -0.0001 0.y) dy=[y(2)*y(3).0001 1.6136 11.0000 y= 0 1.[0.0002 … 11.7874 0.0000 0.-y(1)*y(3). >> [t.8712 12.8539 0.9548 -0.0000 1.7128 0.9763 -0.9102 0.0000 1.2936 -0.0002 0. 1.0002 1.0000 0.0000 1.0000 … … … -0.6987 -0.8650 112 .0000 1.9540 0.51*y(1)*y(2)].4098 -0.4847 11.0001 0.0000 0.

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

1135 -1.[0 .9650 0.0339 0.9534 0.0001 0.6244 0.6763 114 .0014 0.6708 0.6448 0.0767 … 0.0088 0.0033 0.0192 0.9767 0.0000 y= 0 0 0.0383 0.[0 1].6603 0.0732 0.0748 -1.0553 -1.0004 0.1244 … … 0. 0]) t= 0 0.>> [t.0942 -1.1325 -1.9883 1.0575 0.y]=ode45('diffonk'.

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

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

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

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

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

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

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

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

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

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

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

kt = Columns 1 through 2 1.012345679012346 0.111111111111111 Columns 5 through 6 0.020408163265306 Columns 9 through 10 0. clear all. close all.000000000000000 Columns 3 through 4 0. end sonuc=n-1 sonuc = 6 129 .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. while prod(1:n)<1E3 n=n+1.062500000000000 0. clc n=1.040000000000000 Columns 7 through 8 0.027777777777778 0.010000000000000 0.015625000000000 0.

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

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

break deyimi ise.0000 0.3010 -1.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.4771 -2.0000 0 Görüldüğü gibi eksi işaretli sayılar işleme konulmamıştır.9499 m = 92 n = 9. for/while döngülerinde program akışını her ne olursa olsun bir sonraki çevrime geçirir.0000 0. Örnek 1: t=[-5.-2.-3.4. end t t = Columns 1 through 7 -5.6021 -3.6990 -4.5917 132 .3.5. for/while döngülerinde verilen koşul sağlandığında o andaki işlemi orada keser.continue ve break Deyimleri: continue deyimi.0000 Columns 8 through 10 0.-4.-1. for k=1:length(t) if t(k)<0 continue end t(k)= log10(t(k)).1].0000 0.

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

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

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

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

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

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

You're Reading a Free Preview

İndirme
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->