SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
MATLAB
                                Dr. Tolga BEKLER

                        Canakkale Onsekiz Mart Universitesi

                           Jeofizik Mühendisligi Bölümü

                                       2006

                                   BÖLÜM -I -




Içindekiler
Giris
Baslarken
Temel Matematiksel Islemler
Degiskenler
Karmasik Sayilar
Temel Istatistiksel Islemler
Polinomlar
Yuvarlatma Islemleri
Matriks ve Vektörler
Nokta Çarpim/Bölme
Temel Matris Islemleri
Ters Islemler
Özvektörler ve Özdegerler
Hazir Matris Fonksyionlari
Grafik Çizimler
Yüzey Çizimleri
Vektör Alanlari
Sembolik Degiskenler
Denkleme Sistemlerinin Çözümü
Dogrusal Olmayan Denklem Takimlarinin Çözümü
Integraller
Türevler
Örnekler
Örnekler
Giris
MATLAB, MATrix LABoratory szöcüklerinden gelir ve temelde sayisal ve analitik olarak
matematiksel fonksyionlarin ifadelerinin kullanildigi basta mühendislik alaninda olmak üzere
birçok sayisal analizi kullanan bilimlerde son yillarda oldukça sik kullanilan bir hazir yazilim
paketidir. Özellikle yüksek performans gerektiren algoritma hazirlama ve gelistirme, sayisal
analiz, simülasyon, mühendislik problemlerinin sayisal ve grafik çözüm tekniklerinde son
derece etkindir.

Baslarken
Matlab yazilim paketinde kullanilacak olan her hazir fonksyion yaninda kullanicinin da kendi
yazilimini olusturma imkani saglar. Matlab’in gerek kisisel bilgisayarlarda (PC) gerekse diger
isletim sistemlerinde (UNIX, LINUX) gibi bazi ufak farkliliklar disinda kullanimi, ya
dogrudan kendi çalisma ve komut ekreaninda ya da ‘m’ uzantili program dosyasi olusturmak
suretiyle (script) olmaktadir. Program çalistrildiginda çalisma ekranina ilk olarak ‘>>’ komut
ekrani gelecektir.

>> 4.3+4.2

ans =

     8.5000

‘ans’ 2.3 ile 4.2 sayilarinin toplamini sonuc olarak verecektir. (answer)


>> format rat
>> 5.1-3.3

ans =

     9/5
Sonuç format rat ile kesirli halde alinabilir.

>> format compact
>> 5*7
ans =
      35
Islem sonucu arasina ekstra bosluk birakilmaz



Temel Matematiksel islemler
>> 5^8
ans =
   40

>> format long   ile istenilen sonucun duyarliligi gösterilir.
>> sqrt(2)
ans =
   1.41421356237310
Temel trigonometric operatörler (cos, sin, tan, sec, csc, cot), tersleri (acos, asin, atan,
asec, acsc, acot ), exponansiyel fonksyionexp, dogal logaritma log.

Örnek: ln(14)+sin(π/4) asagidaki sekilde hesaplanir
>> log(14)+sin(pi/4)
ans =
   3.34616411080181

Matlab’te hazir fonksyionalrin kullanim sekillerini bilmek istenirse ‘help’ komutu kullanilir
>> help abs     (mutlak deger icin yardim dosyasi cagirma)




 ABS     Absolute value.
    ABS(X) is the absolute value of the elements of X. When
    X is complex, ABS(X) is the complex modulus (magnitude) of
     the elements of X.

     See also SIGN, ANGLE, UNWRAP.

 Overloaded methods
    help sym/abs.m



Degiskenler
Tüm yazilabilir karakterler degisken olarak atanabilir ve ‘=’ olarak verilir.

>> x=23
x =
     23

Degislen isimleri büyük ve küçük harf ayrimina hassastir. X ve x degiskenleri ayri olarak
tanimlabilir.
>> x^2-3*x+2
ans =
    30
>> log(x)
ans =
   1.94591014905531
>> sin(x)
ans =
   0.65698659871879

Yeni bir ifade icin bir önceki degisken kullanilabilir. Her islem ssonucu
bellekte saklanir.
>> y=8*x
y =
    56

>> x=x+5
x =
    12
>> y
y =
    56

>> who      komutu kullanilan degisken isimlerini verir

Your variables are:

ans     x     y

>> whos      komutu degiskenlerin boyut bilgisini verir.
  Name         Size           Bytes Class

  ans             1x1                  8   double array
  x               1x1                  8   double array
  y               1x1                  8   double array

Grand total is 3 elements using 24 bytes

Bellekteki degiskenleri silmek icin ‘clear’ komutu kullanilir. Bu asamadan
sonra degiskenler çagrilmak istenirse;
>> clear
>> who
>> x
??? Undefined function or variable 'x'.

ile karsilasilir.


Karmasik Sayilar
Genel formati a+ib, a-ib, a+bj, a+jb olan ifadelerdir.

>>2-3i

ans =

   2.0000 - 3.0000i

>> 2-3*i

ans =

   2.0000 - 3.0000i

ayni ifadenin 2-i3 olarak yazilamayacagina dikkat edilmeli.

Karmasik sayilarin taniminda ‘complex’ fonksyionuda kullanilir. Bu fonksyion karmasik
sayinin gerçel ve sanal kisimlarini verir.

> x=3;y=4;

>> complex(x,y)
ans =

       3.0000 + 4.0000i

>> complex(2,-3)

ans =

       2.0000 - 3.0000i

Karmasik sayi islemleri:

abs       :Mutlak deger alir (Genlik bilgisi)

angle : Faz açisi

conj      : Karmasik eslenik

imag      : Karmasik sanal kisim

real      : Karmasik gerçel kisim

>> z=2+5i;
>> abs(z)
ans =
    5.3852
>> angle(z)
ans =
    1.1903
>> conj(z)
ans =
   2.0000 - 5.0000i
>> imag(z)
ans =
      5
>> real(z)
ans =
      2


Temel Istatistiksel Islemler
Özellikle saha ve gozlem verileri üzerinde yapilacak analizlerin ve degerlendirilmeler için
istatistiksel yöntemleri Matlab’te kullanmak mümkündür. Bilinen en temel komutlar;
max             : Veri kümesindeki en büyük degeri bulur.
min             : Veri kümesindeki en küçük degeri bulur.
length          : Küme içinde kaç eleman oldugunu verir.
sum             : Kümenin toplam sayisini verir
prod            : Verilerin çarpimini hesaplar
median          : Verilerin ortanca degerini hesaplar
std             : Standart sapma
mean            : Ortalama deger yada aritmetik ortalama
geomean       : Geometrik ortalama
harmmean      : Harmonik ortalama
sort          : Küme elemanlarini azalan sirada hazirlar
>> T=[2.1;2.5;1.9;-1.9;2.4;3.0]
T =
    2.1000
    2.5000
    1.9000
   -1.9000
    2.4000
    3.0000
>> max(T)
ans =
      3
>> min(T)
ans =
   -1.9000
>> length(T)
ans =
      6
>> sum(T)
ans =
    10
>> prod(x)
ans =
   120
>> median(x)
ans =
    3.5000
>> median(T)
ans =
    2.2500
>> std(T)
ans =
    1.7874
>> mean(T)
ans =
    1.6667
>> geomean(T)
??? Error using ==> geomean
The data must all be non-negative numbers.                 % Negatif sayi içeren küme var
>> harmmean(T)
ans =
    3.6896


Polinomlar
Matlab’ta polinomlar bir vektörle temsil edilirler. Polinom olusturmak için
yüksekten düsük dereceliye dogru azalan sirada polinom katsayilari yazilir.

x=s4+3s3-15s2-2s+9 polinomu programa asagidaki sekilde yazilir;
x=[1 3 -15 -2 9]
x=
1 3 -15 -2 9
Benzer sekilde y=s4+1’in gösterilimi y=[1 0 0 0 0 1] seklindedir.
Polinomun herhangi bir kök için degeri, örnegin s4+1’in s=2 için degeri;

z=polyval([1 0 0 0 1],2) veya dogrudan z=polyval(y,2)
z=
17

Polinomun köklerinin bulunmasi, örnegin s4+3s3-15s2-2s+9 için;

roots([1 3 -15 -2 9])
ans=
-5.5745
2.5836
-0.7951
0.7860
• Iki polinomun çarpilmasi, (x+8) (x2+4x+8) = x3+6x2+16x+16
x=[1 2]
y=[1 4 8]
z=conv(x,y)
z=
1 6 16 16
• Iki polinomu bölelim
[xx,R]=deconv(z,y)
xx=
1 2 (bölüm=x+2)
R=
0 0 0 0 (kalan=0)

Örnek: P(x)=x4+3x3-15x2-2x+9 polinomunun x=2 için alacagi degerin bulunmasi

>> P=polyval([1 3 -15 -2 0],2)

P =

     -24

Örnek: P(x)=x4-5x      x=2 ve x= 8 için fonksiyonun alacagi degerin bulunmasi

>>   x=[2 8];
>>   p=[1 0 0 -5 0];
>>   pp=polyval(p,x)
pp   =

             6          4056


Polinom Köklerinin Bulunmasi

Bir P(x)=0 polinomunun köklerinin bulmak için ‘roots’ komutu kullanilir.
Örnek: y=3x3+4x2-6x+1 denklemini saglayan kökler

>> y=[3 4 -6 1];
>> roots(y)
ans =
   -2.2763
    0.7469
    0.1961


Yuvarlatma Islemleri
fix     : Sifira dogru yuvarlatir

floor   : - 8 dogru yuvarlatir

ceil    :+ 8 dogru yuvarlatir

round : en yakin tamsayiya yuvarlatir.

>> a=3.5;

>> fix(a)

ans =

        3

>> floor(a)

ans =

        3

>> ceil(a)

ans =

        4

>> round(a)

ans =

        4


Matrisler ve Vektörler
Matriks olusturmak için köseli, parantez kullanilir ve ’;’ ile satirlar ayrilir
>> A=[2 11 -3 8; 1 0 8 -3; 7 1 2 5]
A =
2      11      -3      8
       1      0        8     -3
       7      1        2      5

Sonuç verecek olan her komut satiri sonuna ‘;’ konulursa görülmesini istemediginiz
>> B=[2 0 -3; -1 1 3];

will still define the variable B containing a 2×3 matrix, but MATLAB will not echo anything.
>> whos
  Name          Size                Bytes     Class

  A             3x4                     96    double array
  B             2x3                     48    double array
  v             3x1                     24    double array

Grand total is 21 elements using 168 bytes

Bir B matrisinin elemanlarini gormek icin;
>> B
B =
       2      0       -3
      -1      1        3

Vektorlerim matrislerin tek kolon halidir ve gösterimleri;
>> v = [ 2; 3; -4]
v =
     2
     3
    -4

Bir satir vektorü bir satiri olan bir matrisdir.
>> w=[3 -2 5 11]
w =
     3    -2     5            11

Örnegin iki sayi arasinda sirali satir vektörü olusturmak için a:b; örnegin
>> 2:5
ans =
      2        3       4       5

j:i:k bir satir vektörünü tanimlar ve j baslangiç, I artim ve k son elemani gösterir.
>> 3:2:9
ans =
      3        5       7       9

Matrisin transpozu
>> A=[5 -2 9; 11 7 8]
A =
      5   -2     9
    11     7     8
>> A'
ans =
      5   11
    -2     7
      9    8
Esit artimli bir vektörün transpozu asagidaki gibi tanimlanir;
>> [1:3:10]'
ans =
      1
      4
      7
    10

A is A(i,j) matrisinin istenilen I ve j elemaninin bulunmasi
>> A=[3 -2 7 8; 4 3 2 1; 10 15 -2 9]
A =
       3    -2       7       8
       4     3       2       1
      10    15      -2       9

>> A(3,2)
ans =
    15

3. satirin 2. ve 4. sutun degerleri
>> A(3,[2 4])
ans =
    15     9

3. kolonun tum degerleri
>> A(3,:)
ans =
    10    15         -2        9
>> A(:,3)
ans =
      7
      2
    -2

A matrsinin 1, 2 ve 4. kolon degerleri
>> A(:,[1 2 4])
ans =
      3   -2           8
      4    3           1
    10    15           9


Ayni satir sayisina sahip iki matris asagidaki örnekte oldugu birlestirilebilir.
>> A=[1 2 3; 4 5       6]
A =
      1    2           3
      4    5           6
>> B=[7 8; 9 10]
B =
      7    8
      9   10
>> [A B]
ans =
      1    2           3       7       8
      4    5           6       9      10
>> C=[7 8 9]
C =
7       8        9
Eger satirlar birlestirilmek istenirse;
>> [A;C]
ans =
      1       2        3
      4       5        6
      7       8        9

Bir A matrisinden herhangi bir satirin kaldirilmasi istenirse
>> A=[ 4 7 2 1 3; 8 7 12 -2 5; 11 1 14 -2 0]
A =
     4     7      2      1      3
     8     7     12     -2      5
    11     1     14     -2      0
>> A(2,:)=[] seklinde yazilir.
A =
     4     7      2      1      3
    11     1     14     -2      0
>> A(:,[1 3])=[] 1. ve 3. sütünlar kaldirildiktan sonraki durum
A =
     7     1      3
     1    -2      0



Nokta çarpim
Matlab dilinde dot (nokta islemler) islemler çarpma *. Bölme ./ veya . Üstalma .^ olarak
kullanilir. Yani nokta isaretli islemler matrislerde eleman (elemanter) islem yapilacagini
gösterir. N bier sakaler olmak üzere a.^n, a matrisindeki her bir elemanin n. katresinin
alinacagini ifade eder( Inan, A., 2004).
Vektörlerin her elemani çarpilir ve kümülatif toplam elde edilir.
>> v=[7; 23; 15; 2], w=[5; -2; 1; -8]
v =
      7
    23
    15
      2
w =
      5
    -2
      1
    -8
>> dot(v,w)
ans =
   -12

Nokta çarpim simetriktir ayni sonuç alinir.
>> dot(w,v)
ans =
   -12

Bir vektörün boyu ||v||=√{v·v}. ise
>> vlength=sqrt(dot(v,v))
vlength =
28.4077

Yada norm komutu ile de elde edilir.
>> norm(v)
ans =
   28.4077

Iki vector arasindaki açi θ ise v·w=||v||||w||cosθ. θ = arccos((v·w)/||v||||w||). çözümü

>> theta=acos(dot(v,w)/(norm(v)*norm(w)))
theta =
    1.6144
>> theta*180/pi
ans =
   92.4971

Yaklasik açi 92.5°.




Temel matris islemleri
>> A=[5 -1 2; 3 4 7]
A =
      5   -1     2
      3    4     7
>> B=[2 2 1; 5 0 3]
B =
      2    2     1
      5    0     3
>> A+B
ans =
      7    1     3
      8    4    10

Ayni boyutttaki matrislerin toplami gerçeklestirilebilir.
>> C=[3 1; 6 4]
C =
     3     1
     6     4
>> A+C
??? Error using ==> +
Matrix dimensions must agree.
Seklinde hatali sonuç alinir.

Bir matrisin elemanlarinin scalar bir sayi ile çarpilmasi.
A=[1 2 ; 3 4]

A =

      1       2
      3       4
>> 3*A

ans =

        3     6
        9    12
‘ * ‘ çarpim operatörü olup 2A seklinde yazilamaz.
>> 2A
??? 2
      |
Missing operator, comma, or semi-colon.

Ayni sekilde vektörlerin scalar çarpimlari ve ara islemleri yapilabilir.
B=[2 ;3]

B =
     2
     3
>> C=[4 ;3]
C =

     4
     3
>> D=3*A-2*C
D =

      -2
       3
Iki matrisin A*B çarpimi A m×n ve B n×k oldugunda geçerlidir. Sonuç A*B matrisi m×k
boyutundadir.
>> A=[3 1 7 2; 6 -3 4 2; 9 4 -1 -2]
A =
     3     1     7     2
     6    -3     4     2
     9     4    -1    -2
>> B=[1 2; 3 4; 5 6; 7 8]

B =
      1       2
      3       4
      5       6
      7       8
>> A*B
ans =
    55       68
    31       40
      2      12


Matlab’da islem satiri devam edemeyecek durumda ise … kullanilir
A=[2;2;2 ...
;33]
A=
   2
   2
2
  33

Matriks rank hesaplama için
Bsr matrisin tüm karesel alt matrislerinden, determinanti sifirdan farkli olan en yüksek
boyutlusunun boyutuna A matrisinin ranki denir.
>> A=[1 2 1 4; 2 3 1 3; 3 2 1 2; 4 3 1 1]
A =
      1    2     1     4
      2    3     1     3
      3    2     1     2
      4    3     1     1
>> rank(A)
ans =
      3



Ters Islemler
Bir A matrisinin tersi A^(-1) yada inv(A) ile gösterilir. Inv ters islem yapma operatörüdür.
>> A=[2 1 1; 1 2 2; 2 1 2]
A =
      2            1                      1
      1            2                      2
      2            1                      2
>> Ainv=inv(A)
Ainv =
     2/3         -1/3                    0
     2/3          2/3                   -1
     -1            0                     1

Sonucun saglanmasi için ters ve kendisi birim matrisi vermelidir.
>> A*Ainv
ans =
      1                  0                0
      0                  1                0
      0                  0                1
>> Ainv*A
ans =
      1                  0                0
      0                  1                0
      0                  0                1

Eger matris tekil ise tersi alinamaz. Hatali sonuç alinir.
>> B=[1 2 3;4 5 6;7 8 9]
B =
     1     2     3
     4     5     6
     7     8     9
