Mathematica

Wolfram Mathematica, makine öğrenimi, istatistik, sembolik hesaplama, veri manipülasyonu, ağ analizi, zaman serisi analizine, NLP, optimizasyon, fonksiyonlar ve çeşitli veri türlerinin çizimi, algoritmaların uygulanması, kullanıcı arayüzülerin oluşturulması ve diğer programlama dilinde yazılmış programlarla arayüz oluşturmaya izin veren çeşitli teknik hesaplama alanları için yerleşik kütüphanelere sahip bir yazılım sistemidir. Stephen Wolfram tarafından tasarlanmış ve Champaign, Illinois'deki Wolfram Research tarafından geliştirilmiştir. Wolfram Language, Mathematicada kullanılan programlama dilidir. Mathematica 1.0, 23 Haziran 1988'de Champaign, Illinois ve Santa Clara, Kaliforniya'da yayınlandı.

Mathematica, "Kernel-front end" mantığında çalışır. Çizeysel arayüzlüdür ve denklem girmesi kolaydır. Matematiksel her türlü hesaplamalar yapan genel bir sistem olan mathematica sayısal işlemler yapan bir hesap makinesi gibi de algılanabilir. Bunun yanında sembolik hesaplamalar ve grafik nesneler ile de çalışır. Basic, Fortran, Pascal ve C programlama dilleriyle de temelde benzerlik taşımaktadır..

Mathematica yoğun hesaplamalar gerektiren işlemler için zaman kayıbını ortadan kaldırmaktadır. Veri analizi, fonsiyonların grafiklerine dair animasyonlar, olasılık işlemlerindeki zenginlik, fizik, kimya, biyoloji ve mühendislikteki çeşitli uygulamalar, görüntü işleme vb. alanlarda Mathematica güçlü bir yazılımdır (Ufuktepe, Kutucu ve Bingül, 2008). Mathematica, yüksek boyutlarda veriyi şaşırtıcı bir şekilde hızlı ve kolay işleyebilen, laplas, fourier dönüşümlerini, ve analizlerini yapabilen, ve bunlar gibi çok çeşitli fonksiyonları kolayca gerçekleştirebilen hazır araçlara sahiptir. Nümerik özelliklerinin yanında, Mathematica cebrik işlemleri yapmayı kolaylaştıran geniş bir araç kutusuna güçlü bir sembolik işlem yapabilme yeteneğine sahiptir. Mathematica notebookları mühendislere hazırladıkları projeleri düzenli ve etkileyici bir formatta sunmaları için uygun yaratılmıştır. Mathematica notebookları, hazırlanan hesaplamaların, analizlerin, formüllerin, ve çizilen grafiklerin otomatik olarak yerleştirildiği interaktif dokümanlardır. Hesaplamaları, analizleri yaptıktan, grafikleri çizdikten sonra, notebook’a kısaca açıklamalar, başlıklar ve görseller ekleyerek, çalışma dokümanları bir sunum haline getirilebilir. Sonuçta Mathematica her türlü hesaplama işlemine uygundur ve bu yüzden web ortamındaki işlemlere çok geniş açılımlar sağlar.

Notebook arayüzü
Mathematica, iki bölüme ayrılmıştır: çekirdek ve ön yüz. Çekirdek, ifadeleri (Wolfram Language kodu) yorumlar ve sonuç ifadelerini döndürür, bunlar daha sonra ön yüz tarafından görüntülenebilir.

1988'de Theodore Gray tarafından tasarlanan orijinal ön yüz, bir notebook arayüzü'nden oluşur ve kod, düz metin, resim ve grafik içerebilen notebook belgelerinin oluşturulmasına ve düzenlenmesine izin verir.

Mathematica ön yüzüne alternatifler arasında 2006 yılında tanıtılan Eclipse-tabanlı tümleşik geliştirme ortamı (IDE) Wolfram Workbench bulunmaktadır. Mathematica için revizyon yönetimi, hata ayıklama, profil oluşturma ve test etme dahil olmak üzere proje tabanlı kod geliştirme araçları sağlar.

Ayrıca IntelliJ IDEA tabanlı IDE'ler için Wolfram Language koduyla çalışmak üzere sözdizimi vurgulama'ya ek olarak yerel değişkenleri ve tanımlı işlevleri analiz edip otomatik olarak tamamlayabilen bir eklenti de bulunmaktadır. Mathematica Kernel, ayrıca bir komut satırı ön yüzü içerir.

Diğer arayüzler arasında GNU Readline tabanlı JMath ve UNIX komut satırından bağımsız Mathematica programlarını (argümanlarla birlikte) çalıştıran WolframScript bulunmaktadır.

Mathematica dosyaları için dosya uzantısı .nb ve yapılandırma dosyaları için .mdir.

Mathematica tamamen kararlı ve önceki sürümlerle geriye dönük olarak uyumlu olacak şekilde tasarlanmıştır.

Yüksek performanslı hesaplama 
Yüksek performanslı hesaplama için yetenekler, sürüm 4 (1999) ve seyrek matrisler (sürüm 5, 2003) ile paketlenmiş dizi'lerin tanıtılması ve yüksek hassasiyetli aritmetiği değerlendirmek için GNU Çoklu Hassas Aritmetik Kütüphanesi'nin benimsenmesiyle genişletildi.

Sürüm 5.2 (2005), çok çekirdekli bilgisayarlarda hesaplama yapıldığında otomatik multi-threading özelliğini ekledi. Bu sürüm CPU'ya özel optimize edilmiş kütüphaneler içermektedir. Buna ek olarak Mathematica, ClearSpeed gibi üçüncü taraf uzman hızlandırma donanımları tarafından da desteklenmektedir.

2002 yılında, gridMathematica heterojen kümeler ve çok işlemcili sistemlerde kullanıcı düzeyinde paralel programlama yapılmasına izin vermek için tanıtıldı ve 2008 yılında paralel hesaplama teknolojisi Windows HPC Server 2008, Microsoft Compute Cluster Server ve Sun Grid gibi grid teknolojisi desteği de dahil olmak üzere tüm Mathematica lisanslarına dahil edildi.

CUDA ve OpenCL GPU donanımları için destek 2010 yılında eklenmiştir.

Eklentiler 
Sürüm 13 itibariyle Wolfram Language'de 6.051 yerleşik işlev ve sembol bulunmaktadır. Stephen Wolfram, halka açık Wolfram topluluğunun Wolfram Language'e işlevsellik katmasının bir yolu olarak Haziran 2019'da Wolfram İşlev Deposu'nun (Wolfram Function Repository) başlatıldığını duyurdu. Stephen Wolfram'ın Mathematica 13 için yayın duyurusu yaptığı sırada, Kaynak İşlevleri (Resource Functions) olarak katkıda bulunulan 2.259 işlev vardı. Wolfram İşlev Deposu'na ek olarak, hesaplanabilir veriler içeren bir Wolfram Veri Deposu (Wolfram Data Repository) ve makine öğrenimi için Wolfram Sinir Ağı Deposu (Wolfram Neural Net Repository) bulunmaktadır.

Wolfram Mathematica, programa kombinatorik ve grafik teorisinde ayrık matematik işlevselliği ekleyen Combinatorica paketinin temelidir.

Diğer uygulamalara, programlama dillerine ve hizmetlere bağlantılar
Diğer uygulamalarla iletişim, Wolfram Sembolik Aktarım Protokolü (WSTP-Wolfram Symbolic Transfer Protocol) adı verilen bir protokol kullanılarak yapılabilir. Wolfram Mathematica çekirdeği ile ön uç arasında iletişime izin verir ve çekirdek ile diğer uygulamalar arasında genel bir arayüz sağlar.

Wolfram Research, C programlama dilinde yazılmış uygulamaları, Mathematica'dan hesaplamalar yapmasını isteyebilen bir Java programı olan J/Link kullanarak WSTP aracılığıyla Mathematica çekirdeğine bağlamak için bir geliştirici kitini ücretsiz olarak dağıtmaktadır. Benzer işlevsellik .NET/Link ile, ancak Java programları yerine .NET programları ile elde edilir.

Mathematica'ya bağlanan diğer diller arasında Haskell, AppleScript, Racket, Visual Basic, Python, ve Clojure bulunmaktadır.

Mathematica, sistem modelleme için Modelica modellerinin oluşturulmasını ve yürütülmesini destekler ve Wolfram System Modeler ile bağlantı kurar.

Birçok üçüncü taraf yazılım paketine ve API'lere de bağlantılar mevcuttur.

Mathematica, ayrıca çeşitli kaynaklardan gerçek zamanlı veri yakalayabilir ve halka açık blok zincirlerini (Bitcoin, Ethereum ve ARK) okuyabilir ve yazabilir.

220'den fazla veri, görüntü, video, ses, bilgisayar destekli tasarım (CAD), coğrafi bilgi sistemi (GIS), belge ve biyomedikal formatın içe ve dışa aktarılmasını destekler.

2019'da Wolfram Language kodunu LLVM'ye derlemek için destek eklendi.

Wolfram Language'in 12.3 sürümü ile Arduino için destek eklendi.

Hesaplanabilir veri 
Mathematica ayrıca, Mathematica'yı internet bağlantısı ile kullanan kullanıcılar için bazıları gerçek zamanlı olarak güncellenen ek veriler sağlayan çevrim içi bir cevap motoru olan Wolfram Alpha ile de entegre edilmiştir. Veri setlerinden bazıları matematiksel verilere (düğümler ve çokyüzlüler gibi) ek olarak astronomik, kimyasal, jeopolitik, dil, biyomedikal, uçak ve hava durumu verilerini içerir.

Kabul
BYTE 1989'da Mathematica'yı BYTE Ödüllerinin "Distinction (Seçkinlik)" kazananları arasında listeledi ve "çığır açan bir başka Macintosh uygulaması... bir ders kitabından anlaşılması imkansız görünen cebir ve kalkülüsü özümsemenizi sağlayabilir" dedi. Mathematica kapalı kaynak olduğu için eleştirilmiştir. Wolfram Research, Mathematica'yı kapalı kaynak olarak tutmanın iş modelinin ve yazılımın sürekliliğinin merkezinde yer aldığını iddia ediyor.

Ayrıca bakınız 

Çok paradigmalı programlama dilleri karşılaştırması
Sayısal analiz yazılımları karşılaştırması
Programlama dilleri karşılaştırması
Düzenli ifade motorları karşılaştırması
Dinamik programlama dili
Dördüncü nesil programlama dili
Fonksiyonel programlama
Bilgisayar cebir sistemleri listesi
Bilgisayar simülasyon yazılımları listesi
Bilgi grafikleri yazılımları listesi
Literate programming
Matematiksel işaretleme dili
Matematiksel yazılım
WolframAlpha, bir web cevap motoru
Wolfram Language
Wolfram SystemModeler, Mathematica ile entegre olan bir fiziksel modelleme ve simülasyon aracı
SageMath

Kaynakça

Konuyla ilgili yayınlar
 Mathematica, Doç. Dr. Enis SINIKSARAN, Türkmen Kitabevi

Dış bağlantılar 

Mathematica Documentation Center
A little bit of Mathematica history; kod tabanının ve işlev sayısının zaman içindeki büyümesini belgeler.

Çizim yazılımları
Simülasyon programlama dilleri
Pi sayısı
Yer bilimleri grafik yazılımı
Görüntü işleme yazılımları
1988 yazılımları
Bilgisayarlı cebir sistemleri
Çapraz platform yazılımları
Veri madenciliği ve makine öğrenimi yazılımları
Matematik yazılımları
Sayısal programlama dilleri
Fizik yazılımları
Sahipli çapraz platform yazılımları
Qt kullanan yazılımlar