Matlab’de Polinom Tanımlama,Toplama,Çarpma ve Bölme İşlemleri

Bu yazıda Matlab’de polinomların nasıl tanımlandığını ve polinomlar üzerindeki işlemlerden bahsedeceğim.

Polinom Tanımlama

Polinom, belirli sayıda bağımsız değişken ve sabit sayıdan oluşan ifadelerdir. Matematik’te karşımıza sıklıkla çıkan polinomların özellikle kökünü bulma, toplama, çarpma, polinom bölmesi, grafik çizdirme gibi işlemlerini Matlab’de gerçekleşleştirebiliriz. Bunları yapabilmek için ilk önce polinomu tanımlamamız gerekir. Farz edelim ki,

P(x) =a x5 + b x4 + c x3 + d x2 + e x + f

gibi bir polinom olsun. Bu polinomu Matlab’de bağımsız değişkenlerin azalan kuvvetlerine göre katsayılarından oluşan satır vektörü ile tanımlayabiliriz. Açıklamak gerekirse, p = [a  b  c  d  e  f] şeklinde tanımlanır. Örnek olarak: P1(x) = a x5 + b x3 +c x2 + f  gibi bir polinom olsun. Fakat bu polinom Matlab’e  p1= [a  b  c  f] diye tanımlarsak, Matlab’ın anlayacağı polinom  a x3 + b x2 +c x + f  polinomu olur. Çünkü Matlab’de azalan kuvvetlerin sırasıyla katsayıları yazılarak polinom tanımlanır. Bu tarz durumlarda olmayan kuvvetlerin katsayısına satır vektöründe 0 (sıfır) yazılmalıdır. Böylece Matlab, o kuvvetin polinom içinde olmadığını anlar. P(x) polinomu doğru bir şekilde tanımlamak için:

   p1= [a   0   b    c   0   f]  yazmalıyız.

Bir polinomu Matlab’e bu şekilde tanımlanır. Şimdi tanımladığımız bir polinomun kökünü nasıl bulacağımıza bakalım. Bunun için roots( ) komutu kullanılmalıdır. Örneğin P(x) =  x2 –  x + 6  polinomuna bakalım. Öncelikle bu polinomu Matlab’a tanımlayalım. p = [1  -1  6] olarak tanımlayabiliz. roots( ) komutu ile bu polinomun kökleri aşağıdaki gibi bulunur.

INPUT:

>> p = [1  -1  6] 

OUTPUT:
    
 p =
     1    -1     6 INPUT: >> roots(p) OUTPUT: ans = 0.5000 + 2.3979i 0.5000 - 2.3979i
 

 

Toplama

P1(x) = 6 x3 + 5 x2 + 10 x + 4 ve P2(x) = 6 x3 + 5 x2 + 10 x + 4 gibi iki polinomu Matlab’de toplamak isteyelim. Bunun için herhangi bir komut kullanmamıza gerek yok. Öncelikle polinomları Matlab’de tanımlayalım. Ardından “ + ” operatörünü kullanarak iki polinomu toplayalım.

INPUT:

>>p1 = [6  5 10 4]

OUTPUT:

p1 =
      6     5    10     4 INPUT: >>p2 = [4 5 6 7] OUTPUT: p2 =     4     5     6     7 INPUT: >> toplama = p1+p2 OUTPUT: toplama =          10    10    16    11 
 

Bu iki polinom toplandığında sonuç olarak P3(x) = 10 x3 + 10 x2 + 16 x + 11 polinomunu elde ederiz. Burada dikkat etmemiz gereken husus ise topladığımız iki ya da daha fazla polinomun boyutlarının eşit olmasıdır.

Çarpma

Matlab’de polinom çarpımı yapmak için conv( ) komutunu kullanabiliriz. conv() komutu katsayılardan oluşan iki satır vektörünü çarparak elde edilen polinomun katsayılarını verir.

Örnek olarak P1(x) = 4 x2 + 2 x + 2 ve P2(x) = 3 x2 + 5 x + 4 polinomlarını Matlab’de çarpalım.

INPUT:

>> p1 = [4 0 2 2]

OUTPUT:

p1 =
     4     0     2     2 INPUT: >> p2 = [3 5 2] OUTPUT: p2 =     3     5     2 INPUT: >> carpma = conv(p1,p2) OUTPUT: carpma = 12 20 14 16 14 4 %Elde edilen polinom %12x5+20x4+14x3+16x2+14x+4
 

 

Bölme

Polinomal bölme yapmak için deconv( ) komutunu kullanabiliriz. Bunun için aşağıdaki komutu kullanılabiliriz:

[bölüm,kalan] = deconv(bölünen,bölen)

Örnek olarak P1(x) = 3 x2 + 4 x + 2 ve P2(x) = 2 x + 1 polinomları olsun. Polinom bölmesi aşağıda görüldüğü gibi yapılabilir:

INPUT:

>> p1 = [3 4 2]

OUTPUT:

p1 =
     3     4     2 INPUT: >> p2 = [2 1] OUTPUT: p2 =     2     1 INPUT: >> [bolum,kalan] = deconv(p1,p2) OUTPUT: bolum =         1.5000    1.2500 kalan =         0         0    0.7500
 

Bir polinomun köklerini hesaplamak için roots( ) komutunu kullanıyorduk. Bunun tersi olarakta kökleri verilen bir polinomun kendisinide bulabiliriz. Bunu yapabilmek için poly( ) komutunu kullanmamız gerekir. Katsayılarını bulmak istediğimiz polinomun köklerini satır vektörü olarak tanımlamalıyız. Bu satır vektörünü poly( ) fonksiyonuna girdiğimizde aradığımız polinomun katsayılarını elde etmiş oluruz. Örnek olarak -1 ve 1 köküne sahip polinomu elde etmeye çalışalım. Bu işlem aşağıdaki gibi olur:

INPUT:

>>kokler = [-1 1]

OUTPUT:

kokler =
         -1     1 INPUT: >>poly(kokler) OUTPUT: ans =      1     0    -1 %bulunan polinom x2 - 1 polinomu olur.
 

Değer Hesaplama

Bir polinomun içerisine bir değer (x=5 gibi) yazarak hesaplamayı biliyoruz. Fakat bu işlemi Matlab’de yapmak için polyval( ) komutunu kullanmamız gerekir. polyval( ) fonksiyonu ile elemanları verilen bir polinomun sonucunu hesaplayabiliriz. Örnek olarak x=2 için P(x) = x3 + 3 x2 + 6 x + 1 polinomunun sonucunu Matlab’de hesaplayalım. Bu hesaplama işlemi için aşağıdaki işlemler yapılabilir:

INPUT:

>> p = [3 6 1]

OUTPUT:

p =
    3     6     1 INPUT: >> polyval(p,2) OUTPUT: ans =      25
 

Bir sonraki yazıda sizlere Matlab’de polinomların türevlerinin hesaplanmasından ve denklem çözümünden bahsedeceğim.

MTLB9965Q9972BE5Z8

 

Matlab’de Matris İşlemleri

Önceki yazıda sizlere Matlab’de vektörün nasıl tanımlandığından ve vektör üzerinde kullanabileceğiniz birkaç komuttan bahsetmiştim. Bu yazıda ise matrisin nasıl tanımlandığından ve matris üzerinde kullanabileceğiniz birkaç komuttan bahsedeceğim.

Matris Tanımlama

Matlab’de matris [a b c; d e f ; g h j] şeklinde tanımlanır. Matrisin satırlarını ayırmak için “(;), Noktalı virgül” kullanılır. Burada örnek olarak 3×3’lük bir matris tanımladım ama siz ihtiyacınız olan boyutta, matrisi yine bu şekilde tanımlayabilirsiniz.

 A = [1 2 3 ; 4 5 6 ; 7 8 9] biçiminde 3×3’lük bir matris tanımlayalım. Matrisin içerisinden herhangi bir elemana A(satır numarası, sütun numarası) şeklinde ulaşılır. Burada ise A matrisinin içerisinden 5 elemanına A(2,2) yazarak ulaşılabilir. Matris içerisindeki birden fazla elemana ulaşmak da mümkündür. Örnek olarak A(2, 2:3) yazarak çıktı olarak 2. satırın 2. ve 3. sütunlarının elemanları olan [5 6] değerlerini elde ederiz.

>> A = [1 2 3; 4 5 6; 7 8 9]

A = 

    1  2  3
    4  5  6
    7  8  9

>> A(2,2)

ans =

     5

>> A(2,2:3)

ans =
 
     5  6
 

Matrislere Sütun ya da Satır Ekleyip-Çıkarma

Tanımlanılan bir matrisi ihtiyaç duyulduğu taktirde sütun ya da satır şeklinde elemanlar ekleyip çıkarabiliriz. A matrisine x sütunu eklenmek isteniyorsa, [A, x] yazılabilir. Eğer ki y satırı eklenmek isteniyorsa [A; y] yazılması yeterlidir. Örnek olsun diye A matrisi tanımlamıştık. Bu A matrisine x = [10; 11; 12] vektörünü eklemek istersek, [A, x] yazarız. Bir başka vektör olan y = [13 14 15] vektörünü eklemek istersek, [A; y] yazarız.

INPUT:
  >>A = [1 2 3; 4 5 6; 7 8 9]  

OUTPUT:
  A =    1  2  3    4  5  6    7  8  9   

INPUT:
  >>x = [10; 11; 12]  

OUTPUT:
  x =    10    11    12  
 
INPUT:
  >>[A, x] 

OUTPUT:
ans =      1   2   3   10      4   5   6   11      7   8   9  12  
 
INPUT:
  >>A = [1 2 3; 4 5 6; 7 8 9] 

OUTPUT:
   A =    1  2  3    4  5  6    7  8  9 

INPUT:
  >>y = [13; 14; 15]

OUTPUT:
   x =    13 14 15 

INPUT:
  >>[A, y] 

OUTPUT:
 ans =      1   2   3      4   5   6      7   8   9 13 14 15  
  

Matrisin içerisinden satır ya da sütun silinmek isteniyorsa, A(satır numarası, : ) =[ ] veya A(:, sütun numarası) = [ ] yazılabilir. Burada dikkat edilmesi gereken detay ise matrisin tek bir elemanın silinememesidir. Bunun sebebi ise boyut uyumsuzluğunun ortaya çıkmasıdır. Ancak burada matrisin bir elemanını değiştirmek mümkündür. Örnek ile göstermek gerekirse, A[3,2] = 5 yazarsak yeni matrisimiz aşağıdaki gibi olur.

INPUT:
  >> A = [1 2 3; 4 5 6; 7 8 9]  

OUTPUT:
   A =    1   2   3    4   5   6    7   8   9  

INPUT: 
  >> A(1, :) =[ ]  %satır silme   

OUTPUT:
   A = 4 5 6  7 8 9

INPUT:
  >> A(:, 1) =[ ] %sütun silme 

OUTPUT:
   A = 5 6 8 9

INPUT:
  >> A(2,2) = 3 %değer değiştirme 

OUTPUT:
   A = 5 6 8 3
 

Matrisi Yeniden Boyutlandırma

Matlab’de matrislerle işlemler gerçekleştirilirken, matrisin boyutu işlemlerimize uygun olmayabilir ya da herhangi bir sorun olmamasına rağmen matrisin boyutunu değiştirip işlem yapmak isteyebilirsiniz. Bu durumda reshape() komutu kullanılır.

Örnek olarak B = [1 2; 2 5 ; 7 6] şeklinde (3×2)’lik bir matris tanımlansın. B matrisini (2×3) boyutuna getirmek için C = reshape(B, [2 , 3]) yazılması yeterlidir.

>> B = [1  2 ;  2  5 ; 7  6]

B =

   1   2
   2   5
   7   6

>> C = reshape (B,[2,3])

C =

   1   7   5
   2   2   6
 

Matrislerde Temel Bazı Kodlar

zeros komutu: zeros(m,n) şeklinde kullanılır. mxn’lik sıfır matrisi oluşturmaya yarar.

>> zeros(3,3)

ans =

     0   0   0
     0   0   0
     0   0   0

ones komutu: ones(m,n) şeklinde kullanılır. mxn’lik birlerden oluşan bir matris verir.

>> ones(3,4)

ans =

     1   1   1   1
     1   1   1   1
     1   1   1   1

eye komutu: eye(m,n) şeklinde kullanılır. mxn’lik birim matris oluşturur.‏‏‏‏‏

>> eye(3,3)

ans =

     1   0   0
     0   1   0
     0   0   1

rand komutu: rand(m,n), mxn’lik elemanları 0-1 arasında olan bir matris oluşturur. Elemanlar rastgele seçilir.

>> rand(4,4)

ans =

     0.8147   0.6324   0.9575   0.9572
     0.9058   0.0975   0.9649   0.4854
     0.1270   0.2785   0.1576   0.8003
     0.9134   0.5469   0.9706   0.1419

diag komutu: diag(A), köşegeni A matrisinin köşelerinden oluşan diagonal bir matris üretir.

>> A = [1 2 3; 4 5 6; 7 8 9]

A =

   1   2   3
   4   5   6
   7   8   9

>> diag(A)

ans =

     1
     5
     9

det komutu: Bir matrisin determinantını hesaplamak için kullanılır.

>> det(A)
%aynı matris için
ans =

     6.6613e-16

rank komutu: Matrisin derecesini(rank) hesaplamak için kullanılır.

>> rank(A)
ans =
     2

find komutu: Sıfır olmayan elemanların indeks numaralarını verir.

>> find(A)

ans =

     1
     2
     3
     4
     5
     6
     7
     8
     9

trace komutu: Matrisin köşe elemanlarının toplamını hesaplar.

>> trace(A)

ans =

     15

Önceki bölümde belirtilen komutlar matrislerde de kullanılabilir. Bu komutların kullanımları yukarıdaki komutların kullanımlarına benzerdir.

Buraya tıklayarak önceki yazı olan Matlab’de dört işlem ve temel fonksiyonlar yazısına gidebilirsiniz.

MTLB9XB739DUJU9147

 

Python’da Veri Tipleri

String Veri Tipi

String, çift ya da tek tırnak içerisine yazılabilen bir ya da daha fazla harf, sayı veya özel karakterlerden oluşan bir dizidir. Python’da karakter veri tipi bulunmaz. Tırnaklar arasına yazılan her karakter dizenin bir parçasıdır. Bu parçaların indeks numaralarını kullanarak her bir karaktere erişebiliriz. Aşağıda string veri tipinde bir değişken oluşturulmuş ve bir karakterin indeks numarası kullanılarak karaktere ulaşılmıştır.

INPUT:

isim = "Mehmet"

isim[4]   #İndeks numarası 4 olan karakter "e" dir.

OUTPUT:

' e '

Integer Veri Tipi

Pozitif veya negatif tam sayılardan oluşan 32 bit veri tipidir. Python’da bir tam sayı değerinin uzunluğu sistemin sahip olduğu bellek kapasitesi ile sınırlıdır. Ancak bu uzunluktan daha uzun bir sayı tanımlamak bellek kapasitesi yeterli sistemler için mümkündür.