>> inv(B)

Warning: Matrix is close to singular or badly scaled.
         Results may be inaccurate. RCOND = 2.055969e-018.
ans =
  1.0e+016 *
-0.4504       0.9007      -0.4504
    0.9007      -1.8014       0.9007
   -0.4504       0.9007      -0.4504

B matrisinin rank degeri
>> rank(B)
ans =
      2

Rank degeri 3’den küçük oldugundan B matrisi tekildir, Matrisin determinantinin sifirdan
farkli deger almasi gerek.
>> det(B)
ans =
      0


MAtlab tarafindan tekil olarak gorulen tersi alinabilen matrisler vardir.

>> format long
>> C=[1.00000000000001 1; 1 .99999999999999]
C =
   1.00000000000001   1.00000000000000
   1.00000000000000   0.99999999999999
>> inv(C)
Warning: Matrix is singular to working precision.
ans =
   Inf   Inf
   Inf   Inf
>> rank(C)
ans =
      1
>> det(C)
ans =
      0
>> rref(C)
ans =
   1.00000000000000   0.99999999999999
                  0                  0

Matlab matrisi rank=1 ve determinanti 0 oldugundan tekil kabul eder..Ancak eger ε =
0.00000000000001, then det(C)=(1+ε)(1−ε)−1=−ε2 ≠ 0, boylece tersi alinabilir. Format
komuru ile 1+ε ve 1−ε olarak birbirinden farkli 15 digitli bir deger elde edilir. Bu durumda
tanim ;
                    (1+ε)(1−ε)=1−ε2 = 0.9999999999999999999999999999

Bu klasik anlamda bir ters çözüm isleminin tekil matrisler icin çözüm asamasidir.

Ax=b olarak verilen bir ifadenin çözümünü ele alalalim, Burada A is terselenebilir olsun, basit
olarak x=A−1b olacaktir.

>> A=[11 7 -6 8; 3 -1 12 15; 1 1 1 7; -4 6 1 8]
A =
    11     7    -6     8
3    -1    12     15
     1     1     1      7
    -4     6     1      8
>> b=[10; -23; -13; 4]
b =
    10
   -23
   -13
     4
>> format rat
>> x=inv(A)*b
x =
      1
      5
      2
     -3

Islemi saglamak için
>> A*x
ans =
      10
    -23
    -13
       4



Özvektörler ve Özdegerler
Bir kare matrisin özdegerlerini bulmak için ‘eig’ komutu kullanilir.
>> A=[ 3 1 1; 1 3 1; 1 1 3]
A =
      3    1     1
      1    3     1
      1    1     3
>> eig(A)
ans =
    2.0000
    2.0000
    5.0000
>> [Q,D]=eig(A) A çarprazlanabilir ise
Q =
   -0.8164   -0.0137    0.5774
    0.3963    0.7139    0.5774
    0.4201   -0.7001    0.5774
D =
    2.0000         0         0
         0    2.0000         0
         0         0    5.0000
Q matrisinin kolonlari A matrisinin öz-temellerini olusturur. v Q-1AQ=D. Saglamasi
>> inv(Q)*A*Q
ans =
    2.0000         0          0.0000
    0.0000    2.0000          0.0000
   -0.0000    0.0000          5.0000
Q gerçekçe özvektörlerin dik normalarini olusturur.
>> Q'*Q
ans =
    1.0000        0.0000     -0.0000
    0.0000        1.0000     -0.0000
   -0.0000       -0.0000      1.0000

Bir matrisin kösegen degerleri için ‘diag(A)’ kullanilir.
>> a=[2 4 4;2 3 1;3 -2 5]

a =

        2    4       4
        2    3       1
        3   -2       5

>> diag(a)

ans =

        2
        3
        5


Hazir matris fonksiyonlari
Rand, ones, zeros, eye:

‘rand’ veya ‘randn’ fonksyionlarinin kullanilmasi; bazi durumlarda yalnizca bir özelligi veya
bir seyi denemek ve durumunu gözlemek için rastgele sayilardan olusmus bir matris
olusturmak için kullanilir. ‘Rand’ düzenli olarak dagilmis ‘randn’ ise normal olarak dagilmis
rastgele sayi üretir (Inan, A., 2004).

Örnegin; a=-5 ile b=5 arasinda yani -5 ile +5 arasinda rastgele sayili 2x4 (iki satur 4 sütünlu)
bir matris üretmek istenirse

>>a=-5+10*rand(2,4)

a =

      4.3547     -0.8973     -4.4211       3.1317

      4.1690      3.9365     -1.4713      -4.9014

>> c=rand(4) 0 ile 1 arasinda 4x4 matris olusturur. Özellikle iki boyutlu verilere
rastgele gürültü eklenmesinde temel kullanima uygundur.

c =
      0.1389      0.2722      0.4451       0.8462
      0.2028      0.1988      0.9318       0.5252
      0.1987      0.0153      0.4660       0.2026
      0.6038      0.7468      0.4186       0.6721
‘Ones’ fonksyionu elemanlari 1 olan bir matris ‘zeros’ fonksiyonu elemanlari 0 olan matris
olusturur.

>> s=ones(3)

s =

        1      1     1

        1      1     1

        1      1     1

>> d=zeros(4)

d =

        0      0     0      0

        0      0     0      0

        0      0     0      0

        0      0     0      0

‘eye’ fonksiyonu ile birim matris olusturulur.

>> d=zeros(2,4)

d =

        0      0     0      0
        0      0     0      0

>> e=ones(2,5)
e =
     1     1         1      1       1
     1     1         1      1       1
>> f=eye(3,3)
f =
     1     0         0
     0     1         0
     0     0         1

Özel Matrisler

Pascal(i) fonksyionu i. siraya kadar passcal üçgeninin elemanlarindan olusan ixi boyutunda bir
matris olusturulur.

>> pascal(4)

ans =
1     1      1       1

        1     2      3       4

        1     3      6     10

        1     4     10     20




        1
       1 1
     1 2 1
    1 3 3 1
   1 4 6 4 1

‘magic(j)’ fonksiyonu jxj uzunlugunda 1’den j’ye kadar sayilardan olusan (j=2 hariç) esit satir,
sütün ve kösegen toplamina sahip bir kare matris olusturur.

>> magic(3)

ans =

        8     1      6

        3     5      7

        4     9      2




       8 + 1 + 6 = 15
       +
       3 + 5 + 7 = 15
       +
       4 + 9 + 2 = 15
      ----------------
       15 15 15

[x,y]=meshgrid(x,y) fonksiyonu x ve y vektörlerini X ve Y matrislerine
dönüstürerek aslinda 3 boyutlu grafik çizimleri için bir veri ortami
hazirlar.

>> [X,Y]=meshgrid(-2:1:2,-2:1:2)

X =
      -2    -1       0       1      2
      -2    -1       0       1      2
      -2    -1       0       1      2
      -2    -1       0       1      2
      -2    -1       0       1      2
Y =
      -2    -2      -2     -2      -2
      -1    -1      -1     -1      -1
       0     0       0      0       0
       1     1       1      1       1
       2     2       2      2       2

Burada -2 ile 2 arasinda artimi 1 olan X ve Y matrisleri olusturulmustur.




Grafik Çizimleri
‘plot’ fonksiyonu belirli bir düzlem verisinin grafik gösterimi için kullanilir. Bir x ve y
düzleminde verilen bir verinin gösterimi plot(x,y). Örnegin x ve y elemanlari (0,0), (1,1),
(4,2) ve (5,−1) olan düzlem

>> x=[0 1 4 5 0];
>> y=[0 1 2 -1 0];
>> plot(x,y)




Bir baska örnekte y=x3 fonksiyonu [−2,2] olarak tanimlaniyorsa bunun matlab da çizimini
yapalim. Araligini kendimizin belirleyecegi −2 den 2 x degerleri

>> x=-2:.05:2;        % 0.05 artim

x vektörü 1x81 matrisini olusturur. Bu size(x) yazilarakta belirlenebilir.
>> y=x.^3;

y=x^3 yazildiginda x kare matris olmadiginda hata verecektir.
>> plot(x,y)

Çizilen grafige baslik yazilmasi
>> title('f(x)=x^3 fonksiyonu')
r(t)=(2tcost/(t+1),2tsint/(t+1)) kapali egrisini t ∈ [0,4π] için çizimde t vektörü aiagidaki gibi
tanimlansin .

>> t=0:.1:4*pi;

>>   x=2*t.*cos(t)./(t+1);
>>   y=2*t.*sin(t)./(t+1);
>>   plot(x,y);
>>   title('(2t cos t/(t+1),2t sin t/(t+1))')

Matlab grafik çizimlerini otomatik ayarlar. Uygun ölçekte görmek için ‘axis equal’
>> axis equal




Ayni sekil üzerinde birden fazla egriyi göstermek için ‘hold on’.

Ayni sekil üzerinde birden fazla egriyi göstermek için ‘hold on’ kullanilir.

Örnek: x2+y2=4 ve (x−1)2+(y−1)2=1 gibi iki daire ayni sekilde gösterilmek istenirse.
r1(t)=(2cost,2sint) ve r2(t)=(1+cost,1+sint) t ∈ [0,2π] olarak tanimlanirsa.

>> t=0:pi/20:2*pi;
>> plot(2*cos(t),2*sin(t))
>>   hold on
>>   plot(1+cos(t),1+sin(t))
>>   axis equal
>>   title('x^2+y^2=4 and (x-1)^2+(y-1)^2=1            daireleri')




Yüzeylerin Çizimleri
f(x,y) fonksiyonun dikdörtgensel ortamda gösterimi


                         R=[a,b]×[c,d]={(x,y) | a ≤ x ≤ b and c ≤ y ≤ d},

Ilk olarak ‘meshgrid’ fonksiyonunu kullanarak ortami gridleyerek tanimlayabiliriz




Dikdörtgen [0,4]×[0,3] parçalara bölünürse ve genisligi 1 yüksekligi 0.5 olan. Gird araligini
tanimlayan x ve y vektörlerinin tanimlanmasi gerek.
>> x=0:4
x =
     0      1        2       3        4
>> y=0:.5:3
y =
         0       0.5000       1.0000       1.5000       2.0000       2.5000     3.0000

meshgrid grid noktalarini tanimlar.
>> [X,Y]=meshgrid(x,y)
X =
     0      1       2       3         4
     0      1       2       3         4
     0      1       2       3         4
     0      1       2       3         4
0       1      2     3       4
       0       1      2     3       4
       0       1      2     3       4
Y =
           0            0          0           0            0
      0.5000       0.5000     0.5000      0.5000       0.5000
      1.0000       1.0000     1.0000      1.0000       1.0000
      1.5000       1.5000     1.5000      1.5000       1.5000
      2.0000       2.0000     2.0000      2.0000       2.0000
      2.5000       2.5000     2.5000      2.5000       2.5000
      3.0000       3.0000     3.0000      3.0000       3.0000

öylece 35 noktadan olusan 7×5 matris elde edilir. X matrisi x koordinatlarini y matrisi y
kooridnatlarini içerir.
f(x,y)=3x−2y fonksiyonunu çizelim. z koordinatlarini olusturan z
>> Z=3*X-2*Y olarak tanimlansin
Z =
       0     3        6     9      12
      -1     2        5     8      11
      -2     1        4     7      10
      -3     0        3     6       9
      -4    -1        2     5       8
      -5    -2        1     4       7
      -6    -3        0     3       6

Sonuç olarak ’surf’ fonksyionu tanimli yüzeyin çizimi için kullanilir
>> surf(X,Y,Z)
>> title('f(x,y)=3x-2y yüzeyi')




x ve y tanimlamalari dogrudan da yapilabilir.
>> [X,Y]=meshgrid(0:4,0:.5:3)


Örnek: f(x,y)=x2y−2y fonksiyonunu [−2,2]×[−1,1] tanimli aralikta gösterelim. Kenar uzunlugu
0.1 olan karelerden olusan bir grid tanimlanmasi gerek.

>> [X,Y]=meshgrid(-2:.1:2,-1:.1:1);
z yüzeyinin tanimi
>> Z=(X.^2).*Y-2*Y;
Yüzeyin çizilmesi.
>> surf(X,Y,Z)
>> title('f(x,y)=x^2y-2y          Yüzeyi')




Yariçapi ρ olan bir küre R3 ile merkezlenmis olsun. Ve genellestirilmis ifadesi ve tanim
araligi,


                 r(φ,θ)=(ρsinφcosθ ρsinφsinθ,ρcosφ)         0 ≤ φ ≤ π,0 ≤ θ ≤ 2π.

Bu birim küreyi çizdirelim. Ilk olarak φ ve θ mesgrid fonksyionunu parametreleri olacaktir.

>> phi=0:pi/20:pi;
>> theta=0:pi/10:2*pi;
>> [Phi,Theta]=meshgrid(phi,theta);

ρ = 1 için.
>> X=sin(Phi).*cos(Theta);
>> Y=sin(Phi).*sin(Theta);
>> Z=cos(Phi);

Finally we plot the surface, and scale the axes so that it looks like a sphere!
>> surf(X,Y,Z)
>> axis equal
>> title('Birim küre {bf R}^3')            %{bf R} yazim sekli R3 için formattir.

Yada hazir fonksiyon halinde ‘sphere(n)’ n tam sayisi ile ayni küre elde edilir.
Konturlama ( Egri Seviye Degerleri )
f(x,y)=x2−y2. seviye egrilerinin gösterilmesi için 'contour’ komutu kullanilmaktadir.

>>   [X,Y]=meshgrid(-1:.1:1);
>>   Z=X.^2-Y.^2;
>>   contour(X,Y,Z)
>>   title(' f(x,y)=x^2-y^2 fonksiyonunun seviye egrileri')




Konturlarin degerlerini elde etmek için
>> [C,h]=contour(X,Y,Z);
>> clabel(C,h)
>> title('f(x,y)=x^2-y^2 kontur degerleri ile.')
Grafik ve Konturlarin beraber çizdirilmesi için ‘surfc’ komutu kullanilir
>> surfc(X,Y,Z)
>> title('f(x,y)=x^2-y^2. fonksiyonu ve kontur cizgileri')




Vektör Alanlari
Bir vektör alan Rn ile tanimlanan bir fonksiyon olsun. F:Rn→Rn, ve grafik olarak her x
degerinin F(x) olarak yani x in Rn tanimlanir. MATLAB, quiver(X,Y,U,V) ile
(U,V)vektörünü (X,Y)noktalarinda .

Örnek:Vektör alani F(x,y)=(−y,x)

>>   [X,Y]=meshgrid(-1:.2:1);
>>   quiver(X,Y,-Y,X)
>>   axis equal
>>   axis([-1 1 -1 1])
>> quiver(X,Y,-Y,X,0)
quiver(X,Y,U,V,s) genel ifadesinde s ölçeklendirme olarak kullanilir.
Yukarida sagdaki sekilde s=0 olarak alinmistir. Kullanilmassa otomatik
ölçeklendirme yapilir.




Sembolik Degiskenler ve Ifadeleri
MATLAB simgesel islemlerde Symbolic Math Toolkit’i kullanir. Kullanilacak fonksiyonlar

>> help symbolic

ile görülebilir.
Simgesel degisken ve islemlere giris yapmak için ‘>>symintro’ yazmak yeterlidir.

Sayisal islemlerde ve karakter indislerinde bildirime gerek yok iken, simgesel islemlerde
kullanilacak degiskenlerin önceden bildirilmesi gerekir. Örnegin ‘a’ gibi bir sembolik degisken
>> sym a
 ans =
 a
veya
>> sym('a')

ans =
 a

ile bildirilir.

Bir fonksionda geçen degiskenler x,y ve z olsun
>> syms x y z

Anlami x=sym('x'), y=sym('y') ve z=sym('z'). Sembolik bir ifade yazalim.
>> S=x^2-y^2
S =
x^2-y^2
Bu ifadenin faktörü.
>> factor(S)
ans =
(x-y)*(x+y)

S’nin küpü ve açilimi.
>> S^3
ans =
(x^2-y^2)^3
>> expand(ans)
ans =
x^6-3*x^4*y^2+3*x^2*y^4-y^6

Bir fonksiyonu sadelestirmek icin ‘simplify’ fonksyionu kullanilir.
>> S=(x^3-4*x)/(x^2+2*x)
S =
(x^3-4*x)/(x^2+2*x)
>> simplify(S)
ans =
x-2

Sembolik ifadeler matris yada vektör normunda olabilir.
>> syms a b
>> A=[cos(a) -sin(a); sin(a) cos(a)]
A =
[ cos(a), -sin(a)]
[ sin(a), cos(a)]

>> B=[cos(b) -sin(b); sin(b) cos(b)]
B =
[ cos(b), -sin(b)]
[ sin(b), cos(b)]
>> C=A*B
C =
[ cos(a)*cos(b)-sin(a)*sin(b), -cos(a)*sin(b)-sin(a)*cos(b)]
[ sin(a)*cos(b)+cos(a)*sin(b), cos(a)*cos(b)-sin(a)*sin(b)]

>> simplify(C)
ans =
[ cos(a)*cos(b)-sin(a)*sin(b), -cos(a)*sin(b)-sin(a)*cos(b)]
[ sin(a)*cos(b)+cos(a)*sin(b), cos(a)*cos(b)-sin(a)*sin(b)]

simplify fonksiyonu görüldügü gibi herhangi bir degisiklik yapmadi. Bu durumda baska bir
seçebek olan ’simple’ fonksyionu kullanilir. Esitligin en kisa ifadesi.
>> D=simple(C)
D =
[ cos(a+b), -sin(a+b)]
[ sin(a+b), cos(a+b)]


