Matris Determinantı

Programda kullanıcıdan

  • Matrisin boyutu
  • Matrisin tüm satir, sütun verileri

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CramerYontemi
{
    class Program
    {
        static void Main(string[] args)
        {
            
            Console.Write("Kare matrisin boyutunu giriniz:");
            int boyut = Int32.Parse(Console.ReadLine());

            int[,] matris = new int[boyut, boyut];
            for (int i = 0; i < boyut; i++)
            {
                for (int j = 0; j < boyut; j++)
                {
                    Console.Write((i + 1) + ". satir " + (j + 1) + ". sutunu giriniz: ");
                    matris[i, j] = Int32.Parse(Console.ReadLine());
                }
            }

            Console.WriteLine("\n\nMatrisin determinantı : " + DeterminantHesap(matris));
            Console.ReadLine();
        }

        static double DeterminantHesap(int[,] matris)
        {
            int boyut = Convert.ToInt32(Math.Sqrt(matris.Length));
            int isaret = 1;
            double toplam = 0;
            if (boyut == 1)
                return matris[0, 0];
            for (int i = 0; i < boyut; i++)
            {
                int[,] altMatris = new int[boyut - 1, boyut - 1];
                for (int satir = 1; satir < boyut; satir++)
                {
                    for (int sutun = 0; sutun < boyut; sutun++)
                    {
                        if (sutun < i)
                            altMatris[satir - 1, sutun] = matris[satir, sutun];
                        else if (sutun > i)
                            altMatris[satir - 1, sutun - 1] = matris[satir, sutun];
                    }
                }
                if (i % 2 == 0)
                    isaret = 1;
                else
                    isaret = -1;

                toplam += isaret * matris[0, i] * (DeterminantHesap(altMatris));

            }

            return toplam;
        }
    }
}
Become a patron at Patreon!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogcu bunu beğendi: