Gauss Eleme Yöntemi

Programda kullanıcıdan

  • Matris boyutunu
  • Katsayılar matrisinin elemanlarını
  • Değer matrisinin elemanları

Girdilerin sonucunda katsayılar matrisini, değer matrisini ve bilinmeyenlerin sonuçlarını görüntülenmektedir.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//www.delimuhendis.com

namespace GaussElemeYontemi
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Matris boyutunu giriniz: ");
            int boyut = Convert.ToInt32(Console.ReadLine());

            double[,] matris = new double[boyut, boyut];
            double[] deger = new double[boyut];

            
            
            for (int i = 0; i < boyut; i++)
            {
                for (int j = 0; j < boyut; j++)
                {
                    Console.Write((i + 1) + "satir" + (j + 1) + ".sutundaki elemani giriniz: ");
                    matris[i, j] = Convert.ToDouble(Console.ReadLine());
                }
            }

            
            for (int i = 0; i < boyut; i++)
            {
                Console.Write((i + 1) + ". degeri giriniz : ");
                deger[i] = Convert.ToDouble(Console.ReadLine());
                
            }
            
            GaussEleme(matris, deger, boyut);
            Console.ReadLine();
        }

        static void GaussEleme (double[,] matris, double [] deger, int boyut)
        {
            for( int i= 0; i< boyut; i++)
            {
                double geciciIlk = matris[i, i];
                for (int k = 0; k < boyut; k++)
                {
                    matris[i, k] /= geciciIlk;   
                }
                deger[i] /= geciciIlk;

                  
                for (int j = i + 1; j < boyut; j++)
                {
                    double carpim = matris[j, i] / matris[i, i];
                  
                    for (int l = 0; l < boyut; l++)
                    { 
                        matris[j, l] = matris[j, l] - ( carpim * matris[i, l] );
                    }
                    deger[j] = deger[j] - ( carpim * deger[i]);
                }
            }


            
            
            for(int i=0; i <boyut; i++){
                for(int j=0; j<boyut; j++)
                {
                    Console.Write(matris[i, j] + "\t");
                }

                Console.WriteLine();
            }
            Console.WriteLine();
            for (int i = 0; i < boyut; i++)
                Console.WriteLine(deger[i]);

            double[] sonuclar = new double[boyut];
            sonuclar[boyut-1] = deger[boyut-1];
            
            for (int i = boyut-2; i >= 0; i--)
            {
                double toplam = 0;
                for (int j = i + 1; j < boyut; j++)
                {
                    toplam += matris[i, j] * sonuclar[j]; 
                }
                sonuclar[i] = deger[i] - toplam;
            }

            for ( int i = 0; i < boyut ; i++)
                Console.WriteLine("X(" + i + ") :" + sonuclar[i]);
        }
        
    }
}
Become a patron at Patreon!

“Gauss Eleme Yöntemi” için bir yorum

  1. çok teşekkür ederim çoook faydalı bi paylaşım oldu.
    ama şöyle bi durum var katsayıları
    5*X1 +3*X2-5*X3=16
    5*X1 +3*X2-5*X3=5
    5*X1 +3*X2-5*X3=3
    gibi durum da da kod çalışıyor .bu durumu kontrol ettirseniz daha güzel olur.
    Tekrar ç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: