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();