Long Veri Tipi

Çok daha uzun tam sayıları tanımlamak için kullanılan 64 bitlik veri tipidir.

Float Veri Tipi

Ondalık sayılardan oluşan 64 bitlik veri tipidir.

Complex Veri Tipi

a+bj şeklinde gerçek ve sanal kısımdan oluşan kompleks sayıları ifade eden veri tipidir.

List Veri Tipi

List, birbirinden farklı veri tipine sahip ögeleri barındırabilen, sıralı ve değiştirilebilir veri tipidir. Listeler, [ ] arasına yazılan değerler ile tanımlanabilir. Metinsel(string) değerler “ ”(tırnak) içerisinde yazılması gerekirken numerik değerler(int,long,float) normal yazılır. Liste içerisindeki değerler birbirlerinden “ , ” (virgül) ile ayrılır. Burada da bir ögenin indeks numarası kullanılarak ögeye ulaşılabilir hatta değiştirilebilir.

Tuple Veri Tipi

Tuple, list veri tipi gibi sıralı ögelerden oluşan veri tipidir. Tuple ile list arasındaki fark ise tuple’ın değiştirilemez olmasıdır. Tuple ( ) içerisine yazılan değerler ile tanımlanır.

Dictionary (Sözlük) Veri Tipi

Sözlük, veri değerlerini (anahtar:değer) çiftlerinde tutmak için kullanılan veri tipidir. Sözlüklerin içerisindeki içerisindeki çiftler hemen hemen her veri tipinden oluşabilen, sıralanmamış ve değiştirilebilir ögelerdir. Sözlükler { } (süslü parantez) ile yazılırlar. Bir sözlük içerisindeki anahtarların değerlerini tek tek çağırabiliriz.  Ayrıca bu anahtarların tiplerini de sorgulayabiliriz.

Boolean Veri Tipi

Mantıksal bir veri tipi olan boolean, True ve False olmak üzere iki değere sahiptir. Mantıksal olarak doğru olan duruma True, yanlış olan duruma ise False değeri karşılık gelir.

Python’da kod yazarken yukarıdaki veri tiplerine uygun olarak değişkenler tanımlayabilir ya da input( ) fonksiyonunu kullanarak dışarıdan kendimiz bir değişkene değer verebiliriz. Tanımladığımız ya da dışarıdan girdiğimiz değerlerin veri tiplerini değiştirmek mümkündür. Şimdi bu durumları inceleyelim.

String Veri Tipini Integer Veri Tipine Dönüştürme

String veri tipinde bir değişken tanımlayalım:

x = "12345"

Python, x değişkeninin değerini (“ ”) arasına yazıldığından string tipinde algılayacaktır. Bu string tipindeki x değişkenini int( ) fonksiyonunun içerisine yazarsak x değişkeni artık integer tipinde olur.

INPUT:

int(x)

print(type(x))

OUTPUT:

<class 'int'>

Burada dikkat edilmesi gereken husus tanımlanan bu string değerinin her bir karakterinin sayısal olmasıdır. Yoksa bu dönüştürme işlemi gerçekleşmez.

İki adet string tipinde değişken tanımlayalım:

 x = “1”  ve y = ” 2 ” şeklinde olsun. Burada x ve y’yi toplamayı denersek normal toplama işlemindeki gibi 3 değerini elde etmeyiz. String ifadeleri topladığımızda çıktı olarak iki ifadenin yan yana yazılmış halini görürüz.

INPUT:

x = "1"

y = "2"

print(x+y)

OUTPUT:

12

Örnek olarak tanımladığımız x değişkenini 4 değeri ile çarparsak çıktı olarak 4 defa arka arkaya yazılmış 1 rakamını görürüz.

INPUT:


x = "1"

print(4*x)

OUTPUT:

1111

Böylece toplama ve çarpma işlemlerinin string ifadeler için ekleme ve arka arkaya ekleme işlevlerinde kullanılabileceğini görmüş oluruz.

String Veri Tipini Float Veri Tipine Dönüştürme

Karakterleri rakamlardan oluşan string ifadeleri float() fonksiyonu ile float tipine dönüştürebiliriz.

INPUT:

x = "20.21"

y = float(x)

print(type(y))

OUTPUT:

<class 'float'>

Float ya da Integer’dan String’e Dönüştürme

Tanımladığımız sayısal bir değere sahip olan değişkeni str() fonksiyonu ile string tipine dönüştürebiliriz.

INPUT:

x = 10

y = str(x)

print(type(x))

OUTPUT:

<class 'int'>

Boolean Veri Tipini String Ve Integer Veri Tipine Dönüştürme

Boolean, True ve False değerlerine sahip veri tipi olduğunu belirtmiştik. Aşağıdaki örnekte boolean tipinde bir değişkenin integer ve string veri tiplerine dönüştürülmesi gösterilmiştir.

INPUT:

dogru_mu = True

print(type(dogru_mu))

y = int(dogru_mu)

print(type(y))

OUTPUT:

<class 'bool'>

<class 'int'>

ya da

INPUT:

dogru_mu = False

print(type(dogru_mu))

y = str(dogru_mu)

print(type(y))

OUTPUT:

<class 'bool'>

<class 'str'>

Bu tip dönüştürmenin tersi olan integerdan boolean’a ve string’ten boolean’a dönüştürmeyi örnekle gösterelim.

1-

INPUT:

sonuc = " dogru "

print(type(sonuc))

yeni_sonuc = bool(sonuc)

print(type(yeni_sonuc))

OUTPUT:

<class 'str'>

<class 'bool'>

2-

INPUT:

x = 10

print(type(x))

y = bool(x)

print(type(y)) 

OUTPUT:

<class 'int'>

<class 'bool'>

Böylece veri tiplerini ve tip dönüştürmelerini görmüş olduk. Şimdi ise matematiksel işleçlere göz atalım. Bu işleçleri aşağıdaki tablodan inceleyebilirsiniz.

İŞLEÇLERKARAKTER
Toplama+
Çıkarma
Çarpma*
Bölme/
Tam Sayı Bölme//
Mödüler Bölme%
Kuvvet Alma**

Bu işleçlerden faydalanarak birkaç tane problem çözüp konuyu sonlandıralım.

Örnekler

1- Yarıçapı 5 olan bir dairenin çevresini hesaplayınız.

INPUT:

r = 5

pi = 3.14

dairenin_cevresi = 2*pi*r


print("Dairenin Çevresi :{}".format(dairenin_cevresi))

OUTPUT:

Dairenin Çevresi : 31.400000000000002

2- Yukarı doğru v0 hızı ile atış hareketinde, cismin herhangi bir t anındaki yüksekliği -h = v0.t – (1/2) .g.t bağıntısı ile verilir. Yukarı doğru 20 m/s hızla atılan cismin 5 saniye sonra yüksekliğini hesaplayınız. (g = 9.81 m/s2 , π = 3.14 alınız.)

INPUT:

v0 = 10

t = 3

g = 9.81

h = v0*t-(1/2)*g*(t**2)

print("5 saniye sonra yükseklik : {}".format(-1*h))

OUTPUT:

5 saniye sonra yükseklik : 14.145000000000003

3- L uzunluklu bir basit sarkacın periyodu T = 2π(L/g)(1/2) olarak verilir. 5 m uzunluklu sarkacın periyodunu hesaplayınız. (g = 9.81 m/s2 , π = 3.14 alınız.)

INPUT:

L = 5

g = 9.81

