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]); } } }
ç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…