C# Basit Simetri Matris Yapımı Matrix Symmetry
İlk önce matrisin simetri olabilmesi için kare bir matris olması lazım. Eğer matrisimiz kare değilse simetrisi olmaz.Simetri matris nedir ?
Bir kare matriste tüm elemanlar asal köşegene göre simetrik ise bu matrise simetrik matris denir. a[i,j] = a[j,i] elemanları eşit olmalıdır.
Transpozu kendisine eşit olan matrisler simetri matrisdir.
Örnek sorumuz; bu simetri matrisleri ekrana yazan programı yazalım.
Console.WriteLine("Kare matrisin boyutu");
int boyut = int.Parse(Console.ReadLine());
int[,] simetriMatris = new int[boyut, boyut];
for (int i = 0; i < boyut; i++)
{
for (int j = 0; j < boyut; j++)
{
if (i == j)
{
simetriMatris[i, j] = 0;
}
else if (i > j)
{
simetriMatris[i, j] = i + j;
}
else if (j > i)
{
simetriMatris[i, j] = j + i;
}
}
}
//Ekrana yazdırma işlemi
for (int i = 0; i < boyut; i++)
{
Console.WriteLine("");
for (int j = 0; j < boyut; j++)
{
Console.Write(simetriMatris[i, j] + "\t");
}
}
Console.ReadKey();</code>
Örnek bir soru daha yapalım. Kullanıcının girdiği değerlere göre simetri matris olup olmadığını kontrol eden programı yazalım.
Console.Write("Kare matrisin boyutunu giriniz => ");
int boyut = int.Parse(Console.ReadLine());
int[,] matrisK = new int[boyut, boyut];
bool simetriMi = true;
for (int i = 0; i < boyut; i++)
{
for (int j = 0; j < boyut; j++)
{
Console.Write("K Matrisinin [{0},{1}] :",i,j);
matrisK[i, j] = int.Parse(Console.ReadLine());
}
Console.WriteLine();
}
//Matris A yı ekrana yazdıralım
Console.WriteLine("Matris K");
for (int i = 0; i < boyut; i++)
{
for (int j = 0; j < boyut; j++)
{
Console.Write(matrisK[i, j] + "\t");
}
Console.WriteLine();
}
Console.WriteLine();
//Matrisimizin transpozunu alıyoruz
//Neden: Transpozu kendisine eşit olan matrislere
//simetri matris denir.
int[,] matrisT = new int[boyut,boyut];
Console.WriteLine("Matris K'");
for (int i = 0; i < boyut; i++)
{
for (int j = 0; j < boyut; j++)
{
matrisT[i, j] = matrisK[j, i];//transpozu
//Transpozunu yazalım ekrana
Console.Write(matrisK[i, j] + "\t");
} Console.WriteLine();
}
Console.WriteLine();
//Şimdi ise simetri olup olmadığını kontrol ediyoruz
for (int i = 0; i < boyut; i++)
{
for (int j = 0; j < boyut; j++)
{
if (matrisT[i, j] != matrisK[i, j])
{
simetriMi = false;
break;
}
}
}
if (simetriMi) Console.WriteLine("Girdiğiniz Matris Simetridir.");
else Console.WriteLine("Girdiğiniz Matris Simetri Değildir.");
Console.ReadLine();