pi = 3.14

T = 2*pi*((L/g)**(1/2))

print("Sarkacın Periyodu : {}".format(T))

OUTPUT:

Sarkacın Periyodu : 4.483427405990983

Bir sonraki yazıda Python’da karşılaştırmalar ve döngülerden bahsedeceğim.

PYTN6O05URZXMNUNQC

 

Algoritma ve Akış Diyagramı Örnekleri

Algoritmaya giriş yaparken akış diyagramlarında eşkenar dörtgenlerin karar verici (karşılaştırmalı) durumlarda kullanıldığını ve ana hat itibariyle diyagramlarda temelde kullanılan 6 şekli önceki yazımızda ifade etmiştik. Farklı anlatımlarda farklı sembollerin de kullanıldığını belirterek bu yazıda da akış diyagramlarında karar verici adımların döngülerini ve örneklerini göstereceğim.



Şemsiye Almayı Mıyım Diyagramı Örneği

“Evden çıkarken şemsiye almalı mıyım” sorusu için bir algoritma ve akış diyagramı yapacak olsaydık mantık örgüsüne böyle bir akış diyagramı oluşurdu.

Adım0: Başla

Adım1: Yağmur Yağıyor Mu?

Adım2: Cevap “Evet” ise Adım4’e git

Adım3: Cevap “Hayır” ise Adım9’a git

Adım4: Şemsiye ara

Adım5: Şemsiye buldun Mu?

Adım6: Cevap “Evet” ise Adım8’e git

Adım7: Cevap “Hayır” ise Adım1’e git

Adım8: Şemsiyeyi yanına al ve Adım10’a git

Adım9: Şemsiyeyi yanına alma

Adım10: Bitir

Görüldüğü üzere karşılaştırmalı durumların oluşturduğu döngüyü de her bir adımda belirttik. Bu algoritmanın akış diyagramını yapacak olursak:

Kahve Makinesi Çalışma Diyagramı Örneği

Basit bir kahve makinesinin çalışma mantığını diyagram haline getirecek olursak:

Hastane İşleyiş Diyagramı Örneği

Farklı bir örnekle bir hastanenin işleyiş diyagramını yapacak olsaydık:

Bu örnekte dikkat edilmesi gereken fark her bir kapalı çevrimin bir döngü olduğudur. Örnek olarak Hasta Kayıtlı Mı? sorusu için eğer cevap hayırsa program hasta kaydı isteyecektir. Hasta kaydı girildikten sonra döngünün devamında ise program tekrar hasta kayıt kontrolü yapacak ve artık hasta kayıtlı olduğu için program bir sonraki adımdan devam edecektir. Aksi durumda hasta kaydı yapılmayıp bir sonraki aşamaya geçilmek istendiğinde ise program bu adımda tekrar bir döngü içine girecek ve tekrar hasta kaydı soracaktır.

Acil Yardım Hattı Diyagramı Örneği

Diğer bir örnekte acil yardım hattının işleyiş diyagramını inceleyebiliriz.

Klima Sıcaklık Kontrol Diyagramı Örneği

Bir diğer akış diyagramı örneğinde ise kapalı bir çevrimi gösteren klimanın sıcaklık kontrol diyagramını inceleyelim.

Burada ise farklı olarak veri tabanından daha önce girilen sıcaklık değerini çağırmak için silindir şekli kullanılmıştır.

Daha fazla örneği daha sonra yine buraya ekleyeceğim. Bir önceki yazı olan algoritma ve programlamaya giriş’i henüz okumadıysanız buradan okuyabilirsiniz.

ALGO4778J5DE918DYC
Python ile Temel Programlamaya Giriş

Bir önceki yazıda Python nedir ve hangi alanlarla kullanılır gibi pek çok konudan bahsetmiştim. Bu yazıda ise Python ile temel programlamaya giriş yapacağım. Python ile kod yazarken bir IDE’ye ihtiyaç duyulur. Bir IDE(Integrated Development Environment, Tümleşik Geliştirme Ortamı), yazılım geliştirme için bilgisayar programcılarına kapsamlı olanaklar sağlayan bir yazılım uygulamasıdır. Atom, Pycharm, IDLE, Jupyter, Spyder gibi IDE’leri kullanabilirsiniz. Bu yazıda sizlere örnek olarak göstereceğim kodlar Jupyter tabanlı Google Colab’ta hazırlanmıştır. Google Colab, Python kodlarını yazmaya yarayan, kurulum gerektirmeyen, ücretsiz, birçok kütüphaneyi içerisinde barındıran ve olmayan kütüphaneleri yüklemeye izin veren; web tarayıcıda çalışan ve bilgisayarınızdan GPU ve RAM kullanmayan bir geliştirme ortamıdır.

Google Colab ile ücretsiz olarak Tesla K80 GPU üzerinde uygulamalar geliştirebilirsiniz.  Çalışmalarınız Google Drive’e kaydedebilir ya da Google Drive’ınıza yüklediğiniz bir çalışmayı Google Colab’ta inceleyebilir ve düzenleyebilirsiniz. Google Colab hakkında daha fazla bilgi almak istiyorsanız buraya tıklayarak resmi sayfaya gidebilirsiniz.

Programlama Hataları

Her programlama dilinde olduğu gibi Python’da da çalışırken hata yapmamak mümkün değildir. Bir uygulama geliştirirken yazılan kodlardaki hataları bulmak ve çözmek geliştirme sürecinde en fazla zaman harcanan bölümü olabilir. Yazacağınız en küçük programda bile onlarca farklı hata çıkma ihtimali vardır. Kod yazarken karşımıza çıkabilecek hataların ne tür bir hata olduğunu bilmek hatayı daha kolay çözmemizi sağlayacaktır.

Yazım Hataları

Syntax (söz dizimi), üzerinde çalıştığımız programlama dilinin kendine has program yapısını ve bu yapının kurulmasında kullanılan kuralları ifade eder. Her programlama dilinin yazımı farklıdır. Python derleyicisi yazdığımız kodlarda bir syntax hatası fark ederse programı durdurur ve nerede syntax hatası olduğunu gösterir. Böylece bizler nerede ve ne tür bir hata yaptığımızı görmüş oluruz. Örnek olarak ad = “Mehmet yazarsak Python derleyicisi bize burada bir hata olduğunu söyleyecektir.

ad = "Mehmet

     File "<ipython-input-1-e098e0017e34>", line 1
          ad ="Mehmet
                     ^
SyntaxError: EOL while scanning string literal

Çünkü string bir değişken tanımlanmaya çalışılmış ancak doğru bir şekilde yazılmamıştır. String ifadeler (” “) arasına yazılarak tanımlanır. Doğrusu ad = “Mehmet” şeklinde olmalıdır.

Çalışma Zamanı Hataları

Bu tür hatalar kodların hatalı yazılmasından ziyade beklenilmeyen durumlarda ortaya çıkabilen hatalardır. Örnek olarak, çalışma yaptığımız bir dosya üzerinde düzenleme iznimiz yoksa ya da veritabanında çalışacak kodlar yazmışsak ve veritabanı ile bağlantı kurmamışsak program hata verecektir.

Anlamsal Hatalar

