25
M-Dosyaları Editor: Kodların yazıldığı kısımdır. Uzantısı .m olan dosyalarla çalışır. 1

Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

M-Dosyaları• Editor: Kodların yazıldığı kısımdır. Uzantısı .m

olan dosyalarla çalışır.

1

M-Dosyasının Kullanımı

• İki çeşit M-dosyası vardır

– Scripts, Düz metin dosyalarıdır. Giriş ve çıkış argümanları içermeyen en basit türden bir M-dosyasıdır. Bu dosyaların yürütülmesinden elde

2

dosyasıdır. Bu dosyaların yürütülmesinden elde edilen sonuçlar da çalışma alanında kalır. Bu dosyalar MATLAB komut ortamında .m soneki kullanmaksızın dosya adını yazarak çalıştırılır.

– Functions, fonksiyon dosyasıdır. Giriş argümanlarına karşılık gelen çözümü çıkış argümanları olarak sonuçlandırır. Fonksiyon dosyaları kendi çalışma alanındaki yerel değişkenleri işletir.

Düz Metin Dosyası olarak M-Dosyası

Düz yazı dosyaları belirli bir düzen sırasına göre işletilecek komutlar serisiolan program dosyalarıdır (aritmetik ortalama, geometrik ortalama gibi)

• Metin dosyanıza isim verirken kullandığınız değişken isminikullanmayınız. Aksi taktirde MATLAB dosyasını açmakta problemyaşarsınız.

• Metin dosyanızı m-file olarak kaydedin (WORK’ directory/folder içinde).Aksi taktirde MATLAB bu dosyayı açmakta problem yaşar.Aksi taktirde MATLAB bu dosyayı açmakta problem yaşar.

• M-file dosyanıza isim verirken, harflerle sayılar arasında boşlukyapmaktan kaçının. Aksi taktirde MATLAB problem yaratır.

Düz Metin Dosyası olarak M-Dosyasıdosya ismi.m olarak dosyayı kaydedin

4

Şayet her bir durumun sonunda “;” varsa o satırdaki işlemin sonucunu göstermez.

Çıkışta görmek istediğiniz program sonucu için Çıkış Değişkenleri bölümü konmuştur. Bunun yerine İşlem kısmında değişkenlerinsonundaki (;) kaldırılarak da program çıkışı gösterilebilir.

Metin Dosyasını Koşturma

Command window penceresinde dosya ismini yazarak dosyayı koşturabilirsiniz. Ya da programın yazıldığı editör penceresi içerisinde F5 tuşuna basarak veyada Run tuşuna basarak koşturabilirsiniz.

MATLAB’de Fonksiyon Dosyası

• Fonksiyon dosyası da düz metin dosyası gibibir m-dosyası’dır.

• Fonksiyon dosyaları; tıpkı FORTRAN’daki altprogramlar yada PASCAL’daki yordam veyada Cveya C++ dilindeki fonksiyonlar gibidir.veya C++ dilindeki fonksiyonlar gibidir.

• Fonksiyon dosyaları iyi tanımlanmış girdi veçıktı listesine sahip bir fonksiyon tanımlamasatırı ile başlar. Function kelimesininbulunduğu bu satır olmazsa dosya düz metindosyası gibi işlem görür.

MATLABfunction

Matlab’da function yapısı a şağıdaki gibidir.

function [mean,stdev] = stat (x)

yapı çıktılar (output) function adı

n = length(x);

mean = avg(x,n);

stdev = sqrt(sum((x-avg(x,n)).^2)/n);

girdiler (input)ara işlem

1. çıktı

2. çıktı

function s= hort (a, b, c) Verilen 3 sayının harmoni k ortalamasını hesaplar

• Function İfade Satırı Dosya ismi

• function [rho, H, F] = motion (x, y, t); motion.m

• function [theta] = angleTH (x, y); angleTH.m

function[çıktı1,çıktı2,...,çıktıN]=fonksiyon_adi(girdi1,girdi2,…,girdiM) şeklinde bir yapı vardır. Girdiler ve çıktılar ilk satırda tanımlanmak zorundadır.

• function [theta] = angleTH (x, y); angleTH.m

• function theta = THETA (x, y, z); THETA.m

• function [] = circle (r); circle.m

• function circle (r) circle.m

MATLABfunction \ notlar

� Girdi sayısının çıktı sayısına e şit olması gerekmez.

� function kaydedilirken dosya ismini otomatik olarak alır.

� function’da kullanılan girdi ve çıktı değişkenleri ana programdan

� Girdi de ğişkeni bir vektör yada matris olabilir.

� function’da kullanılan girdi ve çıktı değişkenleri ana programdan

bağımsızdır. Böylece function’da kullanılan de ğişkenlerin ana

programdaki de ğişkenlerle çakı şması söz konusu olamaz.

� Ancak, function’daki de ğişkenleri aynen dı ş dünyaya yani ana

programa göndermek için GLOBAL komutu kullanılır.

MATLABfunction \ örnekfunction [kare, kok, toplam] = deneme (a,b)

kare = a^2;

kok = sqrt(b);

toplam = a+b;

deneme adlı bu programa 2 değer vererek test edelim.

MATLABfunction \ örnek

[a,b]=deneme(3,4)

a=9

b= 2

[b,a]=deneme(3,4)

b=9

a= 2

Şeklinde de çağrılmalar yapılabilir. Burada önemli olan çağrılış sırasıdır.

