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

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: