Düğümler, Elemanlar, Serbestlik Derecesi ve Sınır Koşulları

Kısaca hatırlamak gerekirse; kompleks mekanik sistemleri veya yapıları analiz etmek söz konusu olduğunda, mühendisler ve bilim insanları genellikle bu sistemleri basitleştirilmiş bir şekilde temsil eden matematiksel modellere dayanırlar.

Modelleme dünyasında, düğümler, elemanlar ve serbestlik dereceleri doğru ve verimli modeller oluşturmada önemli bir rol oynayan temel kavramlardır.

Düğümler

Düğümler, temel olarak bir model oluşturmak için bir araya getirilen elemanların bağlandığı noktalardır. Başka bir deyişle, sistem veya yapıların farklı bileşenlerinin birbirine bağlandığı fiziksel konumları temsil ederler.

Elemanlar

Elemanlar, farklı geometrik şekillere sahip olabilirler ve farklı tiplerde sınıflandırılabilirler. Bunlar arasında çubuk elemanlar, düzlem elemanlar ve kabuk elemanlar bulunur.

2 boyutlu ve 3 boyutlu değişen sayılarda düğümlere sahip eleman tipleri

Çubuk elemanlar (rods, bars, poles, beams), silindirik veya dikdörtgen prizma gibi basit geometrik şekillere sahiptir ve iki düğüm arasındaki bağlantıyı temsil eder. Genellikle yapılarda çerçeve veya kirişlerin modellenmesinde kullanılırlar. Makine elemanı olarak ise kafes (truss) yapılarda karşımıza çıkar.

Düzlem elemanlar (plates), ince bir düzlem şekline sahiptir ve düzlem gerilmeleri modeller. Bu elemanlar, genellikle levhalar, duvarlar, plakalar veya tabakalar gibi yapı bileşenlerinin modellenmesinde kullanılırlar. Düzlem elemanlarının örnekleri arasında üçgen veya dikdörtgen şeklinde elemanlar yer alabilir. Kabuk elemanlar (shells), üç boyutlu yüzeylere sahip elemanlardır. Kabuk elemanları, çatılar, kubbe veya silolar gibi çeşitli yapı bileşenlerinin modellenmesinde kullanılır. Kabuk elemanlarının örnekleri arasında küresel, silindirik veya konik şekilli elemanlar yer alabilir.

Sonlu elemanlar analizi yapılan bir ağ örgüsü oluşturulmuş materyal üzerinde düğüm ve eleman gösterimi. kaynak

Bu eleman tipleri, modellemede kullanılan farklı geometrik şekillere sahip elemanları ifade etmektedir. Farklı eleman tiplerinin seçimi, yapı bileşenlerinin gerçekçi bir şekilde modellenmesine ve doğru sonuçlar elde edilmesine yardımcı olur.

Serbestlik Derecesi

Serbestlik derecesi (degrees of freedom), bir elemanın hareket edebileceği veya dönebileceği yolları ifade eder. Bunlar dönme (rotation) ve öteleme (translation) hareketi olarak ifade edilebilir. Bir elemanın her bir serbestlik derecesi, bir düğümün konumundaki değişime bağlıdır. Bir elemanın serbestlik derecesi, elemanın bir düğüme bağlanabilecek en fazla sayıda hareket derecesini belirler.

Her elemanın farklı sayıda serbestlik derecesi olabilir. Örneğin, bir çubuk elemanının iki serbestlik derecesi vardır: öteleme ve dönme. Bir düzlem elemanının üç serbestlik derecesi vardır: iki düzlemdeki gerilme ve düzlemler arasındaki kayma. Kabuk elemanlarının ise altı serbestlik derecesi vardır: x, y ve z eksenlerindeki hareket ve x, y ve z eksenlerindeki dönme hareketleri.

Serbestlik dereceleri, yapının davranışının anlaşılması ve modellenmesi için önemlidir. Bu kavramın doğru anlaşılması, yapıların analizinde ve tasarımında önemli bir rol oynar. Farklı disiplinlerde serbestlik dereceleri farklı formlar halinde olabilir. Örneğin katı mekaniğinde bir elemanın serbestlik derecesi yer değiştirme (displacement), dönme (rotation) olarak ifade edilebilirken; ısı transferi veya termal analiz söz konusu olduğunda serbestlik derecesi sıcaklık (temperature) olur.

Çeşitli eleman tipleri için eksenel hareket serbestisi örnekleri


Sınır Koşulları

