Sayısal Yöntemler Gauss Siedel Cözüm Yöntemi
Gauss Siedel problem cözme yönteminin java programlama dilinde kodlanması.
package gausssiedelcozumyontemi;
import java.util.Scanner;
public class GaussSiedel {
int str;
int stn;
int sayac = 0;
double ArrayTemp[];
double C[][];
public GaussSiedel(int str, int stn) {
this.str = str;
this.stn = stn;
ArrayTemp= new double[str];
C = new double[str][stn];
}
public void GaussSiedell(double ArraySonuc[], double Array[][]) {
double toplam = 0;double toplam2=0;
ArrayTemp = ArraySonuc;
for (int i = 0; i < str; i++) {
for (int j = 0; j <= str-1; j++) {
toplam += (Array[i][j] * ArraySonuc[j]);
}
for (int j = i+1; j <str-1 ; j++) {
toplam2 += (Array[i][j] * ArrayTemp[j]) ;
}
ArraySonuc[i] = ((Array[i][stn - 1]) - (toplam+toplam2)) / Array[i][i];
toplam2=0;
toplam=0;
}
iterasyon(ArraySonuc, ArrayTemp,Array);
}
public void iterasyon(double ArraySonuc[], double ArrayTemp[],double Array[][]) {
double temp;
for (int i = 0; i < str; i++) {
temp= Math.abs((ArraySonuc[i] - ArrayTemp[i])/ArraySonuc[i] );
temp = temp % 100;
if (temp <= 0.00001) {
sayac++;
}
}
if (sayac != str) {
sayac = 0;
GaussSiedell(ArraySonuc,Array);
} else {System.out.println("işlem bitti.Sonuc degerlerimiz");
for (int i = 0; i < str; i++) {
System.out.println(ArraySonuc[i]);
} }
}
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() + 1;
double Array[][] = new double[str][stn];
GaussSiedel yontem = new GaussSiedel(str, stn);
//matris olustur
for(int i=0;i<str;i++){
for(int j=0;j<stn;j++){
System.out.println("matris degeri gir ");
Array[i][j]= klavye.nextDouble();
}
}
double dizi[] = new double[str];
System.out.println("X lerin ilk degerlerini giriniz...");
for (int i = 0; i < str; i++) {
dizi[i] = klavye.nextDouble();
}
yontem.GaussSiedell(dizi, Array);
}
}
package gausssiedelcozumyontemi;
import java.util.Scanner;
public class GaussSiedel {
int str;
int stn;
int sayac = 0;
double ArrayTemp[];
double C[][];
public GaussSiedel(int str, int stn) {
this.str = str;
this.stn = stn;
ArrayTemp= new double[str];
C = new double[str][stn];
}
public void GaussSiedell(double ArraySonuc[], double Array[][]) {
double toplam = 0;double toplam2=0;
ArrayTemp = ArraySonuc;
for (int i = 0; i < str; i++) {
for (int j = 0; j <= str-1; j++) {
toplam += (Array[i][j] * ArraySonuc[j]);
}
for (int j = i+1; j <str-1 ; j++) {
toplam2 += (Array[i][j] * ArrayTemp[j]) ;
}
ArraySonuc[i] = ((Array[i][stn - 1]) - (toplam+toplam2)) / Array[i][i];
toplam2=0;
toplam=0;
}
iterasyon(ArraySonuc, ArrayTemp,Array);
}
public void iterasyon(double ArraySonuc[], double ArrayTemp[],double Array[][]) {
double temp;
for (int i = 0; i < str; i++) {
temp= Math.abs((ArraySonuc[i] - ArrayTemp[i])/ArraySonuc[i] );
temp = temp % 100;
if (temp <= 0.00001) {
sayac++;
}
}
if (sayac != str) {
sayac = 0;
GaussSiedell(ArraySonuc,Array);
} else {System.out.println("işlem bitti.Sonuc degerlerimiz");
for (int i = 0; i < str; i++) {
System.out.println(ArraySonuc[i]);
} }
}
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() + 1;
double Array[][] = new double[str][stn];
GaussSiedel yontem = new GaussSiedel(str, stn);
//matris olustur
for(int i=0;i<str;i++){
for(int j=0;j<stn;j++){
System.out.println("matris degeri gir ");
Array[i][j]= klavye.nextDouble();
}
}
double dizi[] = new double[str];
System.out.println("X lerin ilk degerlerini giriniz...");
for (int i = 0; i < str; i++) {
dizi[i] = klavye.nextDouble();
}
yontem.GaussSiedell(dizi, Array);
}
}
Yorumlar
Yorum Gönder