GNU Octave ile Vektör İşlemleri

Niye GNU Octave?

Mühendislik uygulamalarında matematiksel işlem yazılımlarından en popüler olanları; MATLAB, Maple ve Mathematica'dır diyebiliriz. Ancak bu üç aracın popülerlikten başka bir ortak yanı daha var: üçü de ücretli ve oldukça pahalı. Bu kadar açık kaynak yazılım varken, bu araçlara açık kaynak bir alternatif olmaması tabii ki mümkün değil. Scilab ve Sage gibi başka alternatifler olsa da, benim favorim bir GNU altprojesi olan Octave (yani 'oktav').
GNU Octave'in kurulumu oldukça basit olduğu için o kısmı size bırakıyorum. Octave ile yapılabilecek pek çok şey olmakla beraber, vektörlerin Octave'de kullanımıyla ilgili ne İngilizce ne de Türkçe olarak doyurucu bir kaynak bulabildim. Bu yazıda biraz bu açığı kapatmaya çalışacağım.

Vektör Değişkenleri ve Özellikleri

Octave'de vektörler, bir sıra veya sütun matrisi olarak tanımlanıyor. Mesela; bir V vektörü,

aşağıdaki gibi bir satır matrisi olarak gösterilebilir:

Octave'de matrisler için aşağıdaki kurallar geçerli:

  1. Matris ifadesi [ ve ] içinde olmalı
  2. Aynı satırdaki elemanlar boşluk veya virgül ile ayrılmalı
  3. Satırlar noktalı virgül ile ayrılmalı
Mesela, Octave interaktif konsolunu açıp aşağıdaki ifadeyi girerek bu V vektörünü tanımlayalım:
V = [3 4 5]
Eğer ifadeleri "i" ile sonlandırmazsak, Octave son girilen ifadenin değerini göstererek sonraki ifadeyi beklemeye başlıyor.
Diyelim ki bu vektörün şiddetini bulmak istiyoruz. Bunun için norm fonksiyonunu kullanabiliriz:
norm(V)
İfadeyi noktalı virgülle sonlandırmadığınız için, cevap olarak aşağıdaki çıktıyı alırız:
ans = 7.0711
Burada ans, tahmin edebilebileceği gibi İngilizce answer (cevap) kelimesinin kısaltmasıdır. Peki ya V vektörünün, birim vektörünü bulmak istersek? Octave'de, bir operatör önüne gelen nokta, taraflar matris ise işlemin her elemana uygulanacağı anlamına gelir. Tanım V vektörünün birim vektörünü bulmak için, vektörün her elemanını vektörün şiddetine bölmemiz gerekir:
V ./ norm(V)
Cevap olarak aşağıdaki vektörü alırız:
ans = 

    0.42426    0.56569    0.70711


Devam edecek...

Comments

Popular Posts