MATRIXCRAFT
Retro bilgisayarMatris İşlemleri Programı
İşiniz gereği matris işlemleri ile uğraşıyor, boyutları büyük olan matrisler karşısında zor durumda kalıyor musunuz? Eğer cevabınız 'Evet' ise, bu program tam size göredir. Simons Basic ile hazırlanan bu program en fazla 20x20 boyutunda olan matrisler için büyük temel matris işlemlerini (çarpma, tersini ve tranpozunu bulma, determinant hesabı vb.) yapmaktadır.
Diğer taraftan, sonuçlar isteğe bağlı olarak ekrana veya Printer'e gönderilebilmektedir. Programın bir diğer üstünlüğü ise zincirleme hesaplamalara büyük kolaylık getirmesidir. Örneğin, A ile B matrisini çarparak sonucu C matrisi ile toplamak istiyorsunuz. İlk önce A ile B'yi çarpıp sonucu bir kenara not etmek, daha sonra bu sonucu tekrar bilgisayara verip C ile toplanmasını söylemek zaman kaybettirici bir işlemdir. Bunun yerine, bu programda, herhangi bir matrisin satır ve sütun sayıları verilirken, satır sayısı yerine "P" harfini vermek, o matrise bir önceki işlemin sonucu olan matrisin nakledilmesini sağlayacaktır. Böylece A ile B'yi çarptıktan sonra sonuç matrisin elemanlarını bilgisayara tekrar vermeden, onu C matrisi ile toplamasını bilgisayara söyleyebiliriz. Diğer taraftan, matris elemanlarının bilgisayara verilmesi ve yanlış yazılan verinin düzeltilmesi de oldukça kolaydır. Ayrıca program tamamen modüler olarak hazırlanmıştır. Bütün temel işlemleri içeren rutinler alt-programlar halindedir. Böylece, bu temel işlemleri içeren değişik bir matris işlemi programa kolaylıkla adapte edilebilir. Örneğin, programda, 'Ek Matris' fonksiyonu bu şekilde hazırlanmıştır. Bunda kolaylık sağlamak amacıyla alt-programlarda kullanılan parametreleri ve anlamlarını aşağıda bulacaksınız.
M1 (i,j,k) (i = <2,j=<20,K= < 40): Veri olarak girilen matrislerin saklandığı değişken.
M2 (j,k) (i = <20,K= < 20): Sonuç matrisin saklandığı değişken.
SK: Matris ile çarpılacak olan skalerin saklandığı değişken.
FF (FF=1 veya FF=0): Matrisin tersi bulunurken kullanılan flag (FF=0 matrisin tersi vardır, FF=1 matrisin tersi yoktur).
RN (i): Veri olarak girilen matrisin satır sayısı. (i: Matris #)
RN, CN: Veri olarak en son girilen matrisin veya sonuç matris satır ve sütun sayıları.
DT: Matrisin determinantının saklandığı değişken.
I (l = 1 veya l = 2): İşlemlerde kullanılacak olan veri matrisinin numarası. Örneğin determinant hesabı yaparken l = 1 olmalıdır. (M1(1,j,k))
Değişkenleri belirttikten sonra, şimdi de programdaki işlemleri kısaca tanıtıp nasıl kullanılacaklarını görelim.
Matrislerin Toplamı: Satır ve sütun sayıları aynı olmak koşulu ile herhangi iki matrisi, karşılıklı elemanları birbiriyle işleme sokmak suretiyle toplayabiliriz. Programın bu fonksiyonu bu işlemi yerine getirmektedir.
Matrisin Skalerle çarpımı: Herhangi bir skaleri, bir A m x n matrisinin her elemanı ile çarparak yeni bir matris yaratabiliriz. Programın bu kısmı matrisleri verilen bir skalerle çarpmaktadır.
Matrislerin Çarpımı: Bir A m x n matrisi ile diğer bir B K x 1 matrisini, eğer m = 1 koşulu sağlanıyorsa birbirleri ile çarpabiliriz. Anlaşıldığı üzere, birinci matrisin satır sayısı ikinci matrisin sütun sayısına eşit olmalıdır. Bu koşulu sağlamayan matrislerin çarpımı tanımsızdır. Bilgisayara satır ve sütun sayılarını verirken bu noktaya dikkat etmelisiniz.
Matrisin Tersi: Eğer A n x n X B n x n = I n x n (I=Birim Matris) koşulunu sağlayan iki A n x n ve B n x n matrisi varsa bu matrisler birbirlerinin 'Ters' matrisleridir. Bir matrisin tersinin bulunabilmesi için, matrisin kare matris olması ve determinantının sıfırdan farklı olması gerekmektedir. Matrislerin tersleri, programda kullanılan numerik metod sayesinde oldukça hızlı olarak bulunmaktadır.
Matrisin Transpozu: Bir transpozu devriği, o matrisin satır elemanlarını sütun, sütun elemanlarını da satır elemanı haline getirilerek yapılır. Tabii, satır ve sütun sayıları da karşılıklı olarak yer değiştirir.
Matrisin Determinantı: Programın bu bölümünde herhangi bir kare matrisin determinantını bulacağız. Herhangi bir n x n boyutundaki matrisin determinantı, n'nin her bir permutasyonunun gösterdiği (Permutasyonların sayısı = n!) matris elemanlarının birbirleriyle çarpımının toplamıdır. Her çarpımın işareti permutasyonun
tek veya çift olmasına bağlı olarak değişir. Bunu en iyi şekilde aşağıdaki örnekte görebilirsiniz. Matrisin determinantı D(a) simgesi ile gösterilir.
Örnek:
n=3 = > n'nin bütün permutasyonlarının sayısı=n!=6
1 2 3 4 1 A =1 5 0 9 1 1 0 2 2 1
P1 = 1 2 3=>a11*a22*a33*sgn=0*(1)
P2 = 1 3 2=>a11*a23*a32*sgn=36*(-1)
P3 = 2 1 3=>a12*a21*a33*sgn=30*(-1)
P4 = 2 3 1=>a12*a23*a31*sgn=0*(1)
P5 = 3 1 2=>a13*a21*a32*sgn=40*(1)
P6 = 3 2 1=>a13*a22*a31*sgn=0*(-1)
Det(A)=0-36-30+0+40= -26
Çarpımların işaretleri ise permutasyonun tek veya çift olmasına göre değişmektedir. Örneğin, P3 bir tek permutasyondur. Çünkü, P2 = 1 2 3 dizisinde ilk elemanın (burada 1) sağında kendisinden küçük hiç bir eleman yoktur. Aynı şey son eleman için de geçerlidir. Ama 2. elemanın (3) sağında kendisinden küçük 2 bulunmaktadır. Böylece, bütün elemanların sağında bulunan kendisinden küçük elemanların sayısının toplamı 1'dir (0+0+1 = 1). Ve 1 tek sayı olduğundan permutasyon tek'tir ve çarpımın işareti (-1)t = -1'dir.
Ek matris: Bir A matrisinin eşçarpanlarından meydana gelen B matrisinin, devriği olan matrise, A matrisinin 'Ek Matris'i denir. Ve ek(A) şeklinde gösterilir. Program ise, ek matrisi bulurken aşağıda gösterilen teoremi kullanmaktadır.
ek(A) = A * D(A)
Son olarak, matris elemanlarının bilgisayara ne şekilde verilip, yanlış yazılan verinin nasıl düzeltileceğini açıklayalım.
Matris elemanlarını bilgisayara verirken, bilgisayar her elemanı ufak bir kare ile sembolize ederek, eleman sayısı kadar kareyi ekrana basacaktır. Daha sonra bir kursör ilk elemanı belirten karenin üstüne gelecek ve sizden o elemanın değerini vermenizi bekleyecektir. Siz bu aşamadan sonra, ister elemanı verip bilgisayarın bir sonraki elemanın değerini istemesini sağlar, isterseniz de kursör tuşlarıyla istediğiniz kutu'nun (kare) üstüne gelerek o elemanın değerini verebilirsiniz. Hangi satır ve sütunda olduğunuz ekranın üst tarafına yazılacaktır. Herhangi bir veriyi düzeltmek için kursör tuşlarıyla o veriyi temsil eden kutunun üzerine gelip doğrusunu yazarak return tuşuna basmanız yeterlidir. Matrisin son elemanını da verdikten sonra, bilgisayar duruma göre, ya ikinci matrisin elemanlarını isteyecek, ya da gereken işleme başlayacaktır. Ayrıca kursör ile kutuların üzerinde dolaşırken her kutunun içeriği yazılacak ve içine veri yerleştirilen kutular renk değiştireceklerdir. Programın işlerinizi kolaylaştırmasını dilerim.