Sınır koşulları, bir yapı elemanının veya bir makine elemanının hareketinin sınırlandığı yerlerde belirlenen koşullardır. Mekanikte sınır koşulları, bir elemanın yerleştirildiği ve diğer elemanlarla olan etkileşimini tanımlayan önemli bir konudur. Sınır koşulları, elemanların hareketine, deformasyonuna ve gerilimine etki eder ve doğru bir şekilde tanımlanmadığı takdirde yapı elemanlarının davranışı yanlış yorumlanabilir.

Sınır koşulları, üç temel tiptedir: sabitlenmiş sınır koşulları, hareketli sınır koşulları ve yük sınır koşulları.

Sabitlenmiş sınır koşulları

Sabitlenmiş sınır koşulları, bir elemanın hareketinin tamamen sınırlandığı koşullardır. Bu koşul, elemanın yer değiştirmesi veya döndürülmesi gibi herhangi bir hareketini engeller. Bu tip sınır koşulları genellikle yapının temelinde veya sabitlenmiş bir duvarda bulunur.

Hareketli sınır koşulları

Hareketli sınır koşulları, bir elemanın hareketinin kısmen sınırlandığı koşullardır. Bu koşullar, elemanın yer değiştirme veya döndürülmesini belli bir dereceye kadar engeller, ancak elemanın kalan hareketi serbesttir. Bu tip sınır koşulları, bir elemanın bir diğer elemana veya bir yapıya sabitlenmesinde kullanılır.

Yük sınır koşulları

Yük sınır koşulları, bir elemanın üzerine uygulanan yükün etkisini belirler. Bu koşullar, elemanın deformasyonuna ve stresine etki eder. Elemanın deformasyonu, elemanın üzerindeki yükün büyüklüğüne bağlıdır ve yük arttıkça elemanın deformasyonu da artar.

Sınır koşulları, yapı elemanlarının doğru bir şekilde modellenmesi ve analiz edilmesi için kritik öneme sahiptir. Yanlış sınır koşulları, elemanların davranışını yanlış yorumlamaya ve yapı sisteminin yanlış bir şekilde modellenmesine neden olabilir. Bu nedenle, sınır koşulları, yapı elemanlarının doğru bir şekilde analiz edilmesi için doğru bir şekilde belirlenmelidir.

Bu sınır koşulları temel olarak üç şekilde ifade edilebilir: sınır koşulunun tanımlandığı Dirichlet tipi koşullar, bu sınır koşuluna bağlı bir gradyan olarak ifade edilen Neumann tipi koşullar ve bu ikisinin kombinasyonu olan, bağımlı bir değişkenin ve bu değişkenin gradyanını içeren Robin tipi koşullar.

Katı mekaniğinden örnek verecek olursak Dirichlet tipi koşul – yer değiştirme (displacement), Neumann tipi koşul – çekiş ya da gerilme (traction, stress), Robin tipi koşul ise yay (spring) olur.



Sonlu elemanlar analizinde en temel tanımlamalardan biri olan bu terimlerin öğrenilmesi, analizin doğru kavranması için önemlidir.

Sonraki yazılarda sonlu elemanlar analizi üzerine yoğunlaşarak; katı mekaniği, malzeme mekaniği gibi konular üzerinde daha teknik ve detaylı yazılarla devam edeceğiz.


ANZ35TUTCTS4G4822
Java ile Temel Programlama #1

Bu yazımızda sizlere pek çok alanda kullanılan ve popüler bir programlama dili olan Java’dan bahsedeceğim. Genel olarak yazı içerisinde Java’nın ne olduğundan, nerelerde kullanılabildiğinden, yazım ve isimlendirme kurallarından bahsedeceğim. Son olarak da Java ile ilk kodumuzu yazarak yazımızı sonlandıracağım. O halde Java’nın ne olduğundan ve nerelerde kullanabileceğinden bahsetmeye başlayalım.

Java Nedir ve Nerelerde Kullanılabilir?

James Gosling

Java 1995 yılından çıkış yapan ve Sun Microsystems mühendislerinden James Gosling tarafından geliştirilen açık kaynak kodlu, nesne yönelimli ve yüksek seviyeli bir programlama dilidir. Java’yı Windows, MAC OS ve UNIX gibi işletim sistemlerinde kullanmak mümkündür. Syntax, ü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. Java’nın söz dizimi yapısı C/C++’a benzerdir. Bunun sebebi Gosling’in, programcılar için Java’nın kolay öğrenilebilen bir dil olmasını sağlamak istemesiydi.