Python’da kod yazarken, yazdığımız kodlar hatasız bir şekilde çalışır ancak istediğimiz sonuçları vermez ve farklı sonuçlar verirse anlamsal hata ortaya çıkmış demektir. Bu tür hatalar farkedilmesi zor hatalardır. Örnek olarak 13 sonucunu elde edeceğiniz 6 + 20/2 işlemini Python kullanarak çözdünüz. Ancak program size 16 sonucunu verdi.  Burada program size bir hata çıktısı vermeyecektir. Çünkü bu durumda işlem önceliği hatası yapılmıştır. Program ilk olarak 20/2 işlemini gerçekleştirir, ardından bu sonuca 6 ekleyerek sonucu elde edip size gösterir. Düşündüğümüz sonucu elde etmek için ise (6+20)/2 şeklinde yazmamız gerekirdi.

Python’da Değişkenler Ve Veri Tipleri

Değişken (variable), girdiğimiz ya da atadığımız bazı değerlerin geçiçi olarak hafızada saklanması için oluşturulan alanlara denir. Bir değişkene herhangi bir değer atamak için “ = ” ifadesi kullanılır. Örnek olarak:

meslek = "Çiftçi"
dogum_yili = 1995
ondalik_sayi = 0.5

Eğer Python’da değişkene değer ataması yapılmazsa hata alınır. Yukarıda tanımlanılan üç değişkenin tipi sırasıyla string, integer ve float’tır. Burada yazılan değişkenleri kod bloğuna yazdığımızda herhangi bir çıktı göremeyiz çünkü herhangi bir komut vermedik. Ekranda çıktı görmek için print() fonksiyonunu kullanmalıyız. Böylece değişkenlerin değerlerini çıktı olarak görebiliriz. Eğer tanımladığımız bir değişkenin tipini görmek istersek type() fonksiyonunu kullanmalıyız.

type(meslek)
str

type(dogum_yili)
int

type(ondalik_sayi)
float

Tanımlanılan değişkenler harf ile başlayabilir, içerisinde sayı ve alt çizgi barındırabilir, büyük-küçük harf barındırabilirken herhangi bir sayıyla başlayamaz ve içerisinde alt çizgi hariç özel karakterler barındıramazlar. Değişken tanımlarken dikkat etmemiz gereken bir diğer hususta değişkenlere ileride hatırlanabilecek anlamlar verilerek tanımlamaktır. Örnek olarak 5 kişinin not ortalamasını hesaplayacak bir program yazmak istiyoruz. Burada ortalamayı hesaplayacak olan işlemi, alakalı bir değişkenin değeri olarak atamamızda fayda vardır.

kisi1 = 10
kisi2 = 50
kisi3 = 70
kisi4 = 85
kisi5 = 60
notlarin_toplami = kisi1 + kisi2 + kisi3 + kisi4 + kisi5
not_ortalamasi = otlarin_toplami/5
print("Notların Toplamı: ", notlarin_toplami)
print("Not Ortalaması: ", not_ortalamasi)

OUTPUT------------------
Notların Toplamı: 275
Not Ortalaması: 55.0

Python’da anahtar kelime olarak belirlenmiş kelimeleri değişken adı olarak kullanamazsınız. Bunlara örnek olarak print, if-else, class, False, none, break, import, while, for gibi kelimeler verilebilir.

Veri Tipleri

Python’da bulunan başlıca veri tipleri aşağıdaki gibidir:

  • String veri tipi (Metinsel veri tipi)
  • Integer veri tipi (Sayısal veri tipi)
  • Long veri tipi   (Sayısal veri tipi)
  • Float veri tipi (Sayısal veri tipi)
  • Complex veri tipi (Sayısal veri tipi)
  • List veri tipi
  • Tuple veri tipi
  • Dictionary veri tipi

Yukarıda sıralanan veri tiplerinden bir sonraki yazıda detaylı olarak bahsedeceğim.

 

PYTN0FBN4Y72459ALA

 

Matlab’de Dört İşlem ve Temel Fonksiyonlar

Önceki yazıda Matlab’de programlamaya giriş yapılmıştı. Bu yazıda ise Matlab içerisinde dört işlem, matematiksel fonksiyonlar ve vektör tanımlama gibi konulardan bahsedeceğim. İyi çalışmalar.

Matlab’de Dört işlem ve Uygulamalar

Her programlama dilinde olduğu gibi Matlab’de de dört işlem yapmak mümkündür. Bunun için işlem yapılacak sayıları ve işlemin operatörünü yazarsak, Matlab işlemin sonucunu hesaplayıp bize çıktı olarak verecektir. Kullanılan matematiksel operatörler :

        (+) = Toplam       (-) =  Çıkarma       (/) =  Bölme        (*) = Çarpma

Burada dikkat edilmesi gereken bir husus da işlem önceliğidir. Matematikte bilinen dört işlem önceliği burada da aynı şekilde geçerlidir. Basitçe örnekleyecek olursak:

Matematiksel Fonksiyonlar

Matlab’de kullanılmak istenen fonksiyonun ismi yazılıp, parantez içerisine parametleri verilerek fonksiyon kullanılabilir.

Trigonometrik Fonksiyonlar

Derece cinsinden Trigonometrik fonksiyonlar aşağıdaki tabloda verildiği gibi kullanılır.

Birkaç trigonometrik fonksiyon örneği:

 

 

Kuvvet Alma Fonksiyonu

Matlab’de bir ifadenin kuvvetini alabilmek için power() komutu kullanılır. Komutun kullanımı power(taban, kuvvet) şeklindedir. power() komutunu kullanmadan  “ ^ ”  sembolünü kullanarak bir ifadenin kuvvetini hesaplanabilir. Örnek olarak:

Üstel Fonksiyonlar

Tabanı euler sayısı olan fonksiyonlar mühendislikte sıklıkla kullanılır. ex fonksiyonunu hesaplamak için, Matlab’de özel bir komut olan exp( ) komutu kullanılır. Örnek olarak :

Karekök Fonksiyonu

Matlab’de karekök hesaplamak için iki yöntem kullanılır. Bunlardan ilki sqrt() fonksiyonunu kullanmaktır. Bu fonksiyon içine yazılacak ifadenin karekökünü hesaplar. İkinci yöntem ise kuvvet almaktır. Burada power() fonksiyonu ya da “ ^ ” sembolü aynı sonucu verecektir.

Örnek olarak:

Logaritmik Fonksiyonlar

Matlab’de hesaplanmak istenen logaritmik ifade e, 2 veya 10 tabanında ise aşağıdaki tabloda yer alan komutları kullanılabilir.

Eğer Matlab’de hesaplanmak istenen logaritmik ifadenin tabanı e, 2 ve 10 ‘dan farklıysa aşağıdaki gibi logaritma hesaplanabilir.

Komutları İç İçe Kullanma

Matlab’de hesaplama yapmak için kullanılan fonksiyonlar iç içe yazılarak kullanılabilir. Bu özellik hesaplamalarda büyük bir kolaylık sağlar. Örnek olarak :

Vektör Tanımlama

Tek boyutlu sayı dizilerine, tek satırdan oluşan ya da tek sütundan oluşan matrislere vektör denir. Matlab’de vektörler kullanılarak işlem yapmak mümkündür. Bunun için ilk önce vektörlerin tanımlanması gerekir.

A = [ 1 5 9 11] şeklinde bir A vektörü tanımlanabilir. Bu bir satır vektörüdür. Çok fazla elemana sahip vektörleri böyle tanımlamak kolay olmaz. Bunun için başka bir vektör tanımlama yöntemi kullanılabilir.

     :     b    :       c

a:  Başlangıç değeri,   b:  Artış,   c: Bitiş değeri

Bu yöntemle başlangıçtan bitişe kadar artış miktarına göre matlab kendisi bir vektör oluşturur. Örnek olarak:

0 : 1 : 10

Böylece çok fazla elemana sahip vektörler kolaylıkla tanımlanabilir.

Temel Komutlar

sort ( ) komutu: Verilen vektörün elemanlarını küçükten büyüğe doğru sıralar.

length ( ) komutu: Verilen vektörün uzunluğunu hesaplar.

linspace ( ) komutu: Girilen iki değer arasında, istenilen üçüncü bir değer kadar, eşit aralıklı bir vektör oluşturur.

sum ( ) komutu: Girilen vektörün elemanlarının toplamını verir.

prod ( ) komutu: Girilen vektörün elemanlarının çarpımını verir.

max ( ) komutu: Girilen vektörün elemanlarının arasından en büyük olanı verir.

min ( ) komutu: max() komutuna benzer olarak girilen vektörün elemanlarının arasında en küçük olanı verir.

mean ( ) komutu:  Girilen vektörün elemanlarının ortalamasını verir.

 

MTLB07677DGLYM3W6N
Algoritma Nedir? Program Nedir? – Programlamaya Giriş

Bu yazıda algoritma ve program nedir, akış şemaları nedir bundan bahsederek programlaya giriş yapacağım.

Algoritma Nedir?

Algoritma, yapılmak ve yaptırılmak istenen bir işlemin, adım adım sıralanarak işlem basamaklarına bölünmesidir. Algoritmaların belirli şartları sağlamaları gerekmektedir:

concepts of programming languages - Guide For New Programmers
  • Her algoritmada mutlaka bir girdi bulunmalıdır.  
  • Girdiye karşılık olarak algoritma sonucunda mutlaka bir çıktı elde edilmelidir.
  • Algoritma her basamağında açıklık ilkesine uymalı ve okuyana net bir karar verdirmelidir.
  • Çıktıya ulaştıran algoritma belirli bir basamak sayısına sahiptir.

Algoritma, kısaca bizim bilgisayara yaptıracağımız işlerin sıralı olarak nasıl yapılacağını listeleme biçimidir.

Örnek olarak, kenar uzunlukları kullanıcı tarafından girilen bir dikdörtgen prizmanın hacmini hesaplamak istediğimizi varsayalım.

Bunun için yazmamız gereken algoritma, her adımı numaralandıracak olursak:

Adım0: Başla

Adım1: Kısa kenar, uzun kenar, yükseklik ve hacim değerlerini tanımla

Adım2: Kısa kenarın uzunluğunu oku

Adım3: Uzun kenarın uzunluğunu oku

Adım4: Yükseklik uzunluğunu oku

Adım5: Sayıları çarp ve hacim değerine ata

Adım6: Hacim değerini görüntüle

Adım7: Dur

şeklinde olacaktır.

Görüldüğü üzere her adımda yazacağımız programın ne yapması gerektiğini belirleyerek hem yazan kişi için hem de programın işlemleri doğru olarak yerine getirebilmesi için belirli bir mantıksal olay örgüsü kurmuş olduk.

Peki bahsettiğimiz program nedir, programların mantığı nasıl çalışır önce onu bir inceleyelim.

Program nedir?

Bir problemin, çeşitli makine dilleri kullanılarak bilgisayar ve bilgisayar mantığında çalışan cihazlara, onların anlayabileceği şekilde işlenmesine programlama, bunun sonucunda oluşan belirli bir çalışma algoritmalarına sahip kodlara (yazılımlara) ise program denir. Bir veya birden fazla algoritma dizilerinin birleşimi bir programı oluşturur. Bu programlar, programlama dili olarak adlandırılan, makinelerin çalışma mantığına uygun olarak oluşturulan iletişim dilleri ile yazılır. Programlama dillerine ve programlama dillerinin tarihine daha sonra detaylı olarak değineceğim.

Örnek olarak yukarıda bahsettiğimiz algoritma örneğini programa dönüştürecek olsaydık.

C++ programlama dili kullanarak:

#include<iostream>
using namespace std; 
int main(){
int kisaKenar, uzunKenar, yukseklik, hacim;
cin >> kisaKenar;
cin >> uzunKenar;
cin >> yukseklik;
hacim=kisaKenar*uzunKenar*yukseklik;
cout <<hacim<<endl;
}

şeklinde olacaktır.

Aynı algoritmayı Java dilini kullanarak programa dönüştürecek olursak:

import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double kisaKenar = input.nextDouble();
double uzunKenar = input.nextDouble();
double yukseklik = input.nextDouble();
double hacim = kisaKenar*uzunKenar*yukseklik;
System.out.println("Hacim: "+hacim);
     }
}

şeklinde olacaktır. Görüldüğü üzere 2 farklı programlama dili ile aynı algoritmayı kullanarak hacim hesabı yapmak mümkündür.

Akış Diyagramları Nedir?

Algoritmaların daha iyi anlaşılabilmesi için belirli şekillerle çizilmelerine akış diyagramı denir.

Akış diyagramları oluşturulmadan önce:

  • Algoritmanın adımları belirlenmeli,
  • Her adım için kullanılacak şekiller belirlenmeli.   

Yukarıda vermiş olduğumuz algoritma için akış şeması yazacak olursak:

şeklinde olacaktır.

Bu yazıda algoritma ve programlaya giriş yaptık, akış diyagramları ve algoritma ile ilgili örneklere ise buradan ulaşabilirsiniz.

ALGO1W69O39TC88429

 

Matlab Nedir? Matlab’de Temel Programlama

Bu yazıda sizlere günümüzde yaygın bir şekilde kullanılan Matlab programlama dilinden bahsedeceğim. Genel olarak Matlab nedir, kullanım yerleri nelerdir, Matlab çalışma ortamına ait bazı komutlar ve belli başlı komut işaretlerinden bahsedeceğim. Keyifli okumalar.

Matlab nedir?

MATLAB(Matrix Laboratory), 1985 yılında C.B Moler tarafından matematik ve matris esaslı matematik işlemleri için kullanılmak üzere geliştirilmiş programlama dilidir. Matlab temel olarak C dilinde yazılmıştır.

Cleve Barry Moler, Matematikçi, MathWorks kurucusu

Temel bilimler ve mühendislik alanlarında; sayısal hesaplama, veri çözümleri ve grafik işlemlerinde kullanılır.

Matlab’in fonksiyon kütüphanesi sayesinde diğer programlama dillerine göre daha az komutla işlem yapmak mümkündür. Matlab, M-dosyaları adı verilen çok sayıda fonksiyon dosyalarından oluşur. M-dosyaları, ASCII formatında olup, Matlab programlama dili kodlarından oluşmaktadır.

Matlab, matematik ve mühendislik uygulama alanlarında oldukça yaygın bir şekilde kullanılır.

Matlab’in kullanıldığı başlıca alanlar:

  • Matematiksel hesaplama işlemleri
  • Veri Analizi
  • Algoritma Geliştirme
  • Makine Öğrenmesi
  • Derin Öğrenme
  • Simülasyon
  • 2 Boyutlu ve 3 Boyutlu Grafik Çizme
  • İstatistiksel Hesaplamalar

Çalışma ortamına ait bazı komutlar

Demo Komutu: Matlab’in versiyon yeniliklerini öğrenmek için Demo komutu kullanılabilir.

Quit ve exit komutları: Matlab ortamından çıkmak için kullanılan komutlardır.

Save ve load komutları: Matlab’deki çalışmalarınızı kaydetmek ve yüklemek için kullanılan komutlarıdır.

clc komutu: Komut ekranını temizlemek için kullanılır.

clear ve pack komutları: Matlab’de çalışırken tanımlanan değişkenler ve fonksiyonlar normal olarak bellekte yer tutarlar. Tanımlanan değişken sayısı arttıkça bellekte daha fazla yer tutulur.Bu durumda küçük bilgisayar sistemlerinde bellek sorunu(Out Of Memory) ortaya çıkabilir. Çalışmanız devam ederken tanımlanan değişken ve fonksiyonlar silinmek isteniyorsa clear komutunu kullanılmalıdır. Bu komut kullanıldıktan sonra önceden tanımlanan değişkenler ve fonksiyonlar yeniden tanımlanmazsa kullanılamazlar.

Çalışmanızı sürdürürken tanımlanan değişkenleri farklı yerlerde kullanmaya devam ediyorsanız ve aynı zamanda bu değişkenlerin bellekte çok yer kaplamasını istemiyorsanız Pack komutu kullanılmalıdır. Pack komutu bilgileri gereken en küçük alana sıkıştırarak bellekte yer açar.

İcranın sona erdirilmesi: Özellikle sonsuz döngü yaratıldığında, döngünün sonlandırılması ya da yapılan herhangi bir işlemin kesilmesi için Ctrl+C tuşları kullanılabilir.

Casesen off, casesen komutları: Matlab’de büyük ve küçük harf duyarlılığı vardır. Örneğin “Date” ve “date” değişkenleri farklı değişkenlerdir. Harf duyarlılığını ortadan kaldırmak için casesen off , aktif etmek için casesen komutları kullanılabilir.

Who, whos, what komutları: who komutu kullanıcı tarafından tanımlanan değişkenlerin listesini verir. whos komutu ise değişkenlerin boyutlarını ve sıfırdan farklı olan sanal kısımlarının olup olmadığını gösterir. what komutu ise mevcut M-dosyalarının listesini verir.

Help komutu: Matlab’de çalışırken bazı konularda yardıma ihtiyaç duyulabilir. Bu durumlarda help yardımistenenkonu komutu kullanılarak yardım alabilirsiniz. Burada yardımistenenkonu yerine sorunun adı gelmelidir.

Matlab’de kullanılan belli başlı komut işaretleri

Köşeli parantez [ ]: Matlab’da matris ve vektör tanımlamak için kullanılır. Örnek olarak:

INPUT:

>> %MATRİS TANIMLAMA

>> B = [7 8 9; 11 12 13; 14 15 16]

OUTPUT:

B =    
     7    8    9    
     11   12   13    
     14   15   16

INPUT:

>> %VEKTÖR TANIMLAMA

>> A = [1 2 3 4 5]

OUTPUT:

A =
    1   2   3   4   5

 

Virgül (,):  Matris indislerini ve fonksiyon argümanlarını ayırmak için kullanılır.

Noktalı Virgül (;): Yazılan kodların sonuçlarının ekranda görüntülenmesini engeller. Ayrıca matrislerde satırları sona erdirmek için de kullanılır.

INPUT:

>> A = [3 5 7 9]

OUTPUT:

A =
    3   5   7   9

>> B = [3 5 7 9];
>>

Yüzde işareti (%): Yüzde işareti yorum satırı için kullanılır. Örnek olarak:

INPUT:

>> %Matlab'de yorum satırı.

OUTPUT:

>>

Tırnak işareti (‘): Tırnak işareti matrislerin transpozesini, (.’) işareti ise eşlenik olmayan transpozesini bulmayı sağlar.

INPUT:

>> A = [1 2 3 4; 5 6 7 8; 9 10 11 12]  %A matrisini tanımlayalım

OUTPUT:

A = 
    1   2   3   4
    5   6   7   8
    9   10  11  12

INPUT:

>> A' %A matrisinin transpozesini bulalım.

OUTPUT:

  1    5    9
  2    6    10
  3    7    11
  4    8    12  

Toplama ve Çıkarma (+,-): En az iki matrisi toplamak ya da çıkarmak için kullanılır. İşlemlerin gerçekleştirilebilmesi için matrislerin aynı boyutta olması  ya da matrislerden en az birinin skaler nitelikte olması gerekir.

Hatasız Çıktı

INPUT:

>> X = [1 2 3;4 5 6; 7 8 9]   %X matrisini tanımlayalım.

OUTPUT:

X = 
    1   2   3
    4   5   6
    7   8   9

INPUT:

>> Y = [10 11 12;13 14 15;16 17 18] %Y matrisini tanımlayalım.

OUTPUT:

Y = 
    10   11   12
    13   14   15
    16   17   18

INPUT:

>> X + Y %X ve Y matrislerini toplayıp, sonucunu verecek.

OUTPUT:

       11   13   15
       17   19   21
       23   25   27

INPUT:

>> X - Y %X matrisinden Y matrisini çıkarıp, sonucunu verecek. 

OUTPUT: 
     
       -9   -9   -9 
       -9   -9   -9 
       -9   -9   -9 

Hatalı Çıktı

INPUT:

>> X = [1 2 3;4 5 6]

OUTPUT:

       1    2    3
       4    5    6

INPUT:

>> Y = [7 9;10 11]

OUTPUT:

Y =

    7     9
    10   11 

INPUT:

>> X + Y %Matrislerin boyu aynı olmadığından hata alacağız.

OUTPUT:

Matrix dimensions must agree.

 

Çarpma (*): X*Y , X ve Y matrislerinin çarpımında kullanılır. X  ve Y’den en az biri skaler değilse, X’in sütun sayısı Y’nin satır sayısına eşit olmalıdır.

INPUT:

>> X = [5 7 3;6 8 5;12 2 9]

OUTPUT:

       5     7    3
       6     8    5
       12    2    9

INPUT:

>> Y = [2 5;8 6;4 7]

OUTPUT:

Y =
   
    2   5
    8   6 
    4   7 

INPUT:

>> X * Y

OUTPUT:

       78     88 
       96    113
       76    135

INPUT:

>> %X'in sütun sayısı ile Y'nin satır sayısı aynı. 

inv() komutu: Bir matrisin tersini bulmak için kullanılır.

INPUT:

>> A = [10 15 20;5 8 9;1 3 4]

OUTPUT:

A = 
    10   15   20 
     5    8    9
     1    3    4

INPUT:

>> inv(A) %A matrisinin tersi bulunur.

OUTPUT:

       0.2000      0    -1.0000
      -0.4400   0.8000   0.4000
       0.2800  -0.6000   0.2000

Bölme (/), (\): Sağdan ve soldan bölme olarak ikiye ayrılır. X\Y, Y matrisinin X matrisine bölümüdür. Bu da inv(X)*Y ile aynıdır. X/Y ise X matrisinin  Y matrisine bölümünü ifade eder. Bu da inv(Y)*X ile aynıdır.

INPUT:

>> A = [1 5 7;4 3 2;9 10 6]

OUTPUT:

A = 
    1    5    7
    4    3    2
    9    10   6

INPUT:

>> B = [7 8 11;3 17 21;19 23 29]

OUTPUT:

B = 
    7    8    11
    3   17    21
   19   23    29

INPUT:

>> inv(B)*A %Böylece A/B hesaplanır.

OUTPUT:

       0.3377    0.3377    0.0088
       3.2368   -1.7632   -6.5263
      -2.4781    1.5219    5.3772
  

Kuvvet alma (^): Matrislerde kuvvet almak için kullanılır. C=A^B ifadesinde, B eğer skaler ise tekrarlı çarpma yolu ile sonuç hesaplanır. Eğer A skaler ve B matris ise hesaplama işlemi özdeğerler ve özvektörler kullanılarak hesaplanır. A ve B matris ise hata olur.

INPUT:

>> B = [7 8 11;3 17 21;19 23 29]

OUTPUT:

