Cramer Yöntemi

Programda kullanıcıdan

  • Matris boyutunu
  • Bilinmeyen katsayı matrisi verilerini
  • Değer matrisi verilerini

Program Kodu
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//www.delimuhendis.com
namespace Determinant
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();

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

            int[] degerMatrisi = new int[boyut];

            Console.WriteLine("Asıl matris oluşturuldu. Değer küme matris için değerleri giriniz: ");
            for (int i = 0; i < boyut; i++)
            {
                Console.Write(i + 1 + ". satir giriniz.(deger için) : ");
                degerMatrisi[i] = Int32.Parse(Console.ReadLine());
            }


            Console.WriteLine("Determinant Sonucu : " + DeterminantHesap(matris));
            CramerYontemi(matris, degerMatrisi);
            Console.ReadLine();
        }

        static void CramerYontemi(int[,] matris, int[] degerMatrisi)
        {
            int boyut = degerMatrisi.Length;
            int det = Convert.ToInt32(DeterminantHesap(matris));
           
           
            
            for (int i = 0; i < boyut; i++)
            {
                int[,] matrisYedek = (int[,])matris.Clone();
                for (int j=0; j <boyut; j++)
                    matrisYedek[j, i] = degerMatrisi[j];   
                
                Console.WriteLine("X" + (i+1) + " bilinmeyeni : " + (DeterminantHesap(matrisYedek)/det));
            }
        }

        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!

“Cramer Yöntemi” için bir yorum

  1. elinize kolunuza sağlık vize ödevim vardı bakmadığım yer kalamıştı burada buldum. çok teşekkür ederim

sugüm için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.