Advertisement
Guest User

Zadanie 4 MN

a guest
Dec 9th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.40 KB | None | 0 0
  1. package MNumeryczne;
  2. import Jama.*;
  3. public class Main {
  4.  
  5.     public static Matrix to_L(Matrix A, int n){
  6.         Matrix L = new Matrix(n,n);
  7.         double wynik = 0;
  8.         double suma = 0;
  9.         for(int k = 0; k < n;k++){
  10.             for(int i = k;i<n;i++){
  11.                 if(k == i){
  12.                     suma = 0;
  13.                     for(int j = 1;j<=(k-1);j++){
  14.                         suma = suma + (L.get(k,j) * L.get(k,j));
  15.                     }
  16.                     wynik = Math.sqrt((A.get(k,k)-suma));
  17.                     L.set(k,k,wynik);
  18.                 }else{
  19.                     suma = 0;
  20.                     for(int j = 1;j<=(k-1);j++){
  21.                         suma = suma + (L.get(i,j) * L.get(k,j));
  22.                     }
  23.                     wynik = (A.get(i,k) - suma)/L.get(k,k);
  24.                     L.set(k,i,wynik);
  25.                 }
  26.             }
  27.         }
  28.         System.out.println("Macierz L:");
  29.         L.print(5,3);
  30.         return L;
  31.     }
  32.  
  33.     public static Matrix to_x(Matrix U,int n, Matrix B){
  34.         Matrix X = new Matrix(n,1);
  35.         double zmienna_u;
  36.         double suma;
  37.         double wynik = 0;
  38.         for(int i = 0;i<n;i++){
  39.                 zmienna_u = 1/U.get(i,i);
  40.                 suma = 0;
  41.                 for(int j = (i+1);j<n;j++){
  42.                     suma = suma + U.get(i,j) * X.get(j,1);
  43.                 }
  44.                 wynik = zmienna_u * (B.get(i,1)-suma);
  45.                 X.set(i,1,wynik);
  46.         }
  47.         return X;
  48.     }
  49.  
  50.     public static void main(String[] args) {
  51.         int n = 4;
  52.         Matrix A = Matrix.random(n, n);
  53.         System.out.println("Macierz A:");
  54.         A.print(5,3);
  55.         Matrix AT = A.transpose();
  56.         if(AT == A){
  57.             System.out.println("Macierz A jest symetryczna.");
  58.         }else{
  59.             System.out.println("Macierz A nie jest symetryczna.\nStworzenie macierzy Grama.");
  60.             System.out.println("Macierz A(G):");
  61.             A = A.times(AT);
  62.             A.print(5,3);
  63.         }
  64.         Matrix L = to_L(A,n);
  65.         Matrix LT = L.transpose();
  66.         Matrix sprawdzenie = LT.times(L);
  67.         System.out.println("Wynik działania L * LT:");
  68.         sprawdzenie.print(5,3);
  69.         Matrix X = new Matrix(n,1);
  70.         Matrix B = Matrix.random(n,1);
  71.         System.out.println("Macierz B:");
  72.         B.print(5,3);
  73.         X = to_x(L,n,B);
  74.         X.print(5,3);
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement