Eski bir matematiksel fizikçi (şu anda da Mathematica’da
yazılımcı) olan Leonid Shifrin’in “Mathematica Programming: An
Advanced Introduction” kitabını internetten bul, indir (zaten
ücretsiz). Formal bir Mathematica eğitimi için bu kitabı okumanı
şiddetle tavsiye ederim!
Eğer halihazırda yordamsal programlama (procedural language)
biliyorsan, buradaki bir çok yapı Mathematica’da da mevcut (for
loop, if-then statements, while loop gibi). Fakat Mathematica’da
bu yapılar oldukça verimsiz, çünkü Mathematica yordamsaldan
ziyade fonksiyonel bir programlama dili (functional programming
language). Bu yüzden C, Python, Matlab gibi dillere alışkın olanlar,
Mathematica kullanırken programlama tarzlarını değiştirmek
zorundalar. Shifrin’in kitabında örnek kodlarla nasıl yaklaşılması
gerektiği detaylıca anlatılıyor!
Eğer halihazırda fonksiyonel bir programlama diline (örneğin
Haskell gibi) alışkınsan, Mathematica’yı bir çok açıdan
sıkıntılı bulabilirsin: Mathematica by default eager-evaluation, very
weakly-typed (üstelik statically typed da değil), ve Mathematica
programları compiled değil interpreted (o yüzden hem daha
yavaş hem debugging daha zor). Aslında Mathematica tam olarak
fonksiyonel bir dil de değil, kendi değimleriyle bir expressional
language (zaten motto’ları da “everything is an expression”). Dilin
bu kadar esnek olmasının ona kazandırdığı bir çok avantaj da var,
yukarıda yazdığım Shifrin’in kitabında daha detaylı görülebilir.
Mathematica stackexchange oldukça faydalı tartışmalar içeriyor!
Günlük yarım saat çok oy almış sorular ve cevaplarına bakınmak
ilerlemende çok verimli olabilir; yine ilgine göre aynı sitede
yeni sorulara günlük bakabilir ve hoşuna gidenleri çözmeye
çalışabilirsin!
Mathematica’yı teorik fizik için bu kadar değerli kılan, sembolik
hesaplama kabiliyeti ve matematiksel fonksiyon desteği! Wolfram’ın
ilgili sitesinde Mathematica’da tanımlı fonksiyonlar ve bunların
Mathematica’ca bilinen bütün özellikleri var. Örneğin bu
sayfadaBessel function of the first kind’ın Wronskian’ının sağladığı
diferansiyel denklem, ve bu denklemin Mathematica’da nasıl
yazılabileceği var. Bu siteyi karıştırarak ve oradaki matematiksel
bilgileri Mathematica ile kontrol ederek hem matematiğini hem de
Mathematica bilgini geliştirebilirsin!