Köşeli parantezdeki ilk değişken function’da kare alma işlemi, ikinci

değişken kök alma işlemi ve üçüncü değişken ise toplam alma işlemi ile

sıralanmıştır. Bu yüzden function çağrılırken yukarıda görüldüğü gibi

değişkenlerin adının bir önemi olmaz.

2 2

FUNCTIONS

Fonksiyon dosyaları aynen kodlandığı formatta fonksiyon_adı ile çağrılır. Düz metin programlamada olduğu gibi direkt F5 tuşuna basarak ya da komut satırından direkt dosya basarak ya da komut satırından direkt dosya adını yazarak çalıştıramazsınız.

>>s=hort(3, 5, 7)

s=

4.4366

Sqrt, abs ve sin gibi bazı fonksiyonlar, yerleşik fonkiyonlardır; yani Matlab’in kendi içinde hazır bulunur.

Örneğin “sqrt()” bir girdi değişkeninin Örneğin “sqrt()” bir girdi değişkeninin karekökünü lan bir fonksiyondur.

>> sqrt(4)

ans =

2

TRĐGONOMETRĐK FONKSĐYONLAR

Matlab’de trigonometrik fonksiyonlarda derece yerine radyan kullanılır. 2π=360 veya π=180derecedir. Örneğin derece cinsinden sin(30)=0.5 tir. MATLAB’da aynı işlemSin(30)=-0.99 bulunur.sin(30*pi/180)

UYGULAMAUYGULAMA

1. yol

44

LOGARĐTMĐK ve ÜSTEL FONKSĐYONLAR

Üstel Fonksiyonlar

e’nin x. Kuvvetini hesaplamak için exp(x)ifadesi kullanılır e =2.718.

>> exp(1)ans =

2.7183>> exp(2)>> exp(2)ans =7.3891

Logaritmik Fonksiyonlar1- Matlab’de matematikten bildiğimiz doğal logaritma gösterimi ln olarak değil doğrudan log olarak gösterilmektedir. lnx=logex demektir. x değeri için

Matematikte lnxMatlab’de log(x)

MATLAB’dax değeri için normal logaritma 10 tabanındadır ve bir x değeri için genel yazımı log10(x) şeklindedir.Doğal logaritma da olduğu gibi negatif sayıların logaritmaları reel sayı değildir ve sıfır için değeri sonsuzdur.

NORMAL LOGARĐTMA

logaritmaları reel sayı değildir ve sıfır için değeri sonsuzdur. 0 ile 1 arasındaki (0 ve 1 dahil değil) değerleri negatiftir.

ÖRNEK: log1, log10, log100 ve log 1000, sonra log2, log5, log3/5 ve sonra da log0 ve log(-4) değerlerini bulalım.

YUVARLATMA ĐŞLEMLERĐ

fix: Sıfıra doğru yuvarlatma yaparfloor: -∞ ‘a doğru en yakın tamsayıya yuvarlatma yapar

ceil: +∞ ‘a doğru en yakın tamsayıya yuvarlatma yaparyapar

round: En yakın tamsayıya yuvarlatma yapar

round, floor, ceil

Örnekmath:round(45.50) =46 math:floor(45.60) =45 math:ceil(45.20) =46 math:round(-4.5) =-4 math:floor(-4.6) =-5 math:floor(-4.6) =-5 math:ceil(-4.20) =-4

MATLAB’in Yardım Desteği

>> helpHELP topics:

matlab\general - General purpose commands.matlab\ops - Operators and special characters.matlab\lang - Programming language constructs.matlab\elmat - Elementary matrices and matrix

manipulation.matlab\elfun - Elementary math functions.matlab\specfun - Specialized math functions.matlab\matfun - Matrix functions - numerical linear

Intro MATLAB

matlab\matfun - Matrix functions - numerical linear algebra.

matlab\datafun - Data analysis and Fourier transforms.matlab\polyfun - Interpolation and polynomials.matlab\funfun - Function functions and ODE solvers.matlab\sparfun - Sparse matrices.matlab\scribe - Annotation and Plot Editing.matlab\graph2d - Two dimensional graphs.matlab\graph3d - Three dimensional graphs.matlab\specgraph - Specialized graphs.matlab\graphics - Handle Graphics.…etc...

>>help fonksiyonadı

>> help matfun

Matrix functions - numerical linear algebra.

Matrix analysis.

norm - Matrix or vector norm.

normest - Estimate the matrix 2-norm.

rank - Matrix rank.

det - Determinant.

Intro MATLAB

det - Determinant.

trace - Sum of diagonal elements.

null - Null space.

orth - Orthogonalization.

rref - Reduced row echelon form.

subspace - Angle between two subspaces.

Command-Line Help�: Function Help

>> help detDET Determinant.

DET(X) is the determinant of the square matrix X.

Use COND instead of DET to test for matrixsingularity.

See also cond.

Intro MATLAB

Overloaded functions or methods (ones with the samename in other directories)

help laurmat/det.m

Reference page in Help browserdoc det

Farklı girdi parametreleri için oluşturacağınız bir formülün değerini hesaplayıp tablo ile gösteren bir düz yazı dosyası hazırlayınız.

ÖDEV 3:

�Ödev, 17 Mart 2014 tarihine kadar Arş. Gör. Ufuk KANDİL’e teslim edilmelidir.