Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package MNumeryczne;
- import Jama.*;
- public class Main {
- public static Matrix to_L(Matrix A, int n){
- Matrix L = new Matrix(n,n);
- double wynik = 0;
- double suma = 0;
- for(int k = 0; k < n;k++){
- for(int i = k;i<n;i++){
- if(k == i){
- suma = 0;
- for(int j = 1;j<=(k-1);j++){
- suma = suma + (L.get(k,j) * L.get(k,j));
- }
- wynik = Math.sqrt((A.get(k,k)-suma));
- L.set(k,k,wynik);
- }else{
- suma = 0;
- for(int j = 1;j<=(k-1);j++){
- suma = suma + (L.get(i,j) * L.get(k,j));
- }
- wynik = (A.get(i,k) - suma)/L.get(k,k);
- L.set(k,i,wynik);
- }
- }
- }
- System.out.println("Macierz L:");
- L.print(5,3);
- return L;
- }
- public static Matrix to_x(Matrix U,int n, Matrix B){
- Matrix X = new Matrix(n,1);
- double zmienna_u;
- double suma;
- double wynik = 0;
- for(int i = 0;i<n;i++){
- zmienna_u = 1/U.get(i,i);
- suma = 0;
- for(int j = (i+1);j<n;j++){
- suma = suma + U.get(i,j) * X.get(j,1);
- }
- wynik = zmienna_u * (B.get(i,1)-suma);
- X.set(i,1,wynik);
- }
- return X;
- }
- public static void main(String[] args) {
- int n = 4;
- Matrix A = Matrix.random(n, n);
- System.out.println("Macierz A:");
- A.print(5,3);
- Matrix AT = A.transpose();
- if(AT == A){
- System.out.println("Macierz A jest symetryczna.");
- }else{
- System.out.println("Macierz A nie jest symetryczna.\nStworzenie macierzy Grama.");
- System.out.println("Macierz A(G):");
- A = A.times(AT);
- A.print(5,3);
- }
- Matrix L = to_L(A,n);
- Matrix LT = L.transpose();
- Matrix sprawdzenie = LT.times(L);
- System.out.println("Wynik działania L * LT:");
- sprawdzenie.print(5,3);
- Matrix X = new Matrix(n,1);
- Matrix B = Matrix.random(n,1);
- System.out.println("Macierz B:");
- B.print(5,3);
- X = to_x(L,n,B);
- X.print(5,3);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement