Nadesłany przez Adrian Cimochowski, 04 kwietnia 2017 01:12
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.Pobierz pełne rozwiązanie.
Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
ElimGausa.java:
//Metoda Eliminacji Gaussa //www.algorytm.org import java.io.IOException; public class ElimGausa { public static void main(String[] args) throws IOException { //rozmiar tablicy int n=3; //macierz do rozwiazania double macierz [][] = {{3, 1, 0}, {1, 2, -1}, {0, -1, 3}}; //macierz wynikowa double macWyn [][] = new double [macierz.length][macierz.length]; //kopiuj macierz do rozwiazania do macierzy wynikowej for (int i = 0; i<macierz.length; i++) for (int j = 0; j<macierz.length; j++) macWyn[i][j]=macierz[i][j]; //wektor w wynikami double wynik [] = {-3, 0, 0}; //kopiuj wektor double wCopy [] = new double [wynik.length]; for (int i=0; i<wynik.length; i++){ wCopy[i]=wynik[i]; } //wyswietl macierz do rozwiazania for (int j = 0; j<n; j++){ for (int k=0; k<n; k++){ System.out.print(macierz[j][k]+"\t"); } System.out.println(""); } System.out.println(""); //Metoda Eliminacji Gaussa for (int i = 0; i<n-1; i++){ for (int j = i+1; j<=n-1; j++){ for (int k = 0; k<n; k++){ macWyn[j][k]=macierz[j][k]-(macierz[i][k]*(macierz[j][i]/macierz[i][i])); } wCopy[j]=wynik[j]-(wynik[i]*(macierz[j][i]/macierz[i][i])); for (int ii = 0; ii<macWyn.length; ii++){ for (int jj = 0; jj<macWyn.length; jj++){ macierz[ii][jj]=macWyn[ii][jj]; } wynik[ii]=wCopy[ii]; } } } //Wypisanie wyniku System.out.println(""); System.out.println(""); for (int j = 0; j<n; j++){ for (int k=0; k<n; k++){ System.out.print(macierz[j][k]+"\t"); } System.out.println("\t"+wynik[j]); } } }