Gauss jordan indirgeme yöntemi
* Gauss-Jordan Yndirgeme Yöntemi Uygulamasy
Hazyrlayan : Mahmut ACAR
Bu uygulama #define str 4 de?eri ve dizi[][]= de?eri de?i?tirilerek
daha büyük dizilere uygulanabilir.
*/
#include <iostream>
#include <stdlib.h>
#define str 4 // satyr sayysy giriliyor
#define stn str+1 // sütün sayysy=satyr+1 giriliyor
using namespace std;
void yaz( double x[str][stn] ); // dizi'nin ekrana yazdyrylmasy
int main(int argc, char *argv[])
{
double dizi[str][stn]={13,5,-3,1,18, // Dizi degerleri de?i?kene atanyyor
2,12,1,-4,13,
3,-4,10,1,29,
2,1,-3,9,31};
double temp;
cout<<endl<<"Girilen Matris"<<endl; // Ekrana giri? dizisi yazdyrylyyor.
yaz(dizi);
for (int q=0;q<str;q++){
temp=dizi[q][q];
for (int a=q; a<stn;a++){ // q'ncü satyryn q'ncü elemanyny 1'e e?itliyoruz
dizi[q][a]=dizi[q][a]/temp;} // 1'e e?itleme bitti
for(int b=q+1;b<str;b++){ // ileri do?ru yok etme uygulanyyor
temp=-1*dizi[b][q];
for (int a=0; a<stn;a++){ // Üst üçgen matris elde ediliyor.
dizi[b][a]=dizi[b][a]+(dizi[q][a]*temp);}}}
cout<<endl<<"Ust Ucgen Matris Elde Edildi"<<endl;
yaz(dizi);
for (int q=str-2; q>=0 ; q--){ // Birim matris formuna indirgeniyor
for (int a=q+1; a<stn-1; a++){ // Ylgili sütun ve son sütun üzerinde i?lem yapylyyor
temp=-1*dizi[q][a];
dizi[q][a]=dizi[q][a]+(dizi[a][a]*temp);
dizi[q][stn-1]=dizi[q][stn-1]+(dizi[a][stn-1]*temp);}}
cout<<endl<<"Birim Matris Elde Edildi"<<endl;
yaz(dizi); // Elde edilen birim matris ekrana yazdyrylyyor
system("PAUSE"
;
return 0;
}
void yaz ( double x[str][stn] ) // Dizi de?erlerinin ekrana yazylmasy
{
cout<<"-----------------------------------\n";
for ( int m=0; m<str; m++){
for (int n=0; n<stn-1 ; n++){
cout<<"X"<<n+1<<" = "<<x[m][n]<<" ";}
cout<<"Y="<<x[m][stn-1]<<endl;
}}