B = 
    7    8    11
    3   17    21
   19   23    29

INPUT:

>> B^2 %B matrisinin 2.kuvvetini hesaplayacağız.

OUTPUT:

       282    445    564
       471    796    999
       753   1210   1533

Son olarak,

< ’ ,  ’<= ’  : küçük, küçük eşit işlemcisi,

‘ > ’ ,  ‘ > = ’  : büyük, büyük eşit işlemcisi,

‘ = ’  : Atama işlemcisi,

‘ == ’  : Mantıksal eşittir işlemcisi,

& ‘ : Mantıksal “ ve” işlemcisi,

‘ | ’ :  Mantıksal “veya ” işlemcisi olarak kullanılır.

 

Matlab’de kullanılan komutlar ve temel fonksiyonlar ile ilgili olan yazıma buradan ulaşabilirsiniz.

MTLBO7JP18125YD368

 

Python Nedir? Kullanım Alanları ve Avantajları Nelerdir?

Bu yazıda sizlere günümüzde bir çok alanda kullanılan ve popüler bir dil olan Python’dan bahsedeceğim. Genel olarak Python nedir, hangi alanlarda kullanılır, kütüphaneleri nelerdir, öğrenme zorluğu nedir? gibi sorulara yanıt bulabilirsiniz. Keyifli okumalar.

Guido van Rossum – Oscon Konferansı, 2006

Python Nedir?

Python 1990 yılında çıkış yapan ve Guido van Rossum tarafından geliştirilen nesne yönelimli, yorumlamalı ve etkileşimli yüksek seviyeli bir dildir.

Python, ismini Guido van Rossum’un çok sevdiği MonthyPython isimli bir komedi grubunun Monty Python’s Flying Circus gösterisinden alır.

Programlama dilleri, insanlar ve makineler arasında bir köprüdür. Bir programlama dilinin makine mantığına yakın olması insanlar tarafından daha zor anlaşılması anlamına gelir. Bu tarz programlama dillerine düşük seviyeli programla dili denir. Assembly dili buna bir örnektir. Yüksek seviyeli diller ise insan mantığına daha yakındır ve bu da bizim bu dili daha kolay anlayabileceğimiz ve kullanabiliceğimiz anlamına gelir.

Python, ABC programlama diline alternatif olarak tasarlanmıştır. Python 1.0 sürümü Ocak 1994, 2.0 sürümü 16 Ekim 2000 ve son olarak 3 Aralık 2008 tarihinden itibaren 3.x serisi yayınlanmaya başlamıştır.

Python Hangi Alanlarda Kullanılır?

Python dilinin kullanıldığı pek çok çalışma alanı vardır. Bunlardan hangisine yönelmek isteyeceğiniz sizin ilginize ve merakınıza bağlıdır.

1. Web geliştirme

Python ile web geliştirmesi yapabilir ya da web sitesi oluşturabilirsiniz. Django ve Flash gibi yazılım iskeletleri’ni(framework) kullanarak sunucuda çalışan Back-End kodları yazabilirsiniz.

2. Veri bilimi

Python makine öğrenmesi, veri analizi ve veri görselleştirme alanlarında kullanılır. Bu alanlarda çok büyük miktarda veriler toplanır, analiz edilir ve işlenir.

Veri bilimcilerin topladıkları çok büyük miktardaki veriler başlangıçta işlenmemiş haldedir. Elde edilen verilen işlenmesi ve analizi için Numpy, Pandas kütüphanelerinden faydalanırlar.

Pandas kütüphanesi sayesinde R gibi istatistik programlarına ihtiyaç duymadan veriler analiz edilebilir.

Numpy bilimsel hesaplamaların hızlıca yapılabildiği basit ve kullanışlı bir matematik kütüphanesidir. Toplanılan, işlenip ve analiz edilen verilerin görselleştirilmesi için Matplotlib ve Seaborn kütüphaneleri kullanılabilir.

Makine öğrenmesinde Pandas, Numpy ve Matplotlib kütüphanelerinin yanı sıra Scikit-learn kütüphanesi de kullanılır. Scikit-learn kütüphanesi sınıflandırma, kümeleme, regresyon ve boyutsallığın azaltılması gibi özelliklere sahiptir.

3. Oyun geliştirme

Python ile insanların çok seveceği ve saatlerce oynayacağı oyunlar yaratabilirsiniz. Oyun endüstrisinde her ne kadar C++, JAVA, C# gibi diller kadar popüler olmasa da Python ile de oyun yazılabilir. Örnek vermek gerekirse günümüzde popüler oyunlardan olan Battlefield 2 ve Civilization IV’de Python dilinden faydalanılmıştır.

Siz Python ile oyun yazarken Pygame, PyKyra, Pyglet, PyOpenGL ve Panda3D gibi kütüphaneleri kullanabilirsiniz.

Yukarıdaki başlıkların haricinde masaüstü arayüz uygulamaları, ağ programlama, sistem yönetimi, yapay zeka ve veritabanı gibi alanlarda Python kullanılır.

Python’ın Avantajları

  • Python açık kaynak kodlu ve ücretsiz bir programdır.

  • Derlemeye gerek yoktur, yorumalı bir dildir.

  • Çok sayıda kütüphane ve fonksiyonlara sahiptir.

  • Kod yazması kolaydır. Başkalarının yazdığı kodlar daha bir şekilde anlaşılır.

  • Farklı platformlarda çalışabilir(Windows, Linux, Mac, vb.).

  • Diğer programlama dillerine göre daha hızlı kod yazılabilir. Bu da zaman yönetimini kolaylaştırır.

Python Kütüphaneleri

Python’da çok sayıda kütüphane ve fonksiyon olduğundan bahsettik. Bu kütüphanelerin sayısı ve işlevi kullanacağınız alanlara göre  değişmektedir. Bu konuya daha sonra detaylı olarak değineceğim. Ancak buradan, Python’ın resmi websitesine giderek standart kütüphane ve fonksiyonları inceleyebilirsiniz.

Python Kullanan Önemli Şirketler

Python’ın çok kullanışlı bir programla dili olmasından dolayı günümüzde büyük şirketler tarafından oldukça tercih edilmektedir.

Bunlar arasında Google, Youtube, BitTorrent, CERN, NASA, Reddit, Zope gibi büyük markalar yer almaktadır.

Python Geliştirme Ortamları(IDE)

Python kullanarak kodlama yaparken kullanabileceğiniz ücretli ve ücretsiz IDE’ler mevcuttur. Ben size ücretsiz olan IDE’lerden bahsetmek istiyorum.

*Herhangi bir önem sırasından bağımsız olarak;

1. Jupyter, 2. Pycharm, 3. IDLE, 4. Spyder, 5. Atom, 6. Eric Python, 7. Thonny, 8. PyDev

Python Öğrenme Zorluğu

Yazının yukarıki kısımlarında da bahsettiğim gibi Python kolay öğrenilebilen, basit, anlaşılır ve sade bir dildir. Bu özellikler Python’ı diğer dillere göre daha avantajlı kılmaktadır.

Yazımı bitirmeden önce sizlere Python ve diğer diller ilgili örnek bir kod bloğu paylaşmak istiyorum.

C++
int main()
(
    printf("Merhaba Dünya");

    return 0;
}
C#
using System;
class MerhabaDunya {
  static void Main() {
    Console.WriteLine("Merhaba Dünya");
  }
}
JAVA
public class Main
{
	public static void main(String[] args) {
		System.out.println("Merhaba Dünya");
	}
}
Python
print('Merhaba Dünya')
PYTN543LSZ03YY221R