Gosling, Java projesini ilk olarak 1991 yılında İnteraktif televizyonlar için geliştirmeye başlamıştı. Java’ya ilk olarak OAK ismini vermişti. Bu isim Gosling’in ofisinin yanında bulunun bir meşe ağacından gelmekteydi. Daha sonralarında ise projenin ismi Green olsa da son olarak Java ismini aldı.

Java’nın şu anda kullanılan en güncel sürümü 22 Mart 2022 tarihinde yayınlanan Java SE 18’dir.

Java kodlarını kullanarak program yazabilmek için IDE’lere ihtiyaç duyarız. 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. Java için Eclipse ve IntelliJ IDEA gibi ücretsiz IDE’ler kullanabiliriz. Bu IDE’leri indirmek ve bilgisayarınıza kurmak için resmi sayfalarını ziyaret edebilirsiniz.

Java Kullanım Alanları

Java programlama dilini kullanarak mobil, web ve masaüstü uygulamalar geliştirmek mümkündür. Günümüzde telefon, tablet ve bilgisayarlardan oynayabildiğimiz oyunlarda Java ile yazılabilir. Örnek olarak, popüler oyunlardan biri olan Minecraft, Java ile yazılmıştır. Bunlar dışında bilimsel uygulamaların yazımında, büyük veri teknolojilerinde, gömülü sistemlerde ya da finans uygulamalarında Java kullanmak mümkündür. Tabii ki bu alanlar için farklı programlama dilleri de mevcut fakat Java da bu alanlarda kullanılabilen programlama dillerinden biridir.

Java’da Yazım ve İsimlendirme Kuralları

Yazım Kuralları

Java’da var olan yazım kuralları aşağıdaki gibidir:

  • Değişken isimleri rakamlar ile başlayamaz.
  • Türkçe karakter metin ifadeleri dışında kullanılamaz.
  • Var olan fonksiyon veya özel isimler değişken ismi olarak tanımlanamaz.
  • Değişken isimleri birden fazla kelimeden oluşuyorsa arada boşluk kullanılamaz. Bu durumda araya ‘_’ eklenebilir ya da kelimeler birleştirilebilir.
  • Java küçük-büyük harfe duyarlı bir dildir. Örneğin ‘degisken’ isimli değişken ile ‘Degisken’ isimli bir değişken aynı değildir.
  • Bir değişken tanımlanırken önce değişkenin veri tipi ardından değişken ismi yazılmadır.
  • Komutların sonuna ‘ ; ’ ifadesi eklenir.
  • Değişken isimleri rakam ile başlamadığı taktirde kelime içerisinde rakam kullanılabilir.
  • Sınıf ismi yazılırken uyulması gereken kurallar, değişken tanımlanırken kullanılması gereken kurallar ile aynıdır.

İsimlendirme Kuralları

Java’da değişkenler, metotlar, sınıflar ve sabit değerler için isimlendirme kuralları vardır. Bu kurallara uyulmadığında program hata vermez ancak bu kurallar sayesinde okunabilirlik artar. Bu isimlendirme kurallarında kullanılan isimlendirme türlerini inceleyelim.

Upper Camel Case: Birden çok kelimenin bir araya gelerek oluşturduğu birleşik kelimedeki her bir kelimenin ilk harfinin büyük olması kuralıdır. Örneğin;

BirlesikKelime

Lower Camel Case: Birden çok kelimenin bir araya gelerek oluşturduğu birleşik kelimedeki ilk kelime hariç diğer kelimelerinin ilk harflerinin büyük olması kuralıdır. Örneğin;

birlesikKelime

Snake Case: Birden çok kelimenin bir araya gelerek oluşturduğu birleşik kelimelerin her birinin ‘_’ ile birbirine bağlanması kuralıdır. Kendi içerisinde Lower Snake Case ve Upper Snake Case olarak ikiye ayrılır.

Lower Snake Case Örneği; birlesik_kelime

Upper Snake Case Örneği; Birlesik_Kelime

Screaming Snake Case: Birden çok kelimenin bir araya gelerek oluşturduğu birleşik kelimelerin her birinin ‘_’ ile birbirine bağlandığı ve her bir kelimenin her harfinin büyük yazıldığı kuralıdır. Örneğin;

BIRLESIK_KELIME

Aşağıdaki tabloyu inceleyerek değişkenler, metotlar, sınıflar ve sabit değerler için isimlendirme kurallarını görebilirsiniz.

