# 10 minute (wx)Maxima tutorial

Maxima'ya Hoşgeldiniz! 
Maxima Mathematica, Maple, Matlab ve diğer sistemler gibi bir BCS Bilgisayar Cebiri Sistemi)dir.
İndirilen Maxima paketinin içinde iki tane kullanıcı arayüz
bulunmaktadır; wxMaxima ve Xmaxima.Kısa bir giriş niteliğinde olan bu notlar ile
wxMaxima ve Xmaxima'yı kullanırken gereksinim duyulan en temel bilgileri öğreneceksiniz.
Xmaxima, Maxima'nın komut satırı arayüzü özellikle yeni başlayan kullanıcılar için
kullanımı zor olan bir arayüzdür. Diğer bir arayüz ise wxMaxima'dır.
GUI (Grafiksel Kullanınıcı Arayüzü)olan wxMaxima, Maxima'nın kullanımını daha 
kolay ve eğlenceli hale getirmektedir.

Bazı basit hesaplama örnekleri ile başlayalım.Aşağıda basit bir toplama işlemi
bulunan bir girdi satırı görüyorsunuz. Farenin imlecini satırın herhangi bir yerine getirip
SHIFT ve ENTER tuşlarına aynı anda basınız. Girdi satırının altında bir 
Çıktı satırı oluştuğunu ve (1+1) in  değerlendirmeye tabi tutularak sonucun 2 olarak
elde edildiğini göreceksiniz.

*Girdilerinizin değerlendirilmesi için SHIFT-ENTER tuşlarına aynı anda basmalısınız.
           

1 + 1;

%i1------ birinci girdi satırı (i, input- girdi nin kısaltılmışıdır.)
%o1-------birinci çıktı satırı (o, output-çıktı nın kısaltılmışıdır.)

Komut Satırlarının Sonlandrılması

";"-------komut sonlandırma işaretçisi: ";" (noktalı virgül)ile sonlandırılan girdi 
          satırlarının sonuçları çıktı satırında gösterilir.
"$"-------komut satırı sonlandırma işaretçisi: "$" dolar işareti ile sonlandırılan 
          girdi satırlarının sonuçları DEĞERLENDİRİLİR ancak çıktı satırında GÖSTERİLMEZ!
          Çok uzun çıktıların sayfada yer kaplamaması adına güzel bir özellik!
   

4+4;

4+4$

Şimdi örneklermize devam edelim. Aşağıdaki beş satırdan oluşan 
girdilerin bulunduğu yere gelip SHIFT- ENTER tuşlarına aynı ayna basınız

5!;
% * 10;
%o1 * 100;
1 / 3;
1.0 / 3.0;

Yukarıdaki tek bir GİRDİ HÜCREsinde,Maxima'ya  5 satırda 5 komut gönderdik.
";" ile sonlandırılan her bir satırın çıktısı farklı çıktı numaraları ile
farklı satırlarda gösterildi.
Burada dikkat edilmesi geren şeylerden birisi 1/3 ve 0.3333333 sonuçlarıdır.
Bunu nedeni Matlab gibi numerik BCS lerin tersine hesaplamaları kesin bir sonuç
olarak tutmaya çalışmasıdır. (1/3) ya da sqrt(2) gibi komutların sonuçları numerik-sayısal olarak gösterilemez.
Maxima bunlara (a/b) yada sqrt(a) gibi sembolik bir yaklaşım sergiler.
Ancak "1.0/3.0" gibi bir şekilde girilirse işelem değerlendirilir ve 0.333333 gibi
ondalık sayılı cevaplar alınır.... (1/3) girdisinin çıktısıyla aynı olması Maxima'nın
onu değerlendirmediği anlamına gelmez.

Not: Ondalıklı sayılarda hassasiyet, yani virgülden sonraki basamakların
artması,
* floating point numbers "kayan noktalı sayılar"  ve 
* big floating point numbers "büyük kayan noktalı sayılar" 
kavramlarını ortaya çıkarmıştır. (Her iki kavram da virgülden sonraki 
hassasiyeti ifade eden bilgisayar biliminde kullanılan terimlerdir. 
Yani bildiğimiz ondalık sayılar.Kafa karıştırmaya gerek yok.)

sqrt(2 * %pi);
float(%);

* "%" işareti bir üst satırda bulunan "şeyleri"(sembol,sayı,grafik vs.) gösterir.
* "%on" ifadesi is "n" numaralı satır işaret eder. 

*float komutunun bulunuduğu satıra dikkat edelim; float(%).
"%" işareti "bir üstteki çıktı satırındakileri"  gösterir.
Buradaki float(%) ifadesi  bir üst satırdaki sqrt (2*%pi) ifadesini sayısal hale dönüştürür.
 
