Gauss Jordon Yönetimi ile İnvers Matris ve Problem Cözümü
Main classimiz programi run edecegimiz kisim
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner klavye=new Scanner(System.in);
System.out.println("lutfen matrisin satir sayisini giriniz");
int str=klavye.nextInt();
System.out.println("lutfen matrisin sutun sayisini giriniz");
int stn=klavye.nextInt()+str;
double Array[][]=new double [str][stn];
GausJordonYontemi yontem=new GausJordonYontemi(str,stn);
//matris olustur
for(int i=0;i<str;i++){
for(int j=0;j<stn;j++){
if(j<stn-1){
System.out.println("matris degeri gir ");
Array[i][j]= klavye.nextInt();
}else{
System.out.println("sonuc degerleri gir");
Array[i][j]= klavye.nextInt();
}
}
}
yontem.yazdir(Array);
yontem.esolanformdonusumu(Array);
System.out.println("---------------");
yontem.altucgensel(Array);
System.out.println("---------------");
yontem.yazdir(Array);
System.out.println("inverst matrisimiz");
yontem.sonuc2(Array);
}
}
Bu kisim gauss jordon yondemi ile tersine ve n bilinmiyenli problemin gauss jordon invers yöntemiyle cözüldügü kisim
public class GausJordonYontemi {
int str;
int stn;
public GausJordonYontemi(int str,int stn){
this.stn=stn;
this.str=str;
}
public void esolanformdonusumu(double Array[][]){
double temp;
for(int i=0;i<str;i++){
temp=Array[i][i];
for(int j=i;j<stn;j++){
Array[i][j]=(Array[i][j]/temp);
System.out.println("-------------");
yazdir(Array);}
for(int k=i+1;k<str;k++){
temp=-1*Array[k][i];
for(int t=i;t<stn;t++){
Array[k][t]=Array[k][t]+(Array[i][t]*temp);
} System.out.println("-------------");
yazdir(Array); }
System.out.println("-------------");
yazdir(Array);
}}
public void altucgensel(double dizi [][]){
double temp;
for(int i= dizi.length-2;i>=0;i--){
for(int j=i+1;j<dizi.length;j++){
temp=-1*dizi[i][j];
dizi[i][j]= dizi[i][j]+ temp;
for(int k=dizi.length;k<dizi[0].length;k++){
dizi[i][k]=dizi[i][k]+(dizi[j][k]*temp);
}
}
}
}
public void sonuc(double Array[][]){
double ArraySonuc[][]=new double [str][stn-str];
for(int i=0;i<str;i++){
for(int j=0;j<stn-str;j++){
ArraySonuc[i][j]=Array[i][j+stn-str];
}
}
for(int i=0;i<str;i++){
for(int j=0;j<stn-str;j++){
System.out.print( ArraySonuc[i][j]);
System.out.print(" ");
}System.out.println(" ");
}
}
public void sonuc2(double Array[][]){
double ArraySonuc[]=new double [str];
ArraySonuc[str-1]=Array[str-1][stn-1];
for(int i=str-2;i>=0;i--){
ArraySonuc[i]=Array[i][stn-1];
}
System.out.println("sirasiyla X bilinmeyen degerleri=");
for(int i=0;i<str;i++)
System.out.println(ArraySonuc[i]);
}
public void yazdir(double Array[][]){
for(int i=0;i<str;i++){
for(int j=0;j<stn;j++){
System.out.print(Array[i][j]);
System.out.print(" ");
}System.out.println(" ");
}
}
}
Yorumlar
Yorum Gönder