TürKuralÖrnek
SınıfUpper Camel Casepublic class ClassName{}
DeğişkenLower Camel CasevariableName
MetotLower Camel Casepublic int numberOfClasses{}
Sabit DeğerScreaming Snake Casefloat VALUE_OF _PI

Java’da isimlendirme kurallarının da neler olduğunu öğrendiğimize göre artık ilk çalışan programımızı yazabiliriz. İlk çalışan programımız, programlama dili öğrenirken adeta klasikleşen ekrana ‘Merhaba Dünya’ yazdırmak olsun.

Java’da Ekrana Veri Gösterme

Java’da ekrana çıktı bastırmak için ‘system.out.println()’ komutu kullanılabilir. Bu komutun içerisine yazacağımız herhangi bir değeri program çalıştırıldığında çıktı ekranında görürüz.

Burada bir diğer önemli nokta ise bu komutlarımızı Java’da nereye yazmamız gerektiğidir. Programı çalıştırdığımız anda bu komutlar okunmalı ve bize çıktı olarak istediğimiz değerler yansımalıdır. Bunun için aşağıdaki görsele göz atalım.

public class ClassName {
    public static void main(String[] args) {
        System.out.println("Merhaba Dünya");
   }
}

Kod bloğunda da görüldüğü gibi kodlar Java’da sınıf içerisine yazılır. Main metodu ise program çalıştığı anda çalıştırılan bir metottur. Main metodunun içerisine gövde (body) adı verilir. Kodumuzu bu main metodunun gövdesinin içerisine yazarak program çalıştırıldığı anda system.out.println() komutunu çalıştır demiş olduk. Buraya yazdığımız kod derleyici tarafından yorumlandıktan sonra bize çıktı olarak gösterilir.

System.out.println() komutu ile ekrana pek çok veriyi çıktı olarak gösterebilir, değişken sonuçlarını yansıtabilir veya matematiksel sonuçları yazdırabiliriz.

public class ClassName {
    public static void main(String[] args) {
      int deger = 8;  
      System.out.println("Sayinin degeri : " + deger);
   }
}
public class ClassName {
    public static void main(String[] args) {
      int sayi1 = 8;
      double sayi2 = 1.2;  
      System.out.println("Toplam Deger : " + (sayi1 + sayi2));
   }
}

Bu yazımızda sizlere Java’da temel bilgilerden bahsettim. Bir sonraki yazımızda Java’da yorum satırlarından, kaçış karakterlerinden, değişken ve veri tiplerinden bahsedeceğiz. Bir sonraki yazıya buradan erişebilirsiniz.

JAVASWO142JCV14919

F1 Car Meshing by using Finite Element Method
Sonlu Elemanlar Metodu Nedir? Kullanım Alanları

Sonlu Elemanlar Metodu veya Yöntemi (SEM, Finite Element Method, FEM), genellikle mühendislik hesaplamalarında kullanılan, herhangi bir fiziksel niceliğe sahip bir maddenin çeşitli analizlerini gerçekleştirebilmek için kullanılan sayısal bir tekniktir.

Bu metoda göre, ortada çözümlenmesi gereken bir problem ve bu problemde, belirli şartlar altında analizi yapılması gereken bir yapı vardır ve bu yapı sonlu elemanlar olarak adlandırılan belirli sayıda küçük parçalara bölünerek sonraki analizlerinde her bir parçanın matematiksel olarak ‘davranışının’ test edilmesi amaçlanır. Bunun için çoğunlukla kısmi diferansiyel denklemler kullanılarak türetilen formüller kullanılır.

Sonlu elemanlar metodu kullanılarak analizi yapılan bir maddenin gösterimi

Sonlu Elemanlar Metodunun Tarihçesi

Sonlu elemanlar metodunun temellerinin Euler’in çalışmalarına dayandığı söylenebilir. Ancak, SEM ile ilgili en eski matematiksel makaleler Schellback (1851) ve Courant’ın (1943) çalışmalarında bulunabilir. Başlıca, havacılık ve inşaat mühendisliği ile ilgili yapısal mekanik sorunlarını ele almak için mühendisler tarafından bağımsız olarak geliştirilmiştir. Gelişmeler 1950’lerin ortalarında Turner, Clough, Martin ve Topp (1956), Argyris (1957), Babuska ve Aziz (1972) ile başlamış, Zienkiewicz (1971) ve Strang ve Fix (1973) kitapları da SEM’de gelecekteki gelişimin temellerini atmıştır. Sonlu elemanlar metodunun daha detaylı bir gelişim sürecini İngilizce olarak buradan inceyeleyebilirsiniz.