*Aynı şekilde, "%o1", "%o2" gibi çıktı satırları daha sonraları numaraları 
(%o2,%o3...)gibi kullanılarak değerlendirilmeye tabi tutulabilir.
Örnek
%o2+%o6:  'ikinci ve altıncı çıktı satırlarındakileri topla' demektir.


*Sadece sayılar değil aynı zamanda bütün ifadeler de değişkenlerle tanımlanabilir.
değişken_adı: değer şeklinde değişkenlere atamalar
yapılabilir. Aşağıdaki satırları değerlendirmeye tabi tutarak gözlemleyiniz.

radius: 10 $
height: 100 $
area: %pi * radius^2;
volume: area * height;

En son sonucun sayısal değerini bulalım.

float(%);

Şimdiye kadar Maxima'yı basit bir hesap makinesi olarak kullandık.
Şimdi hesap makinesi ile mümkün olmayan şeyler deneyelim:
Belirli ve belirsiz integral:

integrate( sin(x), x);
integrate( sin(x), x, 0, %pi);

Bir fonksiyon tanımlayalım değerlendirelim ve integralini alalım!

f(x) := x^2 + a$
f(5);
f(5), a = -5;
integrate( f(var), var );

Bazen, Maxima bir ifadeyi değerlendirmek içiçn ek bilgilere gereksinim duyar ve
sorular sorar. Bir soruyu cevaplamanız gerektiğini gösteren bir imleç belirir.
Örneğin integral hesaplarında değişkenlerin positif, negatif ya da sıfır mı olduklarını
sorar. Positif ise "p" negatif ise "n" sıfır ise "z" yazıp enter+shift a basmanız gerekir.
Bu durumu içeren integral hesabı aşağıda verilmiştir.

integrate( 1 / (x^2 + a), x);

Önceden bazı değişkenleri Maxima'ya "assume" komutu ile tanıtabiliriz.
Bu tanımlamayı (önşartı) "forget" komutu ile yaparız.

* Bir fonksiyon ile ilgili yardıma ihtiyacımız olduğunda fonksiyon tiklenerek 
işaretlenir ve F1 e basılır.

assume(a > 0)$
integrate( 1 / (x^2 + a), x);
forget(a > 0)$

Şimdiye kadar bazı temel özellikleri öğrendiniz, genel Matematikten konularından bir kaç
örnek görme zamanı!
"solve" işlemcisini kullanarak denklem çözelim.

solve(a*x^2 + b*x + c = 0, x);

Doğrusal cebir. "matrix" komutu ile matris oluşturulur. Matrisler sayısal olmayan
ifadeler içerebilir. Matrisin tersini hesaplamak için "invert", matrislerin
çarpımını hesaplamak için "." kullanılır.

A: matrix([1,-1],
          [1,sin(c)]);
B: invert(A);

A.B;
ratsimp(A.B);

Enson satırda "ratsimp" komutunu "A.B" çarpımının sonucunu sadeleştirmek için 
kullandık. İstediğiniz türde sadeleştirme yapmak için Maxima bir çok sadeleştirme
işlemcisine sahiptir."ratsimp" sizin için doğru bir atış olablir.

Şimdi 2-B ve 3-B çizixler yapalım
* "wxplot3d" ifadesindeki "wx" grafik çizimi belge üzerinde resim gibi gerşekleşir.
   "plot3d" yazldığında grafik ayrı bir sayfada gelir.
* "plot2d" ve "plot3d" iki ve üç boyutlu çizimleri "plot" paketi ile yapar.
   Ayrıca "draw" paketi de çizimler için kullanılmaktasır.  "plot" için herhangi bir paket 
   çağırılması gerekmez. "draw" paketini herhangi bir girdi satırına " load(draw);" yazarak
   yükleyebilirsiniz.   
 Aşağıdaki çizimleri "wx"leri silerek deneyiniz. 

wxplot2d([sin(x), cos(x)], [x,0, 2*%pi]);
wxplot3d( exp(-x^2 - y^2), [x,-2,2],[y,-2,2]);

"diff" işlemcisi ile diferansiyel alalım.

f(x) := x^2 $
diff(f(x), x);
g(y) := sin(y)$
g(f(x));
diff( g(f(x)) , x);

Evet, Maxima "Zincir Kuralı" nı bilir!

Ve son olarak  ikinci dereceden ADD
y''(t) + omega^2 * y(t) = 0
çözelim.

assume(omega > 0);
ode2( 'diff(y, t, 2) + omega^2 * y = 0, y, t );

ic2(%, t = 0, y = amp, 'diff(y,t) = 0 );

Artık kendiniz wxMaxima'yla  çalışmaya başlayabilirsiniz. Karşılaştığınız
sorunları F1 yardımı ile çözmeye çalışın.
Kolay gelsin..

Bu çeviri 10 minute (wx)Maxima tutorial belgesinin bir çevirisidir.

Çeviri:

  Tufan Şirin 
tufanshirin@gmail.com