Python ve Bilimsel Hesaplama

Bu derslerde Python programlama diline sıfırdan başlıyoruz, en temel konuları tartışırken vereceğimiz örneklerin bilimsel hesaplama yöntemlerini içermesine özen gösterdim. Bu derste verilen örnekleri anlayabilmek için ileri seviye matematik bilmeye gerek yoktur, temel kalkülüs konu başlıklarını bilmek yeterlidir.

Aşağıda listelenenler dışında bu derse zamanla yeni ders notları da ekleyeceğim, yani bu dersin notları henüz tamamlanmamıştır. Öncelikle en temel Pythpn veri tiplerinden dict (sözlük) tipi verileri henüz anlatmadım, bunlara ilişkin bir ders notu eklemeyi planlıyorum. Ayrıca ders içinde sıklıkla kullandığımız string veri tipleri hakkında detaylı bir ders notu hazırlamayı da düşünüyorum. Bunlardan sonra sembolik hesaplama ve SciPy paketi, veri analizi ve Pandas paketi, sınıflar, hiyerarşi ve nesne yönelimli programlama (OOP) konularında da ders notları eklemeyi planlıyorum.

1. Giriş

Özet: Bu bölümde Python ile genel programlama ve bilimsel hesaplamanın temellerini öğreneceğiz. Python yazılımının kurulması, ilk programın yazılması, değişkenlerin ve bazı temel nesnelerin tanıtılması, modüllerin ve fonksiyonların kullanılması, özellikle math modülünün tanıtılması, kompleks sayı hesaplarının yapılması ve yuvarlama hatalarının açıklanması gibi konulara değineceğiz.
Özet: Bu derste Python ile programlama yapmaya başlamak için gerekli yazılımı yüklüyoruz. Daha sonra bu derste ilk programımızı yazıp çalıştıracağız.

Anahtar Kelimeler: Interpreter · Powershell · Print · Python · Terminal
Özet: Bu derste Python ile program yazarken değişkenleri kullanmaya başlıyoruz, bu sayede karmaşık hesaplamaları daha basit kod parçaları ile yapabiliriz.

Anahtar Kelimeler: Biçimleyiciler · Değişkenler · Printf · Qnew · Tam Sayı Bölmesi
Özet: Daha karmaşık matematiksel hesaplamalar için math gibi modülleri kullanmaya ihtiyacımız olur. Üstel, trigonometrik, logaritmik ve benzeri fonksiyonlar bu gibi modüller içindedir.

Anahtar Kelimeler: Cmath · Decimal · Import · Kompleks Fonksiyonlar · Kompleks Sayılar · Math · Modül · Scipy · Yuvarlama Hatası

2. Döngüler ve Koşullu Yapı

Özet: Bilgisayarın ana fikri tekrarlanan işlemlerin otomasyonuna dayanır. Bu bölümde, aynı işlemi farklı durumlara uygulamak için döngülerin nasıl kullanılacağını öğreneceğiz. Python'da iki temel döngü çeşidi vardır, bunlar while ve for döngüleri olarak adlandırılırlar. Bu döngüleri çalışabilmek için önce iki yeni veri tipini öğrenmemiz gerekecek, bool ve list veri tipleri. Bu veri tiplerini sadece bu bölümde döngüler için değil, metnin geri kalanında bir çok konu başlığında kullanacağız. Bu bölümde ayrıca if-else koşullu yapısıyla programlarımız içinde karar alma stratejileri geliştirmeyi öğreneceğiz. Bu sayede programlarımız farklı stratejiler üzerinden çalışabilecek.
Özet: İlk öğreneceğimiz döngü çeşidi while döngüleridir. Bu döngüleri kullanabilmek için bool verilerine ihtiyacımız var. Matematik derslerindeki sembolik mantık konusundan aşina olduğunuz bu konuyu açıkladıktan sonra Fourier serileri ve Gauss dağılımı ile ilgili döngü örnekleri vereceğiz.

Anahtar Kelimeler: And · Bool Verisi · Fourier Serisi · Gibbs Olgusu · Or · Sonlu Toplam · While Döngüsü
Özet: Bu derste for döngülerini açıklayacağız, bu döngüleri öğrenmek için önce list ve tipi verileri anlamamız gerekiyor. Bu tür veriler üzerinde yapılabilen temel işlemleri açıkladıktan sonra bazı döngü örnekleri vereceğiz.

Anahtar Kelimeler: Binom Dağılımı · Dilimleme · For Döngsü · Index · Indis · List · List Comprehension · Slice · Tuple
Özet: Bu derste programlarımızın farklı senaryolara göre farklı şekilde çalışmasına olanak sağlayan dallanma (branching) konusunda değineceğiz. Bir çok programlama dilinde olduğu gibi bunu Python'da da if-else blokları ile yaparız.

Anahtar Kelimeler: Dallanma · Elif · Else · Heaviside Fonksiyonu · If · If-Else

3. Fonksiyonlar ve Modüller

Özet: Bu bölüme gelene kadar bir çok hazır fonksiyon ile çalıştık, math modülünde tanımlanmış olan sin, cos, sqrt ve exp gibi. Bu bölümde, kendi fonksiyonlarımızı tanımlamayı ve bunları programlarımızda kullanmayı öğreneceğiz. Daha sonra bu fonksiyonlara çeşitli yöntemlerle argüman sağlamayı ve kullanıcı tarafından sağlanan argümanlar üzerinde hata kontrolü konularına değineceğiz. Ayrıca bu bölümde kendi tanımladığımız fonksiyonlar ile kendi modüllerimizi nasıl oluşturabileceğimizi de öğreneceğiz.
Özet: Bu derste kendi fonksiyonlarımızı tanımlamanın ve kullanmanın yollarını öğreneceğiz. Fonksiyon tanımlama işlemi programlama dilleri için kritik öneme sahiptir ve Python'da bu işlem son derece basittir.

Anahtar Kelimeler: Doc String · Global Değişken · Hata Fonksiyonu · Lambda · Lokal Değişken · None · Python Fonksiyonu · Return · Simpson Kuralı · Test Fonksiyonu · Yaklaşık Türev
Özet: Bu ders biraz uzun olacak, programın kullanıcı ile iletişim kurabilmesinin tüm yollarını tek bir derste açıklamak istedim. Bu yollar şunlar: programın kullanıcıya sorular sorarak veri alması, kullanıcının programı çalıştırırken komut satırından programa veri iletmesi, programın kullanıcının oluşturduğu bir dosyadan veriler alması ve programın bir dosyaya yazarak kullanıcıya veri iletmesi. Ayrıca bu derste kullanıcının hatalı veri iletmesi sonucu oluşabilecek hataları kontrol etmenin de yollarını öğreneceksiniz.

Anahtar Kelimeler: Argparse · Close · Dosya Okuma Yazma · Eval · Exception · Exec · File · Hata Kontrolü · Indexerror · Nameerror · Open · Raise · Raw_Input · Read · Readlines · Simpson Kuralı · Split · Sys.Argv · Terminal · Try-Except · Typeerror · Valueerror · With · Zerodivisionerror
Özet: Önceki derslerde kendi fonksiyonlarınızı nasıl tanımlayabileceğinizi öğrendiniz, bu derste de fonksiyonlarınızdan modül oluşturmayı öğreneceksiniz. Böylece fonksiyonlarınıza başka programlar içinden de ulaşabilirsiniz.

Anahtar Kelimeler: __Main__ · __Name__ · Dir · Import · Modül

4. Vektörizasyon ve Grafik Çizimi

Özet: Grafik çizimi bilimsel hesaplamalar içinde önemli bir konudur, programlarımızda bazen hesaplamaların sonucunu grafiksel olarak sunarız. Python'da grafik çizmek oldukça basittir ama bunun için NumPy paketi içinde sunulan array nesnelerini anlamamız gerekir, bu nesneler şu ana kadar öğrendiğimiz hesaplama yöntemlerine bakışınızı değiştirecektir. Daha önce öğrendiğiniz list nesnelerine çok benzer olmasına karşın array nesneleri çok daha verimli çalışır. Ayrıca bu nesneler grafik çizimi dışında da sıklıkla kullanılır, bunlara bazı örnekler vereceğiz.
Özet: Bu derste NumPy paketini ve array nesnelerini tanıyacaksınız. Bir fonksiyonu vektörize etmenin çeşitli yollarını da göreceksiniz, vektörizasyon işlemi bir sonraki bölümde ele alacağımız grafik çizme işlemi için bir gerekliliktir.

Anahtar Kelimeler: Array · Clock · Linspace · Logical_And · Ndarray · Numpy · Ones · Ones_Like · Time · Vectorize · Vektörizasyon · Where · Zeros · Zeros_Like
Özet: Bu derste iki boyutlu grafikleri çizmeyi öğreneceğiz, bu yöntemleri genelde bir $y=f(x)$ fonksiyonunun grafiğini çizdirmek için kullansak da bunların dışında istatiksel grafikler için de kullanılır.

Anahtar Kelimeler: Animasyon · Convert · Figaspect · Figsize · Figure · Grafik · Grafik Çizme · Imagemagick · Matplotlib · Plot · Pyplot · Subplot
Özet: Üç boyutlu grafikleri çizebilmek için yüksek boyutlu array nesnelerini anlamamız gerekir. Bu derste bu konuyu ve üç boyutlu grafiklerin yanı sıra iki değişkenli fonksiyonların seviye eğrileri gibi bazı diğer çeşit grafiklerini de çizmeyi öğreneceksiniz.

Anahtar Kelimeler: Axes3d · Color Map · Colorbar · Contour · Cstride · Imshow · Indexing · Meshgrid · Mpl_Toolkits · Mplot3d · Plot_Surface · Plot_Wireframe · Projection · Reshape · Rstride · Shape · Size · View_Init