Teorik Boyut

Sonlu elemanlar metodu, sonsuz boyutlu bir fonksiyon uzayındaki fonksiyonları, sonlu boyutlu bir fonksiyon uzayındaki fonksiyonlara ve ardından sayısal yöntemlerle vektör uzayında izlenebilen vektörlere dönüştürme işlemidir.

Bu, nesnenin bir ağının (sınırlı sayıda noktaya sahip olan çözüm için sayısal alan) oluşturulmasıyla uygulanan uzay boyutlarında belirli bir alan ayrıklaştırmasıyla elde edilir. Bir sınır değer probleminin sonlu eleman yöntemi formülasyonu, sonunda bir cebirsel denklem sistemi ile sonuçlanır. Yöntem, bilinmeyen işlevi etki alanı üzerinden yaklaştırır. Bu sonlu elemanları modelleyen basit denklemler daha sonra tüm problemi modelleyen daha büyük bir denklem sistemine birleştirilir. Daha sonra SEM, ilişkili bir hata fonksiyonunu en aza indirerek bir çözüme yaklaşmak için varyasyonlar hesabından varyasyonel yöntemler kullanır.

Bir fenomeni SEM ile incelemek veya analiz etmek genellikle sonlu eleman analizi (FEA) olarak adlandırılır.

Sonlu Elemanlar Metodunun Kullanım Alanları

Makine mühendisliği disiplini çatısı altındaki çeşitli uzmanlıklar (havacılık, biyomekanik ve otomotiv endüstrileri gibi), ürünlerinin tasarımında ve geliştirilmesinde yaygın olarak entegre SEM kullanır. Birkaç modern SEM paketi, termal, elektromanyetik, akışkan ve yapısal çalışma ortamları gibi belirli bileşenleri içerir. Yapısal bir simülasyonda, SEM, sertlik ve mukavemet görselleştirmelerinin üretilmesinde ve ayrıca ağırlık, malzeme ve maliyetleri en aza indirmede muazzam bir şekilde yardımcı olur.

Temel Sonlu Elemanlar

     Lineer eleman  –  Kuadratik eleman            Lineer eleman – Kuadratik eleman

Sonlu Elemanlar Analizi ve Uygulamadaki Faydaları

Bir modelin en gerçekçi halinden çözümlenebilir haline gelinceye kadar yukarıdaki gibi bir süreç izlenir.

Sonlu elemanlar analizi(SEA, Finite Element Analysis, FEA), yapıların nerede büküldüğünün veya burulduğunun ayrıntılı görselleştirilmesine izin verir ve gerilmelerin ve yer değiştirmelerin dağılımını gösterir. SEM yazılımı, bir sistemin hem modellemesinin hem de analizinin karmaşıklığını kontrol etmek için çok çeşitli simülasyon seçenekleri sunar. Benzer şekilde, istenen doğruluk düzeyi ve ilişkili hesaplama süresi gereksinimleri, çoğu mühendislik uygulamasına hitap etmek için aynı anda yönetilebilir. SEM, tasarım üretilmeden önce tüm tasarımların inşa edilmesini, iyileştirilmesini ve optimize edilmesini sağlar. Ağ (mesh), modelin ayrılmaz bir parçasıdır ve en iyi sonuçları vermek için dikkatlice kontrol edilmelidir. Genel olarak bir ağdaki eleman sayısı ne kadar yüksekse, ayrıklaştırılmış problemin çözümü o kadar doğru olur. Ancak, sonuçların yakınsadığı ve daha fazla mesh iyileştirmenin doğruluğu artırmadığı bir değer vardır.

Sonlu elemanlar analizinin sağlamış olduğu güçlü tasarım imkanları, birçok endüstriyel uygulamada hem mühendislik tasarımlarının standardını hem de tasarım sürecinin metodolojisini önemli ölçüde geliştirmiştir. Ayrıca, SEM’in geliştirilmesi, ürünleri konseptten üretim hattına alma süresini önemli ölçüde azaltmıştır. Öncelikle test ve geliştirmenin hızlandırılması, SEM kullanılarak geliştirilmiş ilk prototip tasarımları sayesinde olmuştur. Özetle, SEM’in faydaları arasında artan doğruluk, geliştirilmiş tasarım ve kritik tasarım parametreleri hakkında daha iyi içgörü, sanal prototip oluşturma, daha az donanım prototipi, daha hızlı ve daha ucuz tasarım döngüsü, artan üretkenlik ve artan gelir bulunur.

 

ANZ76T18TCNP5R6229
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