Örnek: f(x,y)=(4x2−1)e−x2−y2 fonksiyonu için f(1,2) sonucunu bulalim.

>> syms x y
>> f=(4*x^2-1)*exp(-x^2-y^2)
f =
(4*x^2-1)*exp(-x^2-y^2)
>> f(1,2)
??? Index exceeds matrix dimensions.

f bir fonksiyon olmadigindan bir degisken oldugundan MATLAB f(1,2) bir satir ve 2 kolon
olarak giris yapacaktir. Ifadenin sonucunu bulmak için degisken degistirme yapilmalidir.
Bunun için ‘subs’ fonksiyonu kullanilir.
>> subs(f,{x,y},{1,2})
ans =
    0.0202

Sadece y’ye bagli bir ifade elde edilecekse,
>> subs(f,x,3)
ans =
35*exp(-9-y^2)


Fonksiyonlari tanimlamak için bir baska yol da ’inline’ komutunu kullanmaktir.

Örnek: g(x,y)=x2−3xy+2

>> g=inline('x^2-3*x*y+2')
g =
     Inline function:
     g(x,y) = x^2-3*x*y+2

olarak tanimlanabilir.

g(2,3) için fonksiyonu degerlendirmek için.
g(2,3)
ans =
   -12

inline fonksyonlarin dezavantaji sembolik olarak degistirilemez.
>> g^2
??? Error using ==> ^
Function '^' not defined for variables of class 'inline'.



Denklem Sistemlerinin Çözümü
Matlab’in bir diger gelismis özelligi her türlü dogrusal ve dogrusal olmayan denklem
takimlarinin çözüm kümesini bulmasidir. Bu amaç için ‘solve’ komutunu kullanir.

>> solve('sin(x)+x=5')
ans =
5.6175550052726989176213921571114

Eger esitlik verilmezse,

