İçindekiler[Saklamak][Göstermek]
İster üniversite öğrencisi olun, ister veri biliminde çalışıyor olun, matematiğin etrafından dolaşmak yoktur.
Hatta veri biliminin bir tür uygulamalı matematik/istatistik olduğu iddia edilebilir. NumPy, SciPy, Scikit-Öğren, ve TensorFlow matematikle nicel olarak ilgilenen Python kitaplıklarından sadece birkaçıdır.
Ancak, matematiksel sembollerle açıkça ilgilenmek için tek bir rakip var: SymPy.
SymPy hakkında her şeyi öğrenelim.
Nedir SymPy?
SymPy bir Python sembolik matematik kütüphanesidir. Kodu, anlaşılır ve kolayca genişletilebilir olması için olabildiğince basit tutarken, tam özellikli bir bilgisayar cebir sistemi (CAS) olmayı hedeflemektedir.
Tamamen Python ile yazılmıştır. Yalnızca rastgele kayan nokta aritmetiği için saf bir Python kitaplığı olan mpmath'e dayandığı için kullanımı kolaydır.
Bir kütüphane olarak, akılda kullanılabilirliğe büyük önem verilerek oluşturulmuştur. Genişletilebilirlik, uygulama programı arayüzünün (API) tasarımında kritik öneme sahiptir.
Sonuç olarak, Python dilini geliştirmek için hiçbir girişimde bulunmaz. Amaç, kullanıcıların onu diğerleriyle birlikte kullanabilmesidir. Python kitaplıkları ister etkileşimli bir ortamda ister daha büyük bir sistemin programlanmış bir bileşeni olarak iş akışlarında.
SymPy, bir kitaplık olarak, yerleşik bir grafik Kullanıcı arayüzü (GUI). Kütüphane:
- BSD lisansı altında lisanslı olduğu için hem konuşma hem de bira konusunda ücretsiz.
- Python tabanlı: Tamamen Python'da geliştirilmiştir ve dili olarak Python'u kullanır.
- Hafiftir çünkü yalnızca mpmath'e dayanır, saf Python kitaplığı keyfi kayan nokta aritmetiği için kullanımı kolaylaştırır.
- Etkileşimli bir araç olarak kullanılmaya ek olarak diğer programlara dahil edilebilir ve özel işlevlerle değiştirilebilir.
SymPy'yi neden kullanmalıyım?
Bir bilgisayar cebir sistemi olan Sage, programlama dili olarak Python'u da kullanır. Sage ise devasadır ve bir gigabayttan daha fazlasını indirmeyi gerektirir. Hafif olması avantajına sahiptir.
Kompakt olmasının yanı sıra Python dışında hiçbir bağımlılığı yoktur ve pratik olarak her yerde kullanılmasına olanak tanır.
Ayrıca, Sage ve SymPy'nin amaçları aynı değildir. Sage, tam özellikli bir matematik sistemi olmayı hedeflemektedir ve bunu tüm ana açık kaynaklı matematiksel sistemleri tek bir sistemde birleştirerek yapar.
Entegrasyon gibi bir Sage işlevi kullandığınızda, içerdiği açık kaynak paketlerinden birini çağırır. Gerçekte, Sage'de yerleşiktir. SymPy ise tüm işlevselliklerin kendi içinde uygulandığı bağımsız bir sistem olmayı hedeflemektedir.
Kütüphane işlevi görme kapasitesi önemli bir özelliktir. Birçok bilgisayar cebir sistemi, etkileşimli ortamlarda kullanılmak içindir, ancak bunların otomatikleştirilmesi veya genişletilmesi zordur.
Python'da etkileşimli olarak kullanılabilir veya kendi Python programınıza aktarılabilir. Ayrıca, kendi rutinlerinizle kolayca genişletmek için API'lere sahiptir.
SymPy'yi yükleme
Ortamınıza yüklemek için aşağıdaki komutu kullanmanız yeterlidir.
SymPy Sembolleri
Şimdi başlayalım! Temel nesnesi bir semboldür. SymPy'de şunu yazarak bir x sembolü oluşturabilirsiniz:
Yukarıdaki kod x sembolünü oluşturur. İçindeki semboller, bilinmeyen değerleri temsil eden matematiksel sembolleri taklit etmeye yöneliktir.
Sonuç olarak, aşağıdaki hesaplama aşağıda gösterilmiştir:
Yukarıda gösterildiği gibi, x sembolü bilinmeyen bir miktara benzer şekilde çalışır. Çok sayıda sembol yapmak istiyorsanız, bunları aşağıdaki gibi yazın:
Bu durumda aynı anda iki sembol, y ve z oluşturdunuz. Bu semboller artık istenildiği gibi toplanabilir, çıkarılabilir, çarpılabilir ve bölünebilir:
SymPy İşlevleri
1. sympify() işlevi
sympify() yöntemi, rastgele bir ifadeyi bir SymPy ifadesine dönüştürür. Tamsayılar gibi standart Python nesnelerini dönüştürür.
Dizeler, tamsayıların yanı sıra ifadelerine dönüştürülür.
2. değerlendirme() işlevi
Bu işlev, 100 basamağa kadar kayan nokta hassasiyetiyle belirtilen bir sayısal ifadeyi değerlendirir.
İşlev ayrıca bir alt argüman olarak semboller için sayısal değerlere sahip bir sözlük nesnesini kabul eder. Aşağıdaki ifadeyi düşünün:
Kayan nokta doğruluğu, varsayılan olarak 15 haneye ayarlanmıştır. Ancak, bu 1 ile 100 arasında herhangi bir sayı ile değiştirilebilir.
Aşağıdaki denklem 20 basamaklı bir hassasiyetle değerlendirilir.
3. Lambdify() işlevi
Lambdify, ifadelerini Python işlevlerine dönüştüren bir işlevdir. evalf() yöntemi, bir ifadeyi çok çeşitli değerler arasında değerlendirirken verimsizdir.
Lambdify, SymPy adlarını genellikle NumPy olan sağlanan sayısal kitaplığın adlarına çevirmesi dışında bir lambda işlevine benzer şekilde çalışır.
Varsayılan olarak Lambdify, matematik standart kitaplık uygulamalarına uygulanır.
Özellikler
Kütüphanenin en önemli özelliklerinden birkaçı burada listelenmiştir; dahil olmayan daha pek çok şey var, ancak bunları kontrol edebilirsiniz okuyun.
1. Temel Yetenekler
- Temel aritmetik: +, -, *, / ve ** operatörleri desteklenir (güç)
- polinom açılımı
- Tamsayılar, rasyoneller ve kayan değerler keyfi hassasiyetle
- Trigonometrik, hiperbolik ve üstel fonksiyonlar, kökler, logaritmalar, mutlak değer, küresel harmonikler, faktöriyeller ve gama fonksiyonları, zeta fonksiyonları, polinomlar ve özel fonksiyonlar
- Değişmeli olmayan semboller
- eşleşen desenler
2. Matematik
- Entegrasyon: Bu yöntem, genişletilmiş Risch-Norman buluşsal yöntemini kullanır.
- Farklılaşma.
- Sınır fonksiyonları
- Laurent Taylor'ın serisi
3. Polinomlar
- Gröbner temelleri
- Kısmi kesirlerin ayrıştırılması
- Division, gcd Resultants, temel aritmetik örnekleridir.
4. Kombinatorik
- permütasyon
- Gri ve Prufer Kodları
- Kombinasyonlar, Bölümler, Alt Kümeler
- Çokyüzlü, Rubik, Simetrik ve Diğer Permütasyon Grupları
5. Ayrık Matematik
- Toplamı
- Mantıksal ifadeler
- Binom katsayıları
- Sayı teorisi
Uygulamalar
1. Bina Hesap Makinesi
2. Bilgisayar Cebir Sistemleri
Diğer Bilgisayar Cebir Sistemlerinden farklı olarak, içindeki sembolik değişkenleri Symbol() işlevini kullanarak manuel olarak bildirmeniz gerekir.
3. Matematik
Sembolik bir hesaplama sisteminin her türlü hesaplamayı sembolik olarak yapma kapasitesi, onun en büyük gücüdür.
İfadeleri sembolik olarak basitleştirebilir, türevleri, integralleri ve limitleri hesaplayabilir, denklemleri çözebilir, matrislerle etkileşime girebilir ve çok daha fazlasını yapabilir.
İştahınızı açmak için, işte size sembolik gücün tadı.
SymPy ile Başka Neler Yapabilirsiniz?
Ek konular hakkında derinlemesine konuşmak yerine, becerilerinizi geliştirmenize yardımcı olacak kaynakların bir listesini sunmama izin verin:
- Matrisler ve Lineer Cebir: Matrislerle çalışabilir ve temel lineer cebir işlemlerini yapabilir. Dil, NumPy'nin sözdizimine benzer. Ancak, dikkate değer farklılıklar vardır. Başlamak için, araştırın matrisler kütüphanede.
- İfade: İfadeleri takip etmek için ağaç tabanlı bir yapı olan bir ifade ağacından yararlanır. Bakmak ifade ağaçları eğer onların iç işleyişi hakkında daha fazla bilgi edinmek istiyorsanız.
- Türevler ve İntegraller: Bir giriş matematik sınıfında öğreneceğiniz şeylerin çoğunu başarabilir (düşünme eksi). Fonksiyonumuza bakarak başlayabilirsiniz. farklılaştırma SymPy'de.
- NumPy ile İlişki: NumPy ve SymPy matematikle ilgili kitaplıklardır. Bununla birlikte, özünde farklıdırlar! NumPy sayılarla çalışırken sembolik ifadelerle çalışır.
- basitleştirmeler: İfadeleri otomatik olarak basitleştirecek kadar akıllıdır. Bununla birlikte, bunun üzerinde daha hassas bir kontrol istiyorsanız, şuna bakın: basitleştirmeler.
Sonuç
SymPy, sembolik matematik için güçlü bir kütüphanedir.
Değişkenler ve işlevler oluşturmanın yanı sıra matematiksel ifadeleri sembolik olarak genişletmek ve basitleştirmek ve denklemleri, eşitsizlikleri ve hatta denklem/eşitsizlik sistemlerini çözmek için kullanabilirsiniz.
İşlevleri hem betiğin metnine hem de doğrudan terminale (veya Jupyter dizüstü bilgisayarlar) hızlı bir değerlendirme ve yapılan hesaplamaların daha iyi bir grafiksel tasvirini elde etmek için.
SymPy'nin daha fazlasını keşfetmeye hazır mısınız? Yorumlarda bize bildirin.
Yorum bırak