>> solve('a*x^2+b*x+c','x')
ans =
[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
Örnek: x2+y2=4 ve (x−1)2+(y−1)2=1 olarak verilen iki fonksiyonun kesisim degerlerini bulmak
için.
>> S=solve('x^2+y^2=4','(x-1)^2+(y-1)^2=1')
S =
    x: [2x1 sym]
    y: [2x1 sym]
>> [S.x S.y]
ans =
[ 5/4-1/4*7^(1/2), 5/4+1/4*7^(1/2)]
[ 5/4+1/4*7^(1/2), 5/4-1/4*7^(1/2)]

Kesisim degerleri ((5−√7)/4,(5+√7)/4) and ((5+√7)/4,(5−√7)/4).

Dogrusal Denklem Takimlarinin Çözümü
                             n. dereceden dogrusal denklem takimi
                                 a11 x1 + a12 x2 + ... + a1n xn = b1
                                   a 21 x1 + a 22 x2 + ... + a 2 n x n = b2
                                   .......... .......... .................... .....
                                   a n1 x1 + a n 2 x2 + ... + a nn xn = bn

biçiminde verilir. Bu denklem takiminin matris biçiminde gösterimi

        [ A] [x] = [B ]
seklinde tanimlanabilir. Burada;

                  a11 a12 .. a1n 
                                      
                    a 21 a 22 .. a 2 n 
                A=
                   ..    .. .. ..                          B = [b1 b2 .. bn ]
                                      
                   a n1 a n 2 .. a nn 

katsayilar matrislerini ve

                                     X = [x1 x 2 ... x 3 ]
çözümü istenen degiskenler matrisini (vektörünü) gösterir.

   Bu tür istenen denklem takimlarinin çözümü için, içinde yer alan özel fonksiyonlar yoktur.
Bu denklemlerin çözümünde matris islemlerinden yararlanilabilir. AX=B biçiminde verilen
denklem takiminin çözümünde AB biçiminde soldan (bölen bölme isaretinin solunda yer
almakta) matris bölme islemi ile yerine getirilir. XA=B biçiminde tanimlanan matris
denklemin çözümünde B/A seklinde sagdan matris bölme islemi kullanilir. Sagdan ve soldan
matris bölme isleminde sayisal Gauss eliminasyon teknigi kullanilir.

Denklem Takimlarinin Ters Matris Islemi Yolu ile Çözümü

     AX=B biçiminde verilen ve B’nin satir matrisi olarak tanimlandigi matris denkleminin her
iki tarafini A-1 ile çarparsak
                                        A-1 AX=A-1B
elde edilir. Burada A-1 A, I olarak tanimlanan birim matrise denktir.
Buna göre
             IX=A-1B
veya
             X=A-1B

elde edilir.
MATLAB ortaminda bu çözüm;

           X=inv(A)*B

komutu ile elde edilebilir. Diger taraftan B’nin sütun matrisi olarak tanimlandigi, XA=B
biçiminde ifade edilen denklem takiminin çözümü için, her iki taraf A-1 ile çarpilir ve gerekli
düzenlemeler yapilirsa
                                      X=BA-1
elde edilir.MATLAB ortaminda
                                      X=B * inv(A)
bildirimi ile gerekli çözüm elde edilmis olur.


Örnek : Asagida verilen denklem takiminin çözümünü elde ediniz.

                             x1 + 4 x2 − x3 + x4     =2 
                            2 x + 7 x + x − 2 x = 16 
                             1         2    3     4        
                             x1 + 4 x2 − x3 + 2 x4 = 1 
                                                           
                            3x1 − 10 x2 − 2 x3 + 5 x4 = −15
Çözüm : Çözüm ilk önce soldan ve sagdan matris bölme islemlerine göre ele alinacak ve daha
sonra da ters matris islemine göre çözülecektir. AX=B biçiminde matris denklemi verildiginde
çözüm soldan bölme islemine göre asagidaki bildirimlerle yerine getirilebilir.

     a=[ 1 4 –1         1; 2 7       1   -2; 1    4   -1    2; 3    -10    -2     5 ]
     b=[ 2 16 1         -15 ]
     >> x=ab;
Denklem takimlari XA=B biçiminde matris denklemi ile tanimlandiginda çözüm sagdan bölme
islemi ile asagidaki sekilde saglanir. Burada A ve B matrisleri bir önceki orijinal halinin
traspozesi olmaktadir.

     a=[ 1 2       1    3; 4     7   4       -10; -1       1        -1   -2; 3   -10   -2   5]
     b=[2 16       1    -15]
     x=b/a

Ters matris islemi ile çözümde; MATRIS denklemi AX=B biçiminde verildiginde, A ve B
matrisi

     a=[ 1     4 –1      1; 2 7          1    -2; 1    4       -1   2; 3   -10    -2   5 ];
     b=[ 2     16 1      -15 ]

biçiminde tanimlandiktan sonra

 x=inv(a)*b;

bildirimi ile çözüm elde edilir: Benzer sekilde Matris denklemi XA=B biçiminde verildiginde
A ve B matrisleri,

     a=[ 1 2 1          3; 4     7   4       -10; -1       1        -1   -2; 3   -10   -2   5]
     b=[2 16 1          -15]
     x=b*inv(a)

bildirimi ile çözüm elde edilir. Yukarida verilen bildirimler yolu ile x çözümü için

         x= 2.0000                   1.0000                3.0000                -1.0000

seklinde elde edilmis olur. Burada x 1= 2, x2=1, x3=3 x4=-1 ‘dir.



Dogrusal Olmayan Denklemlerin Çözümü

    Dogrusal olmayan denklemlerin dogrusal denklemlerde oldugu gibi tek bir standart biçimi
yoktur. Gerek MATLAB içinde gerekse Otimatization Toolbox içinde, gerek tek degiskenli
ve gerekse çok degiskenli denklemlerin çözümünde kullanilan çesitli çözüm fonksiyonlari
vardir. Dogrusal olmayan denklemlerin çözümü, dogrusal denklem çözümü kadar basit
olmayip bunlarin çözümü için ayrica bir fonksiyon dosyasi hazirlanmasi gerekir.
    Burada, MATLAB içinde yer alan fzero fonksiyon fonksiyonu ile Otimatization
Toolbox içinde yer alan fsolve fonksiyon fonksiyonu ayrintili bir biçimde ele alinacaktir.
Ayrica diger dogrusal olmayan fonksiyon fonksiyonlarinin kisaca tanimlari gözden
geçirilecektir.
    fzero: Fonksiyon fonksiyonu; tek degiskenli bir fonksiyonun sifirini hesaplar. Genel
kullanim biçimleri asagida oldugu gibidir.

   z=fzero(‘function’,X0);
   z=fzero(‘function’,X0,tol);
z=fzero(‘function’,X0,tol, trace);

    fun(x) biçimindeki bir fonksiyonun, X0 ile tanimlanan degere yakin olan tek bir sifirini
hesaplar. Burada, fonksiyonu sifir yapan, yani x eksenini kesen bir sifir degeri hesaplanir.
    Ikinci bildirimde yer alan tol isimli, seçimli argüman bagil hata toleransini belirler. Üçüncü
bildirimde yer alan seçimli trace argümani her bir hesap yineleme islemindeki bilgileri
görüntüler.
    Fonksiyon fonksiyonu olan fzero fonksiyonunu kullanmak için ayrica function ile baslayan
bir fonksiyon dosyasi hazirlanmasi gerekir.


Örnek: f(x)=x3-2x-5 fonksiyonunun bir sifirini bulunuz.

Çözüm: Önce bir fx.m adi ile fonksiyon dosyasi hazirlanir.

Function y=fx(x)
y=x^3-2*x-5

Burada dosya adi ‘fx’ ile fonksiyon adi ‘fx’ ayni olmasi gerektigine dikkat edilmelidir. Daha
sonra MATLAB ortaminda

z=fzero(‘fx’,2)
bildirimi ile
z=2.0946

sonucu elde edilir. Burada X0=2 olarak tahmini bir baslangiç deger verilmistir.
   f (x) fonksiyonu gerçekten bir polinom olduguna göre asagida verilen roots komutu ile

      p=roots([1     0     -2   -5])

Ayni fonksiyonu sifir yapan gerçek deger ile birlikte karmasik eslenik kökleri de;
     p=
      2.0946
     -1.0473 + 1.1359i
     -1.0473 - 1.1359i

olarak elde edilmis olur



Örnek : e2x –x –2 biçiminde verilen dogrusal olmayan fonksiyonun bir adet sifirini bulunuz.

Çözüm:Burada f(x) fonksiyonu;

    f(x)=e2x –x –2 biçimine sokulabildigine göre fonksiyon dosyasi;
    function y=fex(x)
    y=exp(2*x)-x-2;

biçiminde hazirlanir. Daha sonra MATLAB ortaminda;
z=fzero(‘fex’,1)
   z0.4475

   elde edilir.

    Yukaridaki örneklerden de görüldügü gibi fzero fonksiyonu herhangi bir fonksiyonun
tahmini bir sifirinin hesaplanmasinda ve/veya dogrusal olmayan denklemlerin çözümünde daha
kullanislidir. Dogrusal denklemlerin ayni anda tüm köklerini çözmek gerektiginde roots
fonksiyonunu kullanmak daha pratik olacaktir.

Dogrusal Olmayan Denklem Takimlarinin Çözümü

    Dogrusal olmayan denklem takimlarinin çözümünde, Optimization Toolbox içinde
yer alan fsolve fonksiyon fonksiyonu kullanilir. fsolve fonksiyonu dogrusal olmayan denklem
takiminin çözümünü saglar.
    fsolve fonksiyonunun belli basli kullanim biçimleri asagida oldugu gibidir.

x=fsolve(‘fun’,x0)
x=fsolve(‘fun’,x0,options)
x=fsolve(‘fun’,x0,options,’grad’)
x=fsolve(‘fun’,x0,options,’grad’,p1,p2, ...)
[x,options]=fsolve(‘fun’,x0, ...)

   fsolve dogrusal olmayan denklemlerin köklerini hesaplar. Çikis argümani olan X degerleri;
F(x)=0 seklinde hesaplanir. Burada F(x) ve X skalar, vektör veya matrislerden ibaret olabilir.
   x=fsolve(‘dun’,x0) bildirimi, fun.m isimli M-dosyasinda tanimlanan denklemleri, X0
tahmini baslangiç degerlerinden baslayarak çözer ve sonucu X degiskenine atar. Burada X0
boyutu x degisken sayisi kadar olmalidir.

    Ikinci bildirimde yer alan seçimli argüman options seçimli parametreler vektörünü
tanimlar. options için pek çok seçenek mevcuttur. Bunlar ile ilgili bilgiler help folve yolu ile
saglanabilir.
    Üçüncü bildirimde yer alan grad, X noktasinda fonksiyonlarin kismi türevlerini
(Jacobianlarini) df/dx, df=grad(x) elde etmek için kullanilir. df’in i’inci sütunu f’deki
fonksiyonun i’inci kismi türevine karsilik gelir.


Örnek: Bir metal kesme islemine ait denklem takimi

C=1.2+11.62323v-1f-1 + 5.7449x10-8v3f0.16d1.14
0.0499v0.95 f0.78 d0.75=20

biçiminde tanimlanmaktadir. Burada c 1.27 i,le 1.28 arasinda bir degerdir. Tamamen nonlinear
olan bu denklemlerin çözümü için gerekli fonksiyon dosyasi

function f=nlnr(x)
&x(1)=v, x(2)=f, x(3)=d, degiskenlerine .karsilik gelmektedir.
F(1)=-0.08+11.6323/(x(1)*x(2))+5.744e-8 . . .
(x(1).^3)* (x(2).^0.16) * (x(3).^1.14);
f(2)=12.7 –0.015*(x(1).^(-1.52))*(x(2).^1.004) . . .
*( x(3). ^0.25);
f(3)=20-0.0449*(x(1).^0.95)*(x(2).^0.78)
*(x(3).^0.75);

hazirlanabilir. Daha sonra MATLAB ortaminda fsolve ile asagidaki bildirimler yolu ile
çözülür. Burada en önemli husus baslangiç degerinin seçimidir. Uygun bir çözüm elde edilene
kadar baslangiç degerlerinin seçimi degistirilebilir.

                x=fsolve(‘nlnr’,[0.5 112.5 20]);
Bildirimi ile
                X= 0.6686 217.4627 18.2436

Sonucu elde edilir. Bu sonuç f fonksiyonlari ile test edildiginde

                f= 1.0e-008 *(-0.0573 -0.5991 0.5776)

sifira çok yakin degerler elde edildigi görülür. Buna karsilik X0 baslangiç degerleri asagida
oldugu gibi seçilecek olursa

>>x=fsolve(‘nlnr’,[1        2   100]);

Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND= 6.79344e-017
Maximum number of iterations has been exceeded

Biçiminde bir uyari alinir. Buda çözümün yeterli tamlikta gerçeklenmedigini gösterir.
Gerçekten de f fonksiyon degerleri asagidaki biçimde yazilarak test edildiginde

         >> F(1)=-0.08+11.6323/(x(1)*x(2))+5.744e-8 . . .
         (x(1).^3)* (x(2).^0.16) * (x(3).^1.14);

         >> f(2)=12.7 –0.015*(x(1).^(-1.52))*(x(2).^1.004) . . .
         *( x(3). ^0.25);

         >> f(3)=20-0.0449*(x(1).^0.95)*(x(2).^0.78)
         *(x(3).^0.75);

         f= 0.1715 0.2316 0.5576

sifirdan oldukça farkli degerler elde edildigi görülür. Bu durumda baslangiç degerlerini
degistirmek sureti ile uygun çözümler arastirilmalidir.

    Optimization     Toolbox içinde, dogrusal olmayan denklemlerin, degisik sekilde
çözümünde kullanilan diger pek çok fonksiyon vardir. Bunlarin tanimlari asagida kullanilan
diger pek çok fonksiyon vardir. Bunlarin tanimlari asagida oldugu gibidir. Genel kullanim
biçimleri MATLAB ortaminda help komutu ile elde edilebilir.
attgoal                        : Çoklu-amaçli hedefe ulasma problemi çözümü
constr                         : Kisitli minimizasyon çözümü
fmin                           : Skalar kisitsiz minimizasyon çözümü.
fminu, fmins                   : Kisitsiz minimizasyon çözümü.
Fsolve                         : Dogrusal olmayan denklem çözümü.
leastssq                       : Dogrusal olmayan en küçük kareler çözümü.
minimax                        : Minimum-maksimum çözümü.
seminf                         : Yari mutlak minimizasyon
lp                             : Dogrusal programlama
nnls                           : Negatif olmayan en küçük kareler çözümü.
qp                             : Egrisel programlama.



Integraller
Simgesel integral alma fonksiyonu ‘int’ genel kullanim sekli

int(s)             : findsym ile belirlenen simgesel degiskene göre S’nin belirsiz integralini alir
int(s,v)           : S’nin v’ye göre integralini alir.
int(S,a,b)         : S’nin varsayilan degiskene göre a’dan b’ye kadar belirli integralini alir.
int(S,v,a,b)       : S’nin tanimli a’dan b’ye kadar belirli integralini alir.

Örnek:
∫ (−2 x − 4 x + 20)dx integrallinin hesaplanmasi
       5


>>int(-2*x^5-4*x+20)
ans =
 -1/3*x^6-2*x^2+20*x
 >> pretty(int(-2*x^5-4*x+20))

                                                   6     2
                                            - 1/3 x - 2 x + 20 x
Örnek:

∫ (at ln(t + 1) + ut )dt
 1
                           integralinin hesaplanmasi
 0
>> syms x a u t;
>> int_s=a*t*log(t+1)+u*t;
>> r=int(int_s,t)
r =
 1/2*a*log(t+1)*t^2-1/2*a*log(t+1)-1/4*a*t^2+1/2*a*t+3/4*a+1/2*u*t^2
>> ss=int(int_s,t,0,1)
ss =
1/2*u+1/4*a

Eger integral sinirlari –8 , +8 ise -inf ve +inf olarak sinirlar verilir.
Türevler
Türev ifadesi ’diff’ komutu ile verilir. Örnegin f f(x)=sin(ex) ifadesinin x’e bagli türevi
>> syms x
>> f=sin(exp(x))
f =
sin(exp(x))
>> diff(f)
ans =
cos(exp(x))*exp(x)

nth türev diff(f,n) olarak verilir.
>> diff(f,2)
ans =
-sin(exp(x))*exp(x)^2+cos(exp(x))*exp(x)

Kismi türevlerin bulunmasina örnek
f(x,y)=x3y4+ysinx.
>> syms x y
>> f=x^3*y^4+y*sin(x)
f =
x^3*y^4+y*sin(x)

Ilk olarak ∂f/∂x hesaplanir.
>> diff(f,x)
ans =
3*x^2*y^4+y*cos(x)

Daha sonra ∂f/∂y hesaplanir.
>> diff(f,y)
ans =
4*x^3*y^3+sin(x)

∂3 f/∂x3 bulmak istersek
>> diff(f,x,3)
ans =
6*y^4-y*cos(x)


Bir fomksiyonun bilinmeyen parametrelerine göre türevinin alinmasi için Jacobian matrisin
olusturulmasi gerekir. Bunun için ‘jacobian’ komutu kullanilir.

Örnek: f(x,y)=(sin(xy),x2+y2,3x−2y).

>> f=[sin(x*y); x^2+y^2; 3*x-2*y]
f =
[ sin(y*x)]
[ x^2+y^2]
[ 3*x-2*y]
>> Jf=jacobian(f)
Jf =
[ cos(y*x)*y, cos(y*x)*x]
[        2*x,        2*y]
[           3,        -2]
Dogrusal bir dönüsüm durumunda Jacobian oldukça basittir.
>> A=[11 -3 14 7;5 7 9 2;8 12 -6 3]
A =
    11    -3    14     7
      5    7     9     2
      8   12    -6     3
>> syms x1 x2 x3 x4
>> x=[x1;x2;x3;x4]
x =
[ x1]
[ x2]
[ x3]
[ x4]
>> T=A*x
T =
[ 11*x1-3*x2+14*x3+7*x4]
[   5*x1+7*x2+9*x3+2*x4]
[ 8*x1+12*x2-6*x3+3*x4]

T ‘nin Jacobian ‘i
>> JT=jacobian(T)
JT =
[ 11, -3, 14, 7]
[ 5, 7, 9, 2]
[ 8, 12, -6, 3]

The Jacobian of T is A matrisinivermektedir.

Adi Diferansiyel Denklemlerin Çözümü ‘dsolve’ komutu kullanilmaktadir.

Örnek:
∂y/∂t=-ay diferansiyel denkleminin çözümü

>> y=dsolve('Dy=-a*y')
y=
C1*exp(-a*t)
Uygulamada varsayilan degisken t’dir. Ancak problem y=-ay seklinde verilseydi bu durumda
degiskenin ne oldugu belirtilmemistir. y(0)=1 baslangiç kosulu verildigini düsünelim.
>> y=dsolve('Dy=-a*y','y(0)=1')
 y =
 exp(-a*t)
C1 katsayisinin kalktigi görülmektedir.
Örnek:
d2y      dy
    2
      + 3 + y = 0 diferansiyel denklemin çözümü
 dt      dt
dsolve('D2y+3*Dy+y=0')
ans =
C1*exp(1/2*(-3+5^(1/2))*t)+C2*exp(-1/2*(3+5^(1/2))*t)
pretty(ans)

                                    1/2                          1/2
              C1 exp(1/2 (-3 + 5       ) t) + C2 exp(- 1/2 (3 + 5    ) t)
‘Pretty’ komutu ile düzenli basim sekli gelir.

Örnek: y(0)=0, y?(0)=1 kosullari altinda y??+4y?+12y=8sin4t ikinci derecden diferansiyel
denklemin çözümü
r=dsolve('D2y+4*Dy+12*y=8*sin(4*t)','y(0)=0','Dy(0)=1','t')

r=

-4/17*sin(2*2^(1/2)*t)*sin(2*(2^(1/2)-2)*t)-3/17*sin(2*2^(1/2)*t)*cos(2*(2^(1/2)-
2)*t)*2^(1/2)-7/34*sin(2*2^(1/2)*t)*sin(2*(2^(1/2)-
2)*t)*2^(1/2)+3/17*cos(2*2^(1/2)*t)*sin(2*(2+2^(1/2))*t)*2^(1/2)+7/34*cos(2*2^(1/2)*t)*co
s(2*(2+2^(1/2))*t)*2^(1/2)+3/17*cos(2*2^(1/2)*t)*sin(2*(2^(1/2)-2)*t)*2^(1/2)-
7/34*cos(2*2^(1/2)*t)*cos(2*(2^(1/2)-
2)*t)*2^(1/2)+1/17*sin(2*2^(1/2)*t)*cos(2*(2+2^(1/2))*t)+7/34*sin(2*2^(1/2)*t)*sin(2*(2+2
^(1/2))*t)*2^(1/2)-4/17*cos(2*2^(1/2)*t)*cos(2*(2+2^(1/2))*t)-
4/17*cos(2*2^(1/2)*t)*cos(2*(2^(1/2)-2)*t)-
3/17*sin(2*2^(1/2)*t)*cos(2*(2+2^(1/2))*t)*2^(1/2)-
1/17*cos(2*2^(1/2)*t)*sin(2*(2+2^(1/2))*t)+1/17*cos(2*2^(1/2)*t)*sin(2*(2^(1/2)-2)*t)-
4/17*sin(2*2^(1/2)*t)*sin(2*(2+2^(1/2))*t)-1/17*sin(2*2^(1/2)*t)*cos(2*(2^(1/2)-
2)*t)+8/17*exp(-2*t)*cos(2*2^(1/2)*t)+41/68*exp(-2*t)*sin(2*2^(1/2)*t)*2^(1/2)

>> pretty(simple(r))

               1/2
 8/17 exp(-2 t) cos(2 2 t) - 2/17 sin(4 t) - 8/17 cos(4 t)

      41             1/2 1/2
     + -- exp(-2 t) sin(2 2 t) 2
      68


M-Dosyalari
M-dosyalari olarak ele aldigimiz dosyalar aslinda matlab ortaminda kullanmis oldugumuz
komutlardir ve veri analizini saglayan fonksiyonlardir.Bu fonksiyonlar her amaca yeterli olsa
da sonuçlara daha hizli ulasabilmek için kendimize özel fonksiyonlar yani yeni M-dosyalari
olusturabiliriz.Çesitli yollarla bu M-dosyalarini hazirlayabiliriz.Istersek bir komutlar dizisi
sayesinde sonuca ulasiriz istersek de “function” kelimesiyle baslayan bir fonksiyonel dosya
olustururuz.Önemli olan bize istedigimiz sonucu kisa zamanda verebilmesi.Simdi de örnek
olarak bir M-dosyasi olusturalim:


Örnegin kütlesinin ve hizinin degerini girdigimde bana o cismin kinetik enerjisini veren bir M-
dosyasi olusturalim.Öncelikle komutlari yazacagim sayfaya girmem gerek.M-dosyasi
olusturmak için öncelikle “file “ menüsünden “new” dedigimizde M-file diyecektir.onu seçerek
alanimizi olusturmus oluruz.Baska bir yol ise Command Window’da “edit” yazarak
olusturmaktir.

Asagidaki gibi M-dosyamizi olusturuyoruz:

% kütlesi ve hizi verilen bir cismin
% kinetik enerjisinin hesabi
m=input('Lütfen kütle degerini giriniz(kg)= ')
v=input('Lütfen cismin hiz degerini giriniz(m/s)= ')
Ek=m*v^2/2 (verilen degerlere göre kinetik enerji hesaplaniyor)

Bu komutlari yazdiktan sonra bunu sakliyoruz.Örnegin sayfadaki disket resmine tikladik ve
dosya ada olarak kinetik yazdik ve dosyayi saklamis olduk.Simdi de islemlerimizin
dogrulugunu test edelim.Command Window’a geçerek kinetik yazdigimizda veya komutlari
yazdigimiz sayfadan “debug ” menüsünden “Run” seçtigimizde bakalim neler oluyor:

>> kinetikLütfen kütle degerini giriniz(kg)=10m = 10
Lütfen cismin hiz degerini giriniz(m/s)=50
v = 50
Ek =     12500

%**************************************
% Hareketli egri için bir örnek
r(t)=(2tcost/(t+1),2tsint/(t+1))

% kivrim.m
%
hold on

for T=0:.1:4*pi
   t=[T T+.1];
   plot(2*t.*cos(t)./(t+1),2*t.*sin(t)./(t+1))
   axis equal
   axis([-2 2 -2 2])
   axis off
   pause(.01)
end
%*************************************************
% rastgele sayi üretimi ve sinus üzerine bindirme
f1=50 % frekans
f2=100 % frekans
dt=0.001;
max_sure=50; % saniye
byt=40; % random sayi buyultme faktoru
t = 0:0.001:.255;
x = 10*sin(2*pi*f1*t)
%+cos(2*pi*f2*t);
yy = x + byt*randn(size(t));
subplot(2,1,1)
plot((1/dt)*t(1:max_sure),yy(1:max_sure))
xlabel('zaman (milisaniye)')
subplot(2,1,2)
Y = fft(yy,256);
Pyy = Y.* conj(Y) / 256;
f = 1000*(0:128)/256;
plot(f,Pyy(1:129))
xlabel('frekans (Hz)')
%************************************************

%************************************************
% K,re seklinde bir cismin gravite anomalisi ve rastgele gürültü eklenmesi
clear all;
G=6.6579E-8;
s=3000000;
d=300;
 % s=input('kütle=');
 % d=input('derinlik=');
byt=0.008; % rastgele sayi faktoru
% kure seklindeki cismin gravite anomalisinin ifadesi
% anomaliye rastgele gurultu eklenir.
for i=(1:40)
        tm=s*1E6
        td=d*1E2
        x(i)=(i-21)*1E4
        delg(i)=((G*tm*td)*(1/((x(i)^2+td^2)^1.5)))*1E3;
        gur=byt*randn(size(i));
        gdelg(i)=delg(i)+gur;
end;
plot(x,gdelg)
xlabel('uzaklik km')
ylabel('mgal')
text(5000,0.2,'leftarrowanomali',...
     'FontSize',16)
%****************************************************

KAYNAKLAR

   •   MATLAB ILE MÜHENDISLIK SISTEMLERININ ANALIZI VE ÇÖZÜMÜ
       Prof.Dr. Ibrahim YÜKSEL U.Ü.Makine Mühendisligi Bölümü 1996

   •   Matlab ve Programlama
       Dr. Aslan Inan, Papatya

   •   DIFERANSIYEL DENKLEMLER VE UYGULAMALARI
        Prof. Dr. Mehmet AYDIN
        Gönül GÜNDÜZ
        Beno KURYEL
        Yard. Doç. Dr. Galip OTURANÇ
        Izmir 1999


   •   HTTP://WWW.MATHWORKS.COM
   •   HTTP://EDUCATION.MATHWORKS.COM
   •   HTTP://EFE.EGE.EDU.TR/~MATLAB/MATLAB1.DOC

Mais conteúdo relacionado

Mais procurados

Kinematics of cam mechanisms
Kinematics of cam mechanismsKinematics of cam mechanisms
Kinematics of cam mechanismsSenthil Kumar
 
Classification of Bearing - Machine Design
Classification of Bearing - Machine DesignClassification of Bearing - Machine Design
Classification of Bearing - Machine Designsajan gohel
 
Flow of incompressible fluids through pipes
Flow of incompressible fluids through pipes Flow of incompressible fluids through pipes
Flow of incompressible fluids through pipes MAULIKM1
 
Machine tools basic mechanical engineering sem-II
Machine tools basic mechanical engineering sem-IIMachine tools basic mechanical engineering sem-II
Machine tools basic mechanical engineering sem-II9960204020
 
008 acceleration analysis
008 acceleration analysis008 acceleration analysis
008 acceleration analysisphysics101
 
Design and fabrication of bending machine
Design and fabrication of bending machineDesign and fabrication of bending machine
Design and fabrication of bending machineparamesr2020
 
Venturimeter : Working,Construction,Applications ,Numerical
Venturimeter : Working,Construction,Applications ,NumericalVenturimeter : Working,Construction,Applications ,Numerical
Venturimeter : Working,Construction,Applications ,NumericalSINY MARY LONA
 
Inversion of Mechanisms: Theory of Machines With Videos
Inversion of Mechanisms: Theory of Machines With VideosInversion of Mechanisms: Theory of Machines With Videos
Inversion of Mechanisms: Theory of Machines With VideosNaseel Ibnu Azeez
 
Engranajes rectos
Engranajes rectosEngranajes rectos
Engranajes rectosRONNYB21
 
machine and mechanisms
 machine and mechanisms machine and mechanisms
machine and mechanismsMonu1992
 
Stress concentration
Stress concentrationStress concentration
Stress concentrationOnkarpowar3
 
GAS DYNAMICS AND JET PROPULSION
GAS DYNAMICS AND JET PROPULSIONGAS DYNAMICS AND JET PROPULSION
GAS DYNAMICS AND JET PROPULSIONDheenathayalan P
 
4 pump 03 reciprocating pump
4 pump 03 reciprocating pump4 pump 03 reciprocating pump
4 pump 03 reciprocating pumpRefee Lubong
 

Mais procurados (20)

Kinematics of cam mechanisms
Kinematics of cam mechanismsKinematics of cam mechanisms
Kinematics of cam mechanisms
 
Classification of Bearing - Machine Design
Classification of Bearing - Machine DesignClassification of Bearing - Machine Design
Classification of Bearing - Machine Design
 
DME - Unit 5.pptx
DME - Unit 5.pptxDME - Unit 5.pptx
DME - Unit 5.pptx
 
Flow of incompressible fluids through pipes
Flow of incompressible fluids through pipes Flow of incompressible fluids through pipes
Flow of incompressible fluids through pipes
 
Cams and followers
Cams and followersCams and followers
Cams and followers
 
Machine tools basic mechanical engineering sem-II
Machine tools basic mechanical engineering sem-IIMachine tools basic mechanical engineering sem-II
Machine tools basic mechanical engineering sem-II
 
008 acceleration analysis
008 acceleration analysis008 acceleration analysis
008 acceleration analysis
 
INVERSION MECHANISM
INVERSION MECHANISMINVERSION MECHANISM
INVERSION MECHANISM
 
Design and fabrication of bending machine
Design and fabrication of bending machineDesign and fabrication of bending machine
Design and fabrication of bending machine
 
CAD/CAE
CAD/CAECAD/CAE
CAD/CAE
 
Venturimeter : Working,Construction,Applications ,Numerical
Venturimeter : Working,Construction,Applications ,NumericalVenturimeter : Working,Construction,Applications ,Numerical
Venturimeter : Working,Construction,Applications ,Numerical
 
Inversion of Mechanisms: Theory of Machines With Videos
Inversion of Mechanisms: Theory of Machines With VideosInversion of Mechanisms: Theory of Machines With Videos
Inversion of Mechanisms: Theory of Machines With Videos
 
Engranajes rectos
Engranajes rectosEngranajes rectos
Engranajes rectos
 
Alignment calculation formula of rotary machine in MS Excel
Alignment calculation formula of rotary machine in MS ExcelAlignment calculation formula of rotary machine in MS Excel
Alignment calculation formula of rotary machine in MS Excel
 
machine and mechanisms
 machine and mechanisms machine and mechanisms
machine and mechanisms
 
Stress concentration
Stress concentrationStress concentration
Stress concentration
 
GAS DYNAMICS AND JET PROPULSION
GAS DYNAMICS AND JET PROPULSIONGAS DYNAMICS AND JET PROPULSION
GAS DYNAMICS AND JET PROPULSION
 
4 pump 03 reciprocating pump
4 pump 03 reciprocating pump4 pump 03 reciprocating pump
4 pump 03 reciprocating pump
 
Keys
KeysKeys
Keys
 
Bearings
BearingsBearings
Bearings
 

Destaque

Ridha Ajroun :Systèmes de transport intelligents - IoT Tunisia 2016
Ridha Ajroun  :Systèmes de transport intelligents - IoT Tunisia 2016Ridha Ajroun  :Systèmes de transport intelligents - IoT Tunisia 2016
Ridha Ajroun :Systèmes de transport intelligents - IoT Tunisia 2016IoT Tunisia
 
Tony Velin : plateforme coopérative pour la recherche et l’innovation - IoT ...
Tony Velin :  plateforme coopérative pour la recherche et l’innovation - IoT ...Tony Velin :  plateforme coopérative pour la recherche et l’innovation - IoT ...
Tony Velin : plateforme coopérative pour la recherche et l’innovation - IoT ...IoT Tunisia
 
Khaled Ouali : fabrication et prototypage d’objets communicants- IoT Tunisia...
Khaled Ouali :  fabrication et prototypage d’objets communicants- IoT Tunisia...Khaled Ouali :  fabrication et prototypage d’objets communicants- IoT Tunisia...
Khaled Ouali : fabrication et prototypage d’objets communicants- IoT Tunisia...IoT Tunisia
 
Olivier Jannot : présentation iot ardia - IoT Tunisia 2016
Olivier Jannot :  présentation iot ardia - IoT Tunisia 2016Olivier Jannot :  présentation iot ardia - IoT Tunisia 2016
Olivier Jannot : présentation iot ardia - IoT Tunisia 2016IoT Tunisia
 
Mohamed Hamdi: smart energy monitoring IoT -oriented vision - IoT Tunisia 2016
Mohamed Hamdi:  smart energy monitoring IoT -oriented vision - IoT Tunisia 2016Mohamed Hamdi:  smart energy monitoring IoT -oriented vision - IoT Tunisia 2016
Mohamed Hamdi: smart energy monitoring IoT -oriented vision - IoT Tunisia 2016IoT Tunisia
 
Roberto Minerva: iot challenges - IoT Tunisia 2016
Roberto Minerva:  iot challenges  - IoT Tunisia 2016Roberto Minerva:  iot challenges  - IoT Tunisia 2016
Roberto Minerva: iot challenges - IoT Tunisia 2016IoT Tunisia
 
Bilel Jamoussi - Driving Internet of Ihings (IoT) standardization - IoT Tunis...
Bilel Jamoussi - Driving Internet of Ihings (IoT) standardization - IoT Tunis...Bilel Jamoussi - Driving Internet of Ihings (IoT) standardization - IoT Tunis...
Bilel Jamoussi - Driving Internet of Ihings (IoT) standardization - IoT Tunis...IoT Tunisia
 
Imed Ammar: réseaux bas débit iot - IoT Tunisia 2016
Imed Ammar:  réseaux bas débit iot  - IoT Tunisia 2016Imed Ammar:  réseaux bas débit iot  - IoT Tunisia 2016
Imed Ammar: réseaux bas débit iot - IoT Tunisia 2016IoT Tunisia
 
Laurent Toutain internet the future of lpwa- IoT Tunisia 2016
Laurent Toutain   internet the future of lpwa- IoT Tunisia 2016Laurent Toutain   internet the future of lpwa- IoT Tunisia 2016
Laurent Toutain internet the future of lpwa- IoT Tunisia 2016IoT Tunisia
 
Haythem Tebourbi: Smart Parking - IoT Tunisia 2016
Haythem Tebourbi: Smart Parking - IoT Tunisia 2016Haythem Tebourbi: Smart Parking - IoT Tunisia 2016
Haythem Tebourbi: Smart Parking - IoT Tunisia 2016IoT Tunisia
 
Farouk Kamoun smart cities, innovative applications - IoT Tunisia 2016
Farouk Kamoun   smart cities, innovative applications  - IoT Tunisia 2016Farouk Kamoun   smart cities, innovative applications  - IoT Tunisia 2016
Farouk Kamoun smart cities, innovative applications - IoT Tunisia 2016IoT Tunisia
 

Destaque (15)

Matlab
MatlabMatlab
Matlab
 
Matlab.pdf
Matlab.pdfMatlab.pdf
Matlab.pdf
 
Matlab
MatlabMatlab
Matlab
 
Matlab grafik
Matlab grafikMatlab grafik
Matlab grafik
 
Ridha Ajroun :Systèmes de transport intelligents - IoT Tunisia 2016
Ridha Ajroun  :Systèmes de transport intelligents - IoT Tunisia 2016Ridha Ajroun  :Systèmes de transport intelligents - IoT Tunisia 2016
Ridha Ajroun :Systèmes de transport intelligents - IoT Tunisia 2016
 
Tony Velin : plateforme coopérative pour la recherche et l’innovation - IoT ...
Tony Velin :  plateforme coopérative pour la recherche et l’innovation - IoT ...Tony Velin :  plateforme coopérative pour la recherche et l’innovation - IoT ...
Tony Velin : plateforme coopérative pour la recherche et l’innovation - IoT ...
 
Khaled Ouali : fabrication et prototypage d’objets communicants- IoT Tunisia...
Khaled Ouali :  fabrication et prototypage d’objets communicants- IoT Tunisia...Khaled Ouali :  fabrication et prototypage d’objets communicants- IoT Tunisia...
Khaled Ouali : fabrication et prototypage d’objets communicants- IoT Tunisia...
 
Olivier Jannot : présentation iot ardia - IoT Tunisia 2016
Olivier Jannot :  présentation iot ardia - IoT Tunisia 2016Olivier Jannot :  présentation iot ardia - IoT Tunisia 2016
Olivier Jannot : présentation iot ardia - IoT Tunisia 2016
 
Mohamed Hamdi: smart energy monitoring IoT -oriented vision - IoT Tunisia 2016
Mohamed Hamdi:  smart energy monitoring IoT -oriented vision - IoT Tunisia 2016Mohamed Hamdi:  smart energy monitoring IoT -oriented vision - IoT Tunisia 2016
Mohamed Hamdi: smart energy monitoring IoT -oriented vision - IoT Tunisia 2016
 
Roberto Minerva: iot challenges - IoT Tunisia 2016
Roberto Minerva:  iot challenges  - IoT Tunisia 2016Roberto Minerva:  iot challenges  - IoT Tunisia 2016
Roberto Minerva: iot challenges - IoT Tunisia 2016
 
Bilel Jamoussi - Driving Internet of Ihings (IoT) standardization - IoT Tunis...
Bilel Jamoussi - Driving Internet of Ihings (IoT) standardization - IoT Tunis...Bilel Jamoussi - Driving Internet of Ihings (IoT) standardization - IoT Tunis...
Bilel Jamoussi - Driving Internet of Ihings (IoT) standardization - IoT Tunis...
 
Imed Ammar: réseaux bas débit iot - IoT Tunisia 2016
Imed Ammar:  réseaux bas débit iot  - IoT Tunisia 2016Imed Ammar:  réseaux bas débit iot  - IoT Tunisia 2016
Imed Ammar: réseaux bas débit iot - IoT Tunisia 2016
 
Laurent Toutain internet the future of lpwa- IoT Tunisia 2016
Laurent Toutain   internet the future of lpwa- IoT Tunisia 2016Laurent Toutain   internet the future of lpwa- IoT Tunisia 2016
Laurent Toutain internet the future of lpwa- IoT Tunisia 2016
 
Haythem Tebourbi: Smart Parking - IoT Tunisia 2016
Haythem Tebourbi: Smart Parking - IoT Tunisia 2016Haythem Tebourbi: Smart Parking - IoT Tunisia 2016
Haythem Tebourbi: Smart Parking - IoT Tunisia 2016
 
Farouk Kamoun smart cities, innovative applications - IoT Tunisia 2016
Farouk Kamoun   smart cities, innovative applications  - IoT Tunisia 2016Farouk Kamoun   smart cities, innovative applications  - IoT Tunisia 2016
Farouk Kamoun smart cities, innovative applications - IoT Tunisia 2016
 

Semelhante a Matlab i

Semelhante a Matlab i (20)

Basic Info for Matlab
 Basic Info for Matlab Basic Info for Matlab
Basic Info for Matlab
 
çArpanlara AyıRma
çArpanlara AyıRmaçArpanlara AyıRma
çArpanlara AyıRma
 
Li̇neer cebi̇r 07
Li̇neer cebi̇r 07Li̇neer cebi̇r 07
Li̇neer cebi̇r 07
 
Li̇neer cebi̇r 03
Li̇neer cebi̇r 03Li̇neer cebi̇r 03
Li̇neer cebi̇r 03
 
7. Sınıf Matematik Ünite 2 Tam Sayıların Kuvveti
7. Sınıf Matematik Ünite 2 Tam Sayıların Kuvveti7. Sınıf Matematik Ünite 2 Tam Sayıların Kuvveti
7. Sınıf Matematik Ünite 2 Tam Sayıların Kuvveti
 
Algebra Fx2 Kullanma Klavuzu
Algebra Fx2 Kullanma KlavuzuAlgebra Fx2 Kullanma Klavuzu
Algebra Fx2 Kullanma Klavuzu
 
çArpanlara ayirma
çArpanlara ayirmaçArpanlara ayirma
çArpanlara ayirma
 
Matematik 1
Matematik 1 Matematik 1
Matematik 1
 
ÖZDEŞLİKLER
ÖZDEŞLİKLERÖZDEŞLİKLER
ÖZDEŞLİKLER
 
Li̇neer cebi̇r 05
Li̇neer cebi̇r 05Li̇neer cebi̇r 05
Li̇neer cebi̇r 05
 
8. Sınıf Üslü Sayılar
8. Sınıf Üslü Sayılar8. Sınıf Üslü Sayılar
8. Sınıf Üslü Sayılar
 
Birinciderece
BirincidereceBirinciderece
Birinciderece
 
Li̇neer cebi̇r 06
Li̇neer cebi̇r 06Li̇neer cebi̇r 06
Li̇neer cebi̇r 06
 
matlab basic introduction with plot commands
matlab basic introduction with plot commandsmatlab basic introduction with plot commands
matlab basic introduction with plot commands
 
SAYILAR
SAYILARSAYILAR
SAYILAR
 
Li̇neer cebi̇r 02
Li̇neer cebi̇r 02Li̇neer cebi̇r 02
Li̇neer cebi̇r 02
 
LİSE - ÇARPANLARA AYIRMA 2
LİSE - ÇARPANLARA AYIRMA 2LİSE - ÇARPANLARA AYIRMA 2
LİSE - ÇARPANLARA AYIRMA 2
 
RASYONEL SAYILAR
RASYONEL SAYILARRASYONEL SAYILAR
RASYONEL SAYILAR
 
Matlab Seminer2005
Matlab Seminer2005Matlab Seminer2005
Matlab Seminer2005
 
İşlem ve modüler ari̇tmeti̇k
İşlem ve modüler ari̇tmeti̇kİşlem ve modüler ari̇tmeti̇k
İşlem ve modüler ari̇tmeti̇k
 

Matlab i

  • 1. MATLAB Dr. Tolga BEKLER Canakkale Onsekiz Mart Universitesi Jeofizik Mühendisligi Bölümü 2006 BÖLÜM -I - Içindekiler Giris Baslarken Temel Matematiksel Islemler Degiskenler Karmasik Sayilar Temel Istatistiksel Islemler Polinomlar Yuvarlatma Islemleri Matriks ve Vektörler Nokta Çarpim/Bölme Temel Matris Islemleri Ters Islemler Özvektörler ve Özdegerler Hazir Matris Fonksyionlari Grafik Çizimler Yüzey Çizimleri Vektör Alanlari Sembolik Degiskenler Denkleme Sistemlerinin Çözümü Dogrusal Olmayan Denklem Takimlarinin Çözümü Integraller Türevler Örnekler Örnekler
  • 2. Giris MATLAB, MATrix LABoratory szöcüklerinden gelir ve temelde sayisal ve analitik olarak matematiksel fonksyionlarin ifadelerinin kullanildigi basta mühendislik alaninda olmak üzere birçok sayisal analizi kullanan bilimlerde son yillarda oldukça sik kullanilan bir hazir yazilim paketidir. Özellikle yüksek performans gerektiren algoritma hazirlama ve gelistirme, sayisal analiz, simülasyon, mühendislik problemlerinin sayisal ve grafik çözüm tekniklerinde son derece etkindir. Baslarken Matlab yazilim paketinde kullanilacak olan her hazir fonksyion yaninda kullanicinin da kendi yazilimini olusturma imkani saglar. Matlab’in gerek kisisel bilgisayarlarda (PC) gerekse diger isletim sistemlerinde (UNIX, LINUX) gibi bazi ufak farkliliklar disinda kullanimi, ya dogrudan kendi çalisma ve komut ekreaninda ya da ‘m’ uzantili program dosyasi olusturmak suretiyle (script) olmaktadir. Program çalistrildiginda çalisma ekranina ilk olarak ‘>>’ komut ekrani gelecektir. >> 4.3+4.2 ans = 8.5000 ‘ans’ 2.3 ile 4.2 sayilarinin toplamini sonuc olarak verecektir. (answer) >> format rat >> 5.1-3.3 ans = 9/5 Sonuç format rat ile kesirli halde alinabilir. >> format compact >> 5*7 ans = 35 Islem sonucu arasina ekstra bosluk birakilmaz Temel Matematiksel islemler >> 5^8 ans = 40 >> format long ile istenilen sonucun duyarliligi gösterilir. >> sqrt(2) ans = 1.41421356237310
  • 3. Temel trigonometric operatörler (cos, sin, tan, sec, csc, cot), tersleri (acos, asin, atan, asec, acsc, acot ), exponansiyel fonksyionexp, dogal logaritma log. Örnek: ln(14)+sin(π/4) asagidaki sekilde hesaplanir >> log(14)+sin(pi/4) ans = 3.34616411080181 Matlab’te hazir fonksyionalrin kullanim sekillerini bilmek istenirse ‘help’ komutu kullanilir >> help abs (mutlak deger icin yardim dosyasi cagirma) ABS Absolute value. ABS(X) is the absolute value of the elements of X. When X is complex, ABS(X) is the complex modulus (magnitude) of the elements of X. See also SIGN, ANGLE, UNWRAP. Overloaded methods help sym/abs.m Degiskenler Tüm yazilabilir karakterler degisken olarak atanabilir ve ‘=’ olarak verilir. >> x=23 x = 23 Degislen isimleri büyük ve küçük harf ayrimina hassastir. X ve x degiskenleri ayri olarak tanimlabilir. >> x^2-3*x+2 ans = 30 >> log(x) ans = 1.94591014905531 >> sin(x) ans = 0.65698659871879 Yeni bir ifade icin bir önceki degisken kullanilabilir. Her islem ssonucu bellekte saklanir. >> y=8*x y = 56 >> x=x+5 x = 12
  • 4. >> y y = 56 >> who komutu kullanilan degisken isimlerini verir Your variables are: ans x y >> whos komutu degiskenlerin boyut bilgisini verir. Name Size Bytes Class ans 1x1 8 double array x 1x1 8 double array y 1x1 8 double array Grand total is 3 elements using 24 bytes Bellekteki degiskenleri silmek icin ‘clear’ komutu kullanilir. Bu asamadan sonra degiskenler çagrilmak istenirse; >> clear >> who >> x ??? Undefined function or variable 'x'. ile karsilasilir. Karmasik Sayilar Genel formati a+ib, a-ib, a+bj, a+jb olan ifadelerdir. >>2-3i ans = 2.0000 - 3.0000i >> 2-3*i ans = 2.0000 - 3.0000i ayni ifadenin 2-i3 olarak yazilamayacagina dikkat edilmeli. Karmasik sayilarin taniminda ‘complex’ fonksyionuda kullanilir. Bu fonksyion karmasik sayinin gerçel ve sanal kisimlarini verir. > x=3;y=4; >> complex(x,y)
  • 5. ans = 3.0000 + 4.0000i >> complex(2,-3) ans = 2.0000 - 3.0000i Karmasik sayi islemleri: abs :Mutlak deger alir (Genlik bilgisi) angle : Faz açisi conj : Karmasik eslenik imag : Karmasik sanal kisim real : Karmasik gerçel kisim >> z=2+5i; >> abs(z) ans = 5.3852 >> angle(z) ans = 1.1903 >> conj(z) ans = 2.0000 - 5.0000i >> imag(z) ans = 5 >> real(z) ans = 2 Temel Istatistiksel Islemler Özellikle saha ve gozlem verileri üzerinde yapilacak analizlerin ve degerlendirilmeler için istatistiksel yöntemleri Matlab’te kullanmak mümkündür. Bilinen en temel komutlar; max : Veri kümesindeki en büyük degeri bulur. min : Veri kümesindeki en küçük degeri bulur. length : Küme içinde kaç eleman oldugunu verir. sum : Kümenin toplam sayisini verir prod : Verilerin çarpimini hesaplar median : Verilerin ortanca degerini hesaplar std : Standart sapma mean : Ortalama deger yada aritmetik ortalama
  • 6. geomean : Geometrik ortalama harmmean : Harmonik ortalama sort : Küme elemanlarini azalan sirada hazirlar >> T=[2.1;2.5;1.9;-1.9;2.4;3.0] T = 2.1000 2.5000 1.9000 -1.9000 2.4000 3.0000 >> max(T) ans = 3 >> min(T) ans = -1.9000 >> length(T) ans = 6 >> sum(T) ans = 10 >> prod(x) ans = 120 >> median(x) ans = 3.5000 >> median(T) ans = 2.2500 >> std(T) ans = 1.7874 >> mean(T) ans = 1.6667 >> geomean(T) ??? Error using ==> geomean The data must all be non-negative numbers. % Negatif sayi içeren küme var >> harmmean(T) ans = 3.6896 Polinomlar Matlab’ta polinomlar bir vektörle temsil edilirler. Polinom olusturmak için yüksekten düsük dereceliye dogru azalan sirada polinom katsayilari yazilir. x=s4+3s3-15s2-2s+9 polinomu programa asagidaki sekilde yazilir; x=[1 3 -15 -2 9] x= 1 3 -15 -2 9
  • 7. Benzer sekilde y=s4+1’in gösterilimi y=[1 0 0 0 0 1] seklindedir. Polinomun herhangi bir kök için degeri, örnegin s4+1’in s=2 için degeri; z=polyval([1 0 0 0 1],2) veya dogrudan z=polyval(y,2) z= 17 Polinomun köklerinin bulunmasi, örnegin s4+3s3-15s2-2s+9 için; roots([1 3 -15 -2 9]) ans= -5.5745 2.5836 -0.7951 0.7860 • Iki polinomun çarpilmasi, (x+8) (x2+4x+8) = x3+6x2+16x+16 x=[1 2] y=[1 4 8] z=conv(x,y) z= 1 6 16 16 • Iki polinomu bölelim [xx,R]=deconv(z,y) xx= 1 2 (bölüm=x+2) R= 0 0 0 0 (kalan=0) Örnek: P(x)=x4+3x3-15x2-2x+9 polinomunun x=2 için alacagi degerin bulunmasi >> P=polyval([1 3 -15 -2 0],2) P = -24 Örnek: P(x)=x4-5x x=2 ve x= 8 için fonksiyonun alacagi degerin bulunmasi >> x=[2 8]; >> p=[1 0 0 -5 0]; >> pp=polyval(p,x) pp = 6 4056 Polinom Köklerinin Bulunmasi Bir P(x)=0 polinomunun köklerinin bulmak için ‘roots’ komutu kullanilir.
  • 8. Örnek: y=3x3+4x2-6x+1 denklemini saglayan kökler >> y=[3 4 -6 1]; >> roots(y) ans = -2.2763 0.7469 0.1961 Yuvarlatma Islemleri fix : Sifira dogru yuvarlatir floor : - 8 dogru yuvarlatir ceil :+ 8 dogru yuvarlatir round : en yakin tamsayiya yuvarlatir. >> a=3.5; >> fix(a) ans = 3 >> floor(a) ans = 3 >> ceil(a) ans = 4 >> round(a) ans = 4 Matrisler ve Vektörler Matriks olusturmak için köseli, parantez kullanilir ve ’;’ ile satirlar ayrilir >> A=[2 11 -3 8; 1 0 8 -3; 7 1 2 5] A =
  • 9. 2 11 -3 8 1 0 8 -3 7 1 2 5 Sonuç verecek olan her komut satiri sonuna ‘;’ konulursa görülmesini istemediginiz >> B=[2 0 -3; -1 1 3]; will still define the variable B containing a 2×3 matrix, but MATLAB will not echo anything. >> whos Name Size Bytes Class A 3x4 96 double array B 2x3 48 double array v 3x1 24 double array Grand total is 21 elements using 168 bytes Bir B matrisinin elemanlarini gormek icin; >> B B = 2 0 -3 -1 1 3 Vektorlerim matrislerin tek kolon halidir ve gösterimleri; >> v = [ 2; 3; -4] v = 2 3 -4 Bir satir vektorü bir satiri olan bir matrisdir. >> w=[3 -2 5 11] w = 3 -2 5 11 Örnegin iki sayi arasinda sirali satir vektörü olusturmak için a:b; örnegin >> 2:5 ans = 2 3 4 5 j:i:k bir satir vektörünü tanimlar ve j baslangiç, I artim ve k son elemani gösterir. >> 3:2:9 ans = 3 5 7 9 Matrisin transpozu >> A=[5 -2 9; 11 7 8] A = 5 -2 9 11 7 8 >> A' ans = 5 11 -2 7 9 8
  • 10. Esit artimli bir vektörün transpozu asagidaki gibi tanimlanir; >> [1:3:10]' ans = 1 4 7 10 A is A(i,j) matrisinin istenilen I ve j elemaninin bulunmasi >> A=[3 -2 7 8; 4 3 2 1; 10 15 -2 9] A = 3 -2 7 8 4 3 2 1 10 15 -2 9 >> A(3,2) ans = 15 3. satirin 2. ve 4. sutun degerleri >> A(3,[2 4]) ans = 15 9 3. kolonun tum degerleri >> A(3,:) ans = 10 15 -2 9 >> A(:,3) ans = 7 2 -2 A matrsinin 1, 2 ve 4. kolon degerleri >> A(:,[1 2 4]) ans = 3 -2 8 4 3 1 10 15 9 Ayni satir sayisina sahip iki matris asagidaki örnekte oldugu birlestirilebilir. >> A=[1 2 3; 4 5 6] A = 1 2 3 4 5 6 >> B=[7 8; 9 10] B = 7 8 9 10 >> [A B] ans = 1 2 3 7 8 4 5 6 9 10 >> C=[7 8 9] C =
  • 11. 7 8 9 Eger satirlar birlestirilmek istenirse; >> [A;C] ans = 1 2 3 4 5 6 7 8 9 Bir A matrisinden herhangi bir satirin kaldirilmasi istenirse >> A=[ 4 7 2 1 3; 8 7 12 -2 5; 11 1 14 -2 0] A = 4 7 2 1 3 8 7 12 -2 5 11 1 14 -2 0 >> A(2,:)=[] seklinde yazilir. A = 4 7 2 1 3 11 1 14 -2 0 >> A(:,[1 3])=[] 1. ve 3. sütünlar kaldirildiktan sonraki durum A = 7 1 3 1 -2 0 Nokta çarpim Matlab dilinde dot (nokta islemler) islemler çarpma *. Bölme ./ veya . Üstalma .^ olarak kullanilir. Yani nokta isaretli islemler matrislerde eleman (elemanter) islem yapilacagini gösterir. N bier sakaler olmak üzere a.^n, a matrisindeki her bir elemanin n. katresinin alinacagini ifade eder( Inan, A., 2004). Vektörlerin her elemani çarpilir ve kümülatif toplam elde edilir. >> v=[7; 23; 15; 2], w=[5; -2; 1; -8] v = 7 23 15 2 w = 5 -2 1 -8 >> dot(v,w) ans = -12 Nokta çarpim simetriktir ayni sonuç alinir. >> dot(w,v) ans = -12 Bir vektörün boyu ||v||=√{v·v}. ise >> vlength=sqrt(dot(v,v)) vlength =
  • 12. 28.4077 Yada norm komutu ile de elde edilir. >> norm(v) ans = 28.4077 Iki vector arasindaki açi θ ise v·w=||v||||w||cosθ. θ = arccos((v·w)/||v||||w||). çözümü >> theta=acos(dot(v,w)/(norm(v)*norm(w))) theta = 1.6144 >> theta*180/pi ans = 92.4971 Yaklasik açi 92.5°. Temel matris islemleri >> A=[5 -1 2; 3 4 7] A = 5 -1 2 3 4 7 >> B=[2 2 1; 5 0 3] B = 2 2 1 5 0 3 >> A+B ans = 7 1 3 8 4 10 Ayni boyutttaki matrislerin toplami gerçeklestirilebilir. >> C=[3 1; 6 4] C = 3 1 6 4 >> A+C ??? Error using ==> + Matrix dimensions must agree. Seklinde hatali sonuç alinir. Bir matrisin elemanlarinin scalar bir sayi ile çarpilmasi. A=[1 2 ; 3 4] A = 1 2 3 4
  • 13. >> 3*A ans = 3 6 9 12 ‘ * ‘ çarpim operatörü olup 2A seklinde yazilamaz. >> 2A ??? 2 | Missing operator, comma, or semi-colon. Ayni sekilde vektörlerin scalar çarpimlari ve ara islemleri yapilabilir. B=[2 ;3] B = 2 3 >> C=[4 ;3] C = 4 3 >> D=3*A-2*C D = -2 3 Iki matrisin A*B çarpimi A m×n ve B n×k oldugunda geçerlidir. Sonuç A*B matrisi m×k boyutundadir. >> A=[3 1 7 2; 6 -3 4 2; 9 4 -1 -2] A = 3 1 7 2 6 -3 4 2 9 4 -1 -2 >> B=[1 2; 3 4; 5 6; 7 8] B = 1 2 3 4 5 6 7 8 >> A*B ans = 55 68 31 40 2 12 Matlab’da islem satiri devam edemeyecek durumda ise … kullanilir A=[2;2;2 ... ;33] A= 2 2
  • 14. 2 33 Matriks rank hesaplama için Bsr matrisin tüm karesel alt matrislerinden, determinanti sifirdan farkli olan en yüksek boyutlusunun boyutuna A matrisinin ranki denir. >> A=[1 2 1 4; 2 3 1 3; 3 2 1 2; 4 3 1 1] A = 1 2 1 4 2 3 1 3 3 2 1 2 4 3 1 1 >> rank(A) ans = 3 Ters Islemler Bir A matrisinin tersi A^(-1) yada inv(A) ile gösterilir. Inv ters islem yapma operatörüdür. >> A=[2 1 1; 1 2 2; 2 1 2] A = 2 1 1 1 2 2 2 1 2 >> Ainv=inv(A) Ainv = 2/3 -1/3 0 2/3 2/3 -1 -1 0 1 Sonucun saglanmasi için ters ve kendisi birim matrisi vermelidir. >> A*Ainv ans = 1 0 0 0 1 0 0 0 1 >> Ainv*A ans = 1 0 0 0 1 0 0 0 1 Eger matris tekil ise tersi alinamaz. Hatali sonuç alinir. >> B=[1 2 3;4 5 6;7 8 9] B = 1 2 3 4 5 6 7 8 9 >> inv(B) Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.055969e-018. ans = 1.0e+016 *
  • 15. -0.4504 0.9007 -0.4504 0.9007 -1.8014 0.9007 -0.4504 0.9007 -0.4504 B matrisinin rank degeri >> rank(B) ans = 2 Rank degeri 3’den küçük oldugundan B matrisi tekildir, Matrisin determinantinin sifirdan farkli deger almasi gerek. >> det(B) ans = 0 MAtlab tarafindan tekil olarak gorulen tersi alinabilen matrisler vardir. >> format long >> C=[1.00000000000001 1; 1 .99999999999999] C = 1.00000000000001 1.00000000000000 1.00000000000000 0.99999999999999 >> inv(C) Warning: Matrix is singular to working precision. ans = Inf Inf Inf Inf >> rank(C) ans = 1 >> det(C) ans = 0 >> rref(C) ans = 1.00000000000000 0.99999999999999 0 0 Matlab matrisi rank=1 ve determinanti 0 oldugundan tekil kabul eder..Ancak eger ε = 0.00000000000001, then det(C)=(1+ε)(1−ε)−1=−ε2 ≠ 0, boylece tersi alinabilir. Format komuru ile 1+ε ve 1−ε olarak birbirinden farkli 15 digitli bir deger elde edilir. Bu durumda tanim ; (1+ε)(1−ε)=1−ε2 = 0.9999999999999999999999999999 Bu klasik anlamda bir ters çözüm isleminin tekil matrisler icin çözüm asamasidir. Ax=b olarak verilen bir ifadenin çözümünü ele alalalim, Burada A is terselenebilir olsun, basit olarak x=A−1b olacaktir. >> A=[11 7 -6 8; 3 -1 12 15; 1 1 1 7; -4 6 1 8] A = 11 7 -6 8
  • 16. 3 -1 12 15 1 1 1 7 -4 6 1 8 >> b=[10; -23; -13; 4] b = 10 -23 -13 4 >> format rat >> x=inv(A)*b x = 1 5 2 -3 Islemi saglamak için >> A*x ans = 10 -23 -13 4 Özvektörler ve Özdegerler Bir kare matrisin özdegerlerini bulmak için ‘eig’ komutu kullanilir. >> A=[ 3 1 1; 1 3 1; 1 1 3] A = 3 1 1 1 3 1 1 1 3 >> eig(A) ans = 2.0000 2.0000 5.0000 >> [Q,D]=eig(A) A çarprazlanabilir ise Q = -0.8164 -0.0137 0.5774 0.3963 0.7139 0.5774 0.4201 -0.7001 0.5774 D = 2.0000 0 0 0 2.0000 0 0 0 5.0000 Q matrisinin kolonlari A matrisinin öz-temellerini olusturur. v Q-1AQ=D. Saglamasi >> inv(Q)*A*Q ans = 2.0000 0 0.0000 0.0000 2.0000 0.0000 -0.0000 0.0000 5.0000 Q gerçekçe özvektörlerin dik normalarini olusturur. >> Q'*Q
  • 17. ans = 1.0000 0.0000 -0.0000 0.0000 1.0000 -0.0000 -0.0000 -0.0000 1.0000 Bir matrisin kösegen degerleri için ‘diag(A)’ kullanilir. >> a=[2 4 4;2 3 1;3 -2 5] a = 2 4 4 2 3 1 3 -2 5 >> diag(a) ans = 2 3 5 Hazir matris fonksiyonlari Rand, ones, zeros, eye: ‘rand’ veya ‘randn’ fonksyionlarinin kullanilmasi; bazi durumlarda yalnizca bir özelligi veya bir seyi denemek ve durumunu gözlemek için rastgele sayilardan olusmus bir matris olusturmak için kullanilir. ‘Rand’ düzenli olarak dagilmis ‘randn’ ise normal olarak dagilmis rastgele sayi üretir (Inan, A., 2004). Örnegin; a=-5 ile b=5 arasinda yani -5 ile +5 arasinda rastgele sayili 2x4 (iki satur 4 sütünlu) bir matris üretmek istenirse >>a=-5+10*rand(2,4) a = 4.3547 -0.8973 -4.4211 3.1317 4.1690 3.9365 -1.4713 -4.9014 >> c=rand(4) 0 ile 1 arasinda 4x4 matris olusturur. Özellikle iki boyutlu verilere rastgele gürültü eklenmesinde temel kullanima uygundur. c = 0.1389 0.2722 0.4451 0.8462 0.2028 0.1988 0.9318 0.5252 0.1987 0.0153 0.4660 0.2026 0.6038 0.7468 0.4186 0.6721
  • 18. ‘Ones’ fonksyionu elemanlari 1 olan bir matris ‘zeros’ fonksiyonu elemanlari 0 olan matris olusturur. >> s=ones(3) s = 1 1 1 1 1 1 1 1 1 >> d=zeros(4) d = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ‘eye’ fonksiyonu ile birim matris olusturulur. >> d=zeros(2,4) d = 0 0 0 0 0 0 0 0 >> e=ones(2,5) e = 1 1 1 1 1 1 1 1 1 1 >> f=eye(3,3) f = 1 0 0 0 1 0 0 0 1 Özel Matrisler Pascal(i) fonksyionu i. siraya kadar passcal üçgeninin elemanlarindan olusan ixi boyutunda bir matris olusturulur. >> pascal(4) ans =
  • 19. 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 ‘magic(j)’ fonksiyonu jxj uzunlugunda 1’den j’ye kadar sayilardan olusan (j=2 hariç) esit satir, sütün ve kösegen toplamina sahip bir kare matris olusturur. >> magic(3) ans = 8 1 6 3 5 7 4 9 2 8 + 1 + 6 = 15 + 3 + 5 + 7 = 15 + 4 + 9 + 2 = 15 ---------------- 15 15 15 [x,y]=meshgrid(x,y) fonksiyonu x ve y vektörlerini X ve Y matrislerine dönüstürerek aslinda 3 boyutlu grafik çizimleri için bir veri ortami hazirlar. >> [X,Y]=meshgrid(-2:1:2,-2:1:2) X = -2 -1 0 1 2 -2 -1 0 1 2 -2 -1 0 1 2 -2 -1 0 1 2 -2 -1 0 1 2
  • 20. Y = -2 -2 -2 -2 -2 -1 -1 -1 -1 -1 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 Burada -2 ile 2 arasinda artimi 1 olan X ve Y matrisleri olusturulmustur. Grafik Çizimleri ‘plot’ fonksiyonu belirli bir düzlem verisinin grafik gösterimi için kullanilir. Bir x ve y düzleminde verilen bir verinin gösterimi plot(x,y). Örnegin x ve y elemanlari (0,0), (1,1), (4,2) ve (5,−1) olan düzlem >> x=[0 1 4 5 0]; >> y=[0 1 2 -1 0]; >> plot(x,y) Bir baska örnekte y=x3 fonksiyonu [−2,2] olarak tanimlaniyorsa bunun matlab da çizimini yapalim. Araligini kendimizin belirleyecegi −2 den 2 x degerleri >> x=-2:.05:2; % 0.05 artim x vektörü 1x81 matrisini olusturur. Bu size(x) yazilarakta belirlenebilir. >> y=x.^3; y=x^3 yazildiginda x kare matris olmadiginda hata verecektir. >> plot(x,y) Çizilen grafige baslik yazilmasi >> title('f(x)=x^3 fonksiyonu')
  • 21. r(t)=(2tcost/(t+1),2tsint/(t+1)) kapali egrisini t ∈ [0,4π] için çizimde t vektörü aiagidaki gibi tanimlansin . >> t=0:.1:4*pi; >> x=2*t.*cos(t)./(t+1); >> y=2*t.*sin(t)./(t+1); >> plot(x,y); >> title('(2t cos t/(t+1),2t sin t/(t+1))') Matlab grafik çizimlerini otomatik ayarlar. Uygun ölçekte görmek için ‘axis equal’ >> axis equal Ayni sekil üzerinde birden fazla egriyi göstermek için ‘hold on’. Ayni sekil üzerinde birden fazla egriyi göstermek için ‘hold on’ kullanilir. Örnek: x2+y2=4 ve (x−1)2+(y−1)2=1 gibi iki daire ayni sekilde gösterilmek istenirse. r1(t)=(2cost,2sint) ve r2(t)=(1+cost,1+sint) t ∈ [0,2π] olarak tanimlanirsa. >> t=0:pi/20:2*pi; >> plot(2*cos(t),2*sin(t))
  • 22. >> hold on >> plot(1+cos(t),1+sin(t)) >> axis equal >> title('x^2+y^2=4 and (x-1)^2+(y-1)^2=1 daireleri') Yüzeylerin Çizimleri f(x,y) fonksiyonun dikdörtgensel ortamda gösterimi R=[a,b]×[c,d]={(x,y) | a ≤ x ≤ b and c ≤ y ≤ d}, Ilk olarak ‘meshgrid’ fonksiyonunu kullanarak ortami gridleyerek tanimlayabiliriz Dikdörtgen [0,4]×[0,3] parçalara bölünürse ve genisligi 1 yüksekligi 0.5 olan. Gird araligini tanimlayan x ve y vektörlerinin tanimlanmasi gerek. >> x=0:4 x = 0 1 2 3 4 >> y=0:.5:3 y = 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 meshgrid grid noktalarini tanimlar. >> [X,Y]=meshgrid(x,y) X = 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4
  • 23. 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 Y = 0 0 0 0 0 0.5000 0.5000 0.5000 0.5000 0.5000 1.0000 1.0000 1.0000 1.0000 1.0000 1.5000 1.5000 1.5000 1.5000 1.5000 2.0000 2.0000 2.0000 2.0000 2.0000 2.5000 2.5000 2.5000 2.5000 2.5000 3.0000 3.0000 3.0000 3.0000 3.0000 öylece 35 noktadan olusan 7×5 matris elde edilir. X matrisi x koordinatlarini y matrisi y kooridnatlarini içerir. f(x,y)=3x−2y fonksiyonunu çizelim. z koordinatlarini olusturan z >> Z=3*X-2*Y olarak tanimlansin Z = 0 3 6 9 12 -1 2 5 8 11 -2 1 4 7 10 -3 0 3 6 9 -4 -1 2 5 8 -5 -2 1 4 7 -6 -3 0 3 6 Sonuç olarak ’surf’ fonksyionu tanimli yüzeyin çizimi için kullanilir >> surf(X,Y,Z) >> title('f(x,y)=3x-2y yüzeyi') x ve y tanimlamalari dogrudan da yapilabilir. >> [X,Y]=meshgrid(0:4,0:.5:3) Örnek: f(x,y)=x2y−2y fonksiyonunu [−2,2]×[−1,1] tanimli aralikta gösterelim. Kenar uzunlugu 0.1 olan karelerden olusan bir grid tanimlanmasi gerek. >> [X,Y]=meshgrid(-2:.1:2,-1:.1:1); z yüzeyinin tanimi >> Z=(X.^2).*Y-2*Y;
  • 24. Yüzeyin çizilmesi. >> surf(X,Y,Z) >> title('f(x,y)=x^2y-2y Yüzeyi') Yariçapi ρ olan bir küre R3 ile merkezlenmis olsun. Ve genellestirilmis ifadesi ve tanim araligi, r(φ,θ)=(ρsinφcosθ ρsinφsinθ,ρcosφ) 0 ≤ φ ≤ π,0 ≤ θ ≤ 2π. Bu birim küreyi çizdirelim. Ilk olarak φ ve θ mesgrid fonksyionunu parametreleri olacaktir. >> phi=0:pi/20:pi; >> theta=0:pi/10:2*pi; >> [Phi,Theta]=meshgrid(phi,theta); ρ = 1 için. >> X=sin(Phi).*cos(Theta); >> Y=sin(Phi).*sin(Theta); >> Z=cos(Phi); Finally we plot the surface, and scale the axes so that it looks like a sphere! >> surf(X,Y,Z) >> axis equal >> title('Birim küre {bf R}^3') %{bf R} yazim sekli R3 için formattir. Yada hazir fonksiyon halinde ‘sphere(n)’ n tam sayisi ile ayni küre elde edilir.
  • 25. Konturlama ( Egri Seviye Degerleri ) f(x,y)=x2−y2. seviye egrilerinin gösterilmesi için 'contour’ komutu kullanilmaktadir. >> [X,Y]=meshgrid(-1:.1:1); >> Z=X.^2-Y.^2; >> contour(X,Y,Z) >> title(' f(x,y)=x^2-y^2 fonksiyonunun seviye egrileri') Konturlarin degerlerini elde etmek için >> [C,h]=contour(X,Y,Z); >> clabel(C,h) >> title('f(x,y)=x^2-y^2 kontur degerleri ile.')
  • 26. Grafik ve Konturlarin beraber çizdirilmesi için ‘surfc’ komutu kullanilir >> surfc(X,Y,Z) >> title('f(x,y)=x^2-y^2. fonksiyonu ve kontur cizgileri') Vektör Alanlari Bir vektör alan Rn ile tanimlanan bir fonksiyon olsun. F:Rn→Rn, ve grafik olarak her x degerinin F(x) olarak yani x in Rn tanimlanir. MATLAB, quiver(X,Y,U,V) ile (U,V)vektörünü (X,Y)noktalarinda . Örnek:Vektör alani F(x,y)=(−y,x) >> [X,Y]=meshgrid(-1:.2:1); >> quiver(X,Y,-Y,X) >> axis equal >> axis([-1 1 -1 1])
  • 27. >> quiver(X,Y,-Y,X,0) quiver(X,Y,U,V,s) genel ifadesinde s ölçeklendirme olarak kullanilir. Yukarida sagdaki sekilde s=0 olarak alinmistir. Kullanilmassa otomatik ölçeklendirme yapilir. Sembolik Degiskenler ve Ifadeleri MATLAB simgesel islemlerde Symbolic Math Toolkit’i kullanir. Kullanilacak fonksiyonlar >> help symbolic ile görülebilir. Simgesel degisken ve islemlere giris yapmak için ‘>>symintro’ yazmak yeterlidir. Sayisal islemlerde ve karakter indislerinde bildirime gerek yok iken, simgesel islemlerde kullanilacak degiskenlerin önceden bildirilmesi gerekir. Örnegin ‘a’ gibi bir sembolik degisken >> sym a ans = a veya >> sym('a') ans = a ile bildirilir. Bir fonksionda geçen degiskenler x,y ve z olsun >> syms x y z Anlami x=sym('x'), y=sym('y') ve z=sym('z'). Sembolik bir ifade yazalim. >> S=x^2-y^2 S = x^2-y^2
  • 28. Bu ifadenin faktörü. >> factor(S) ans = (x-y)*(x+y) S’nin küpü ve açilimi. >> S^3 ans = (x^2-y^2)^3 >> expand(ans) ans = x^6-3*x^4*y^2+3*x^2*y^4-y^6 Bir fonksiyonu sadelestirmek icin ‘simplify’ fonksyionu kullanilir. >> S=(x^3-4*x)/(x^2+2*x) S = (x^3-4*x)/(x^2+2*x) >> simplify(S) ans = x-2 Sembolik ifadeler matris yada vektör normunda olabilir. >> syms a b >> A=[cos(a) -sin(a); sin(a) cos(a)] A = [ cos(a), -sin(a)] [ sin(a), cos(a)] >> B=[cos(b) -sin(b); sin(b) cos(b)] B = [ cos(b), -sin(b)] [ sin(b), cos(b)] >> C=A*B C = [ cos(a)*cos(b)-sin(a)*sin(b), -cos(a)*sin(b)-sin(a)*cos(b)] [ sin(a)*cos(b)+cos(a)*sin(b), cos(a)*cos(b)-sin(a)*sin(b)] >> simplify(C) ans = [ cos(a)*cos(b)-sin(a)*sin(b), -cos(a)*sin(b)-sin(a)*cos(b)] [ sin(a)*cos(b)+cos(a)*sin(b), cos(a)*cos(b)-sin(a)*sin(b)] simplify fonksiyonu görüldügü gibi herhangi bir degisiklik yapmadi. Bu durumda baska bir seçebek olan ’simple’ fonksyionu kullanilir. Esitligin en kisa ifadesi. >> D=simple(C) D = [ cos(a+b), -sin(a+b)] [ sin(a+b), cos(a+b)] Örnek: f(x,y)=(4x2−1)e−x2−y2 fonksiyonu için f(1,2) sonucunu bulalim. >> syms x y >> f=(4*x^2-1)*exp(-x^2-y^2) f = (4*x^2-1)*exp(-x^2-y^2)
  • 29. >> f(1,2) ??? Index exceeds matrix dimensions. f bir fonksiyon olmadigindan bir degisken oldugundan MATLAB f(1,2) bir satir ve 2 kolon olarak giris yapacaktir. Ifadenin sonucunu bulmak için degisken degistirme yapilmalidir. Bunun için ‘subs’ fonksiyonu kullanilir. >> subs(f,{x,y},{1,2}) ans = 0.0202 Sadece y’ye bagli bir ifade elde edilecekse, >> subs(f,x,3) ans = 35*exp(-9-y^2) Fonksiyonlari tanimlamak için bir baska yol da ’inline’ komutunu kullanmaktir. Örnek: g(x,y)=x2−3xy+2 >> g=inline('x^2-3*x*y+2') g = Inline function: g(x,y) = x^2-3*x*y+2 olarak tanimlanabilir. g(2,3) için fonksiyonu degerlendirmek için. g(2,3) ans = -12 inline fonksyonlarin dezavantaji sembolik olarak degistirilemez. >> g^2 ??? Error using ==> ^ Function '^' not defined for variables of class 'inline'. Denklem Sistemlerinin Çözümü Matlab’in bir diger gelismis özelligi her türlü dogrusal ve dogrusal olmayan denklem takimlarinin çözüm kümesini bulmasidir. Bu amaç için ‘solve’ komutunu kullanir. >> solve('sin(x)+x=5') ans = 5.6175550052726989176213921571114 Eger esitlik verilmezse, >> solve('a*x^2+b*x+c','x') ans = [ 1/2/a*(-b+(b^2-4*a*c)^(1/2))] [ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
  • 30. Örnek: x2+y2=4 ve (x−1)2+(y−1)2=1 olarak verilen iki fonksiyonun kesisim degerlerini bulmak için. >> S=solve('x^2+y^2=4','(x-1)^2+(y-1)^2=1') S = x: [2x1 sym] y: [2x1 sym] >> [S.x S.y] ans = [ 5/4-1/4*7^(1/2), 5/4+1/4*7^(1/2)] [ 5/4+1/4*7^(1/2), 5/4-1/4*7^(1/2)] Kesisim degerleri ((5−√7)/4,(5+√7)/4) and ((5+√7)/4,(5−√7)/4). Dogrusal Denklem Takimlarinin Çözümü n. dereceden dogrusal denklem takimi a11 x1 + a12 x2 + ... + a1n xn = b1 a 21 x1 + a 22 x2 + ... + a 2 n x n = b2 .......... .......... .................... ..... a n1 x1 + a n 2 x2 + ... + a nn xn = bn biçiminde verilir. Bu denklem takiminin matris biçiminde gösterimi [ A] [x] = [B ] seklinde tanimlanabilir. Burada; a11 a12 .. a1n    a 21 a 22 .. a 2 n  A=  .. .. .. ..  B = [b1 b2 .. bn ]    a n1 a n 2 .. a nn  katsayilar matrislerini ve X = [x1 x 2 ... x 3 ] çözümü istenen degiskenler matrisini (vektörünü) gösterir. Bu tür istenen denklem takimlarinin çözümü için, içinde yer alan özel fonksiyonlar yoktur. Bu denklemlerin çözümünde matris islemlerinden yararlanilabilir. AX=B biçiminde verilen denklem takiminin çözümünde AB biçiminde soldan (bölen bölme isaretinin solunda yer almakta) matris bölme islemi ile yerine getirilir. XA=B biçiminde tanimlanan matris
  • 31. denklemin çözümünde B/A seklinde sagdan matris bölme islemi kullanilir. Sagdan ve soldan matris bölme isleminde sayisal Gauss eliminasyon teknigi kullanilir. Denklem Takimlarinin Ters Matris Islemi Yolu ile Çözümü AX=B biçiminde verilen ve B’nin satir matrisi olarak tanimlandigi matris denkleminin her iki tarafini A-1 ile çarparsak A-1 AX=A-1B elde edilir. Burada A-1 A, I olarak tanimlanan birim matrise denktir. Buna göre IX=A-1B veya X=A-1B elde edilir. MATLAB ortaminda bu çözüm; X=inv(A)*B komutu ile elde edilebilir. Diger taraftan B’nin sütun matrisi olarak tanimlandigi, XA=B biçiminde ifade edilen denklem takiminin çözümü için, her iki taraf A-1 ile çarpilir ve gerekli düzenlemeler yapilirsa X=BA-1 elde edilir.MATLAB ortaminda X=B * inv(A) bildirimi ile gerekli çözüm elde edilmis olur. Örnek : Asagida verilen denklem takiminin çözümünü elde ediniz.  x1 + 4 x2 − x3 + x4 =2  2 x + 7 x + x − 2 x = 16   1 2 3 4   x1 + 4 x2 − x3 + 2 x4 = 1    3x1 − 10 x2 − 2 x3 + 5 x4 = −15 Çözüm : Çözüm ilk önce soldan ve sagdan matris bölme islemlerine göre ele alinacak ve daha sonra da ters matris islemine göre çözülecektir. AX=B biçiminde matris denklemi verildiginde çözüm soldan bölme islemine göre asagidaki bildirimlerle yerine getirilebilir. a=[ 1 4 –1 1; 2 7 1 -2; 1 4 -1 2; 3 -10 -2 5 ] b=[ 2 16 1 -15 ] >> x=ab;
  • 32. Denklem takimlari XA=B biçiminde matris denklemi ile tanimlandiginda çözüm sagdan bölme islemi ile asagidaki sekilde saglanir. Burada A ve B matrisleri bir önceki orijinal halinin traspozesi olmaktadir. a=[ 1 2 1 3; 4 7 4 -10; -1 1 -1 -2; 3 -10 -2 5] b=[2 16 1 -15] x=b/a Ters matris islemi ile çözümde; MATRIS denklemi AX=B biçiminde verildiginde, A ve B matrisi a=[ 1 4 –1 1; 2 7 1 -2; 1 4 -1 2; 3 -10 -2 5 ]; b=[ 2 16 1 -15 ] biçiminde tanimlandiktan sonra x=inv(a)*b; bildirimi ile çözüm elde edilir: Benzer sekilde Matris denklemi XA=B biçiminde verildiginde A ve B matrisleri, a=[ 1 2 1 3; 4 7 4 -10; -1 1 -1 -2; 3 -10 -2 5] b=[2 16 1 -15] x=b*inv(a) bildirimi ile çözüm elde edilir. Yukarida verilen bildirimler yolu ile x çözümü için x= 2.0000 1.0000 3.0000 -1.0000 seklinde elde edilmis olur. Burada x 1= 2, x2=1, x3=3 x4=-1 ‘dir. Dogrusal Olmayan Denklemlerin Çözümü Dogrusal olmayan denklemlerin dogrusal denklemlerde oldugu gibi tek bir standart biçimi yoktur. Gerek MATLAB içinde gerekse Otimatization Toolbox içinde, gerek tek degiskenli ve gerekse çok degiskenli denklemlerin çözümünde kullanilan çesitli çözüm fonksiyonlari vardir. Dogrusal olmayan denklemlerin çözümü, dogrusal denklem çözümü kadar basit olmayip bunlarin çözümü için ayrica bir fonksiyon dosyasi hazirlanmasi gerekir. Burada, MATLAB içinde yer alan fzero fonksiyon fonksiyonu ile Otimatization Toolbox içinde yer alan fsolve fonksiyon fonksiyonu ayrintili bir biçimde ele alinacaktir. Ayrica diger dogrusal olmayan fonksiyon fonksiyonlarinin kisaca tanimlari gözden geçirilecektir. fzero: Fonksiyon fonksiyonu; tek degiskenli bir fonksiyonun sifirini hesaplar. Genel kullanim biçimleri asagida oldugu gibidir. z=fzero(‘function’,X0); z=fzero(‘function’,X0,tol);
  • 33. z=fzero(‘function’,X0,tol, trace); fun(x) biçimindeki bir fonksiyonun, X0 ile tanimlanan degere yakin olan tek bir sifirini hesaplar. Burada, fonksiyonu sifir yapan, yani x eksenini kesen bir sifir degeri hesaplanir. Ikinci bildirimde yer alan tol isimli, seçimli argüman bagil hata toleransini belirler. Üçüncü bildirimde yer alan seçimli trace argümani her bir hesap yineleme islemindeki bilgileri görüntüler. Fonksiyon fonksiyonu olan fzero fonksiyonunu kullanmak için ayrica function ile baslayan bir fonksiyon dosyasi hazirlanmasi gerekir. Örnek: f(x)=x3-2x-5 fonksiyonunun bir sifirini bulunuz. Çözüm: Önce bir fx.m adi ile fonksiyon dosyasi hazirlanir. Function y=fx(x) y=x^3-2*x-5 Burada dosya adi ‘fx’ ile fonksiyon adi ‘fx’ ayni olmasi gerektigine dikkat edilmelidir. Daha sonra MATLAB ortaminda z=fzero(‘fx’,2) bildirimi ile z=2.0946 sonucu elde edilir. Burada X0=2 olarak tahmini bir baslangiç deger verilmistir. f (x) fonksiyonu gerçekten bir polinom olduguna göre asagida verilen roots komutu ile p=roots([1 0 -2 -5]) Ayni fonksiyonu sifir yapan gerçek deger ile birlikte karmasik eslenik kökleri de; p= 2.0946 -1.0473 + 1.1359i -1.0473 - 1.1359i olarak elde edilmis olur Örnek : e2x –x –2 biçiminde verilen dogrusal olmayan fonksiyonun bir adet sifirini bulunuz. Çözüm:Burada f(x) fonksiyonu; f(x)=e2x –x –2 biçimine sokulabildigine göre fonksiyon dosyasi; function y=fex(x) y=exp(2*x)-x-2; biçiminde hazirlanir. Daha sonra MATLAB ortaminda;
  • 34. z=fzero(‘fex’,1) z0.4475 elde edilir. Yukaridaki örneklerden de görüldügü gibi fzero fonksiyonu herhangi bir fonksiyonun tahmini bir sifirinin hesaplanmasinda ve/veya dogrusal olmayan denklemlerin çözümünde daha kullanislidir. Dogrusal denklemlerin ayni anda tüm köklerini çözmek gerektiginde roots fonksiyonunu kullanmak daha pratik olacaktir. Dogrusal Olmayan Denklem Takimlarinin Çözümü Dogrusal olmayan denklem takimlarinin çözümünde, Optimization Toolbox içinde yer alan fsolve fonksiyon fonksiyonu kullanilir. fsolve fonksiyonu dogrusal olmayan denklem takiminin çözümünü saglar. fsolve fonksiyonunun belli basli kullanim biçimleri asagida oldugu gibidir. x=fsolve(‘fun’,x0) x=fsolve(‘fun’,x0,options) x=fsolve(‘fun’,x0,options,’grad’) x=fsolve(‘fun’,x0,options,’grad’,p1,p2, ...) [x,options]=fsolve(‘fun’,x0, ...) fsolve dogrusal olmayan denklemlerin köklerini hesaplar. Çikis argümani olan X degerleri; F(x)=0 seklinde hesaplanir. Burada F(x) ve X skalar, vektör veya matrislerden ibaret olabilir. x=fsolve(‘dun’,x0) bildirimi, fun.m isimli M-dosyasinda tanimlanan denklemleri, X0 tahmini baslangiç degerlerinden baslayarak çözer ve sonucu X degiskenine atar. Burada X0 boyutu x degisken sayisi kadar olmalidir. Ikinci bildirimde yer alan seçimli argüman options seçimli parametreler vektörünü tanimlar. options için pek çok seçenek mevcuttur. Bunlar ile ilgili bilgiler help folve yolu ile saglanabilir. Üçüncü bildirimde yer alan grad, X noktasinda fonksiyonlarin kismi türevlerini (Jacobianlarini) df/dx, df=grad(x) elde etmek için kullanilir. df’in i’inci sütunu f’deki fonksiyonun i’inci kismi türevine karsilik gelir. Örnek: Bir metal kesme islemine ait denklem takimi C=1.2+11.62323v-1f-1 + 5.7449x10-8v3f0.16d1.14 0.0499v0.95 f0.78 d0.75=20 biçiminde tanimlanmaktadir. Burada c 1.27 i,le 1.28 arasinda bir degerdir. Tamamen nonlinear olan bu denklemlerin çözümü için gerekli fonksiyon dosyasi function f=nlnr(x) &x(1)=v, x(2)=f, x(3)=d, degiskenlerine .karsilik gelmektedir. F(1)=-0.08+11.6323/(x(1)*x(2))+5.744e-8 . . .
  • 35. (x(1).^3)* (x(2).^0.16) * (x(3).^1.14); f(2)=12.7 –0.015*(x(1).^(-1.52))*(x(2).^1.004) . . . *( x(3). ^0.25); f(3)=20-0.0449*(x(1).^0.95)*(x(2).^0.78) *(x(3).^0.75); hazirlanabilir. Daha sonra MATLAB ortaminda fsolve ile asagidaki bildirimler yolu ile çözülür. Burada en önemli husus baslangiç degerinin seçimidir. Uygun bir çözüm elde edilene kadar baslangiç degerlerinin seçimi degistirilebilir. x=fsolve(‘nlnr’,[0.5 112.5 20]); Bildirimi ile X= 0.6686 217.4627 18.2436 Sonucu elde edilir. Bu sonuç f fonksiyonlari ile test edildiginde f= 1.0e-008 *(-0.0573 -0.5991 0.5776) sifira çok yakin degerler elde edildigi görülür. Buna karsilik X0 baslangiç degerleri asagida oldugu gibi seçilecek olursa >>x=fsolve(‘nlnr’,[1 2 100]); Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND= 6.79344e-017 Maximum number of iterations has been exceeded Biçiminde bir uyari alinir. Buda çözümün yeterli tamlikta gerçeklenmedigini gösterir. Gerçekten de f fonksiyon degerleri asagidaki biçimde yazilarak test edildiginde >> F(1)=-0.08+11.6323/(x(1)*x(2))+5.744e-8 . . . (x(1).^3)* (x(2).^0.16) * (x(3).^1.14); >> f(2)=12.7 –0.015*(x(1).^(-1.52))*(x(2).^1.004) . . . *( x(3). ^0.25); >> f(3)=20-0.0449*(x(1).^0.95)*(x(2).^0.78) *(x(3).^0.75); f= 0.1715 0.2316 0.5576 sifirdan oldukça farkli degerler elde edildigi görülür. Bu durumda baslangiç degerlerini degistirmek sureti ile uygun çözümler arastirilmalidir. Optimization Toolbox içinde, dogrusal olmayan denklemlerin, degisik sekilde çözümünde kullanilan diger pek çok fonksiyon vardir. Bunlarin tanimlari asagida kullanilan diger pek çok fonksiyon vardir. Bunlarin tanimlari asagida oldugu gibidir. Genel kullanim biçimleri MATLAB ortaminda help komutu ile elde edilebilir.
  • 36. attgoal : Çoklu-amaçli hedefe ulasma problemi çözümü constr : Kisitli minimizasyon çözümü fmin : Skalar kisitsiz minimizasyon çözümü. fminu, fmins : Kisitsiz minimizasyon çözümü. Fsolve : Dogrusal olmayan denklem çözümü. leastssq : Dogrusal olmayan en küçük kareler çözümü. minimax : Minimum-maksimum çözümü. seminf : Yari mutlak minimizasyon lp : Dogrusal programlama nnls : Negatif olmayan en küçük kareler çözümü. qp : Egrisel programlama. Integraller Simgesel integral alma fonksiyonu ‘int’ genel kullanim sekli int(s) : findsym ile belirlenen simgesel degiskene göre S’nin belirsiz integralini alir int(s,v) : S’nin v’ye göre integralini alir. int(S,a,b) : S’nin varsayilan degiskene göre a’dan b’ye kadar belirli integralini alir. int(S,v,a,b) : S’nin tanimli a’dan b’ye kadar belirli integralini alir. Örnek: ∫ (−2 x − 4 x + 20)dx integrallinin hesaplanmasi 5 >>int(-2*x^5-4*x+20) ans = -1/3*x^6-2*x^2+20*x >> pretty(int(-2*x^5-4*x+20)) 6 2 - 1/3 x - 2 x + 20 x Örnek: ∫ (at ln(t + 1) + ut )dt 1 integralinin hesaplanmasi 0 >> syms x a u t; >> int_s=a*t*log(t+1)+u*t; >> r=int(int_s,t) r = 1/2*a*log(t+1)*t^2-1/2*a*log(t+1)-1/4*a*t^2+1/2*a*t+3/4*a+1/2*u*t^2 >> ss=int(int_s,t,0,1) ss = 1/2*u+1/4*a Eger integral sinirlari –8 , +8 ise -inf ve +inf olarak sinirlar verilir.
  • 37. Türevler Türev ifadesi ’diff’ komutu ile verilir. Örnegin f f(x)=sin(ex) ifadesinin x’e bagli türevi >> syms x >> f=sin(exp(x)) f = sin(exp(x)) >> diff(f) ans = cos(exp(x))*exp(x) nth türev diff(f,n) olarak verilir. >> diff(f,2) ans = -sin(exp(x))*exp(x)^2+cos(exp(x))*exp(x) Kismi türevlerin bulunmasina örnek f(x,y)=x3y4+ysinx. >> syms x y >> f=x^3*y^4+y*sin(x) f = x^3*y^4+y*sin(x) Ilk olarak ∂f/∂x hesaplanir. >> diff(f,x) ans = 3*x^2*y^4+y*cos(x) Daha sonra ∂f/∂y hesaplanir. >> diff(f,y) ans = 4*x^3*y^3+sin(x) ∂3 f/∂x3 bulmak istersek >> diff(f,x,3) ans = 6*y^4-y*cos(x) Bir fomksiyonun bilinmeyen parametrelerine göre türevinin alinmasi için Jacobian matrisin olusturulmasi gerekir. Bunun için ‘jacobian’ komutu kullanilir. Örnek: f(x,y)=(sin(xy),x2+y2,3x−2y). >> f=[sin(x*y); x^2+y^2; 3*x-2*y] f = [ sin(y*x)] [ x^2+y^2] [ 3*x-2*y] >> Jf=jacobian(f) Jf = [ cos(y*x)*y, cos(y*x)*x] [ 2*x, 2*y] [ 3, -2]
  • 38. Dogrusal bir dönüsüm durumunda Jacobian oldukça basittir. >> A=[11 -3 14 7;5 7 9 2;8 12 -6 3] A = 11 -3 14 7 5 7 9 2 8 12 -6 3 >> syms x1 x2 x3 x4 >> x=[x1;x2;x3;x4] x = [ x1] [ x2] [ x3] [ x4] >> T=A*x T = [ 11*x1-3*x2+14*x3+7*x4] [ 5*x1+7*x2+9*x3+2*x4] [ 8*x1+12*x2-6*x3+3*x4] T ‘nin Jacobian ‘i >> JT=jacobian(T) JT = [ 11, -3, 14, 7] [ 5, 7, 9, 2] [ 8, 12, -6, 3] The Jacobian of T is A matrisinivermektedir. Adi Diferansiyel Denklemlerin Çözümü ‘dsolve’ komutu kullanilmaktadir. Örnek: ∂y/∂t=-ay diferansiyel denkleminin çözümü >> y=dsolve('Dy=-a*y') y= C1*exp(-a*t) Uygulamada varsayilan degisken t’dir. Ancak problem y=-ay seklinde verilseydi bu durumda degiskenin ne oldugu belirtilmemistir. y(0)=1 baslangiç kosulu verildigini düsünelim. >> y=dsolve('Dy=-a*y','y(0)=1') y = exp(-a*t) C1 katsayisinin kalktigi görülmektedir. Örnek: d2y dy 2 + 3 + y = 0 diferansiyel denklemin çözümü dt dt dsolve('D2y+3*Dy+y=0') ans = C1*exp(1/2*(-3+5^(1/2))*t)+C2*exp(-1/2*(3+5^(1/2))*t) pretty(ans) 1/2 1/2 C1 exp(1/2 (-3 + 5 ) t) + C2 exp(- 1/2 (3 + 5 ) t)
  • 39. ‘Pretty’ komutu ile düzenli basim sekli gelir. Örnek: y(0)=0, y?(0)=1 kosullari altinda y??+4y?+12y=8sin4t ikinci derecden diferansiyel denklemin çözümü r=dsolve('D2y+4*Dy+12*y=8*sin(4*t)','y(0)=0','Dy(0)=1','t') r= -4/17*sin(2*2^(1/2)*t)*sin(2*(2^(1/2)-2)*t)-3/17*sin(2*2^(1/2)*t)*cos(2*(2^(1/2)- 2)*t)*2^(1/2)-7/34*sin(2*2^(1/2)*t)*sin(2*(2^(1/2)- 2)*t)*2^(1/2)+3/17*cos(2*2^(1/2)*t)*sin(2*(2+2^(1/2))*t)*2^(1/2)+7/34*cos(2*2^(1/2)*t)*co s(2*(2+2^(1/2))*t)*2^(1/2)+3/17*cos(2*2^(1/2)*t)*sin(2*(2^(1/2)-2)*t)*2^(1/2)- 7/34*cos(2*2^(1/2)*t)*cos(2*(2^(1/2)- 2)*t)*2^(1/2)+1/17*sin(2*2^(1/2)*t)*cos(2*(2+2^(1/2))*t)+7/34*sin(2*2^(1/2)*t)*sin(2*(2+2 ^(1/2))*t)*2^(1/2)-4/17*cos(2*2^(1/2)*t)*cos(2*(2+2^(1/2))*t)- 4/17*cos(2*2^(1/2)*t)*cos(2*(2^(1/2)-2)*t)- 3/17*sin(2*2^(1/2)*t)*cos(2*(2+2^(1/2))*t)*2^(1/2)- 1/17*cos(2*2^(1/2)*t)*sin(2*(2+2^(1/2))*t)+1/17*cos(2*2^(1/2)*t)*sin(2*(2^(1/2)-2)*t)- 4/17*sin(2*2^(1/2)*t)*sin(2*(2+2^(1/2))*t)-1/17*sin(2*2^(1/2)*t)*cos(2*(2^(1/2)- 2)*t)+8/17*exp(-2*t)*cos(2*2^(1/2)*t)+41/68*exp(-2*t)*sin(2*2^(1/2)*t)*2^(1/2) >> pretty(simple(r)) 1/2 8/17 exp(-2 t) cos(2 2 t) - 2/17 sin(4 t) - 8/17 cos(4 t) 41 1/2 1/2 + -- exp(-2 t) sin(2 2 t) 2 68 M-Dosyalari M-dosyalari olarak ele aldigimiz dosyalar aslinda matlab ortaminda kullanmis oldugumuz komutlardir ve veri analizini saglayan fonksiyonlardir.Bu fonksiyonlar her amaca yeterli olsa da sonuçlara daha hizli ulasabilmek için kendimize özel fonksiyonlar yani yeni M-dosyalari olusturabiliriz.Çesitli yollarla bu M-dosyalarini hazirlayabiliriz.Istersek bir komutlar dizisi sayesinde sonuca ulasiriz istersek de “function” kelimesiyle baslayan bir fonksiyonel dosya olustururuz.Önemli olan bize istedigimiz sonucu kisa zamanda verebilmesi.Simdi de örnek olarak bir M-dosyasi olusturalim: Örnegin kütlesinin ve hizinin degerini girdigimde bana o cismin kinetik enerjisini veren bir M- dosyasi olusturalim.Öncelikle komutlari yazacagim sayfaya girmem gerek.M-dosyasi olusturmak için öncelikle “file “ menüsünden “new” dedigimizde M-file diyecektir.onu seçerek
  • 40. alanimizi olusturmus oluruz.Baska bir yol ise Command Window’da “edit” yazarak olusturmaktir. Asagidaki gibi M-dosyamizi olusturuyoruz: % kütlesi ve hizi verilen bir cismin % kinetik enerjisinin hesabi m=input('Lütfen kütle degerini giriniz(kg)= ') v=input('Lütfen cismin hiz degerini giriniz(m/s)= ') Ek=m*v^2/2 (verilen degerlere göre kinetik enerji hesaplaniyor) Bu komutlari yazdiktan sonra bunu sakliyoruz.Örnegin sayfadaki disket resmine tikladik ve dosya ada olarak kinetik yazdik ve dosyayi saklamis olduk.Simdi de islemlerimizin dogrulugunu test edelim.Command Window’a geçerek kinetik yazdigimizda veya komutlari yazdigimiz sayfadan “debug ” menüsünden “Run” seçtigimizde bakalim neler oluyor: >> kinetikLütfen kütle degerini giriniz(kg)=10m = 10 Lütfen cismin hiz degerini giriniz(m/s)=50 v = 50 Ek = 12500 %************************************** % Hareketli egri için bir örnek r(t)=(2tcost/(t+1),2tsint/(t+1)) % kivrim.m % hold on for T=0:.1:4*pi t=[T T+.1]; plot(2*t.*cos(t)./(t+1),2*t.*sin(t)./(t+1)) axis equal axis([-2 2 -2 2]) axis off pause(.01) end %************************************************* % rastgele sayi üretimi ve sinus üzerine bindirme f1=50 % frekans f2=100 % frekans dt=0.001; max_sure=50; % saniye byt=40; % random sayi buyultme faktoru t = 0:0.001:.255; x = 10*sin(2*pi*f1*t) %+cos(2*pi*f2*t); yy = x + byt*randn(size(t)); subplot(2,1,1) plot((1/dt)*t(1:max_sure),yy(1:max_sure)) xlabel('zaman (milisaniye)') subplot(2,1,2) Y = fft(yy,256);
  • 41. Pyy = Y.* conj(Y) / 256; f = 1000*(0:128)/256; plot(f,Pyy(1:129)) xlabel('frekans (Hz)') %************************************************ %************************************************ % K,re seklinde bir cismin gravite anomalisi ve rastgele gürültü eklenmesi clear all; G=6.6579E-8; s=3000000; d=300; % s=input('kütle='); % d=input('derinlik='); byt=0.008; % rastgele sayi faktoru % kure seklindeki cismin gravite anomalisinin ifadesi % anomaliye rastgele gurultu eklenir. for i=(1:40) tm=s*1E6 td=d*1E2 x(i)=(i-21)*1E4 delg(i)=((G*tm*td)*(1/((x(i)^2+td^2)^1.5)))*1E3; gur=byt*randn(size(i)); gdelg(i)=delg(i)+gur; end; plot(x,gdelg) xlabel('uzaklik km') ylabel('mgal') text(5000,0.2,'leftarrowanomali',... 'FontSize',16) %**************************************************** KAYNAKLAR • MATLAB ILE MÜHENDISLIK SISTEMLERININ ANALIZI VE ÇÖZÜMÜ Prof.Dr. Ibrahim YÜKSEL U.Ü.Makine Mühendisligi Bölümü 1996 • Matlab ve Programlama Dr. Aslan Inan, Papatya • DIFERANSIYEL DENKLEMLER VE UYGULAMALARI Prof. Dr. Mehmet AYDIN Gönül GÜNDÜZ Beno KURYEL Yard. Doç. Dr. Galip OTURANÇ Izmir 1999 • HTTP://WWW.MATHWORKS.COM • HTTP://EDUCATION.MATHWORKS.COM • HTTP://EFE.EGE.EDU.TR/~MATLAB/MATLAB1.DOC