Advertisement
Guest User

Homework_line_algebra

a guest
Jan 21st, 2020
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.58 KB | None | 0 0
  1. public class Main {
  2.     public static void main(String[] args){
  3.         int[][] firstMatrix = {{5},{8},{9}};
  4.         int[][] secondMatrix = {{2,3,4}};
  5.         int[][] thirdMatrix = {{2,3,5},{7,8,11}};
  6.         int[][] forthMatrix = {{6,7,4},{5,8,1}};
  7.  
  8.         show2DArray(thirdMatrix);
  9.         System.out.println("=====================");
  10.         show2DArray(forthMatrix);
  11.  
  12.         System.out.println("=====================");
  13.         show2DArray(twoMatrixesMultiplication(firstMatrix, secondMatrix));
  14.         System.out.println("=====================");
  15.         show2DArray(twoMatrixesAddition(thirdMatrix,forthMatrix));
  16.         System.out.println("=====================");
  17.         show2DArray(matrixAndIntMultiplication(thirdMatrix,-1));
  18.         System.out.println("=====================");
  19.         show2DArray(twoMatrixesSubtraction(thirdMatrix,forthMatrix));
  20.     }
  21.  
  22.     public static boolean isMultiplicationPossible(int[][] firstMatrix, int[][] secondMatrix){
  23.         if(firstMatrix[0].length==secondMatrix.length){
  24.             return true;
  25.         }
  26.         return false;
  27.     }
  28.  
  29.     //умножение двух матриц
  30.     public static int[][] twoMatrixesMultiplication(int[][] firstMatrix, int[][] secondMatrix){
  31.         int[][] multiplicatedResult;
  32.         int[][] buffer=transposition(secondMatrix);
  33.         if(isMultiplicationPossible(firstMatrix, secondMatrix)){
  34.             multiplicatedResult=new int[firstMatrix.length][secondMatrix[0].length];
  35.             for(int i=0;i<multiplicatedResult.length;i++){
  36.                 for(int j=0;j<multiplicatedResult[0].length;j++){
  37.                     multiplicatedResult[i][j]=sumOfTwoArrays(firstMatrix[i], buffer[j]);
  38.                 }
  39.             }
  40.             return multiplicatedResult;
  41.         }
  42.         else{
  43.             multiplicatedResult=new int[0][0];
  44.             System.out.println("Охрана отмена, умножать нельзя");
  45.             return multiplicatedResult;
  46.         }
  47.     }
  48.  
  49.     //умножение матрицы на число
  50.     public static int[][] matrixAndIntMultiplication(int[][] matrix, int num){
  51.         int[][] multiplicatedResult = new int[matrix.length][matrix[0].length];
  52.         for(int i=0;i<matrix.length;i++){
  53.             for(int j=0;j<matrix[0].length;j++){
  54.                 multiplicatedResult[i][j]=matrix[i][j]*num;
  55.             }
  56.         }
  57.         return multiplicatedResult;
  58.     }
  59.  
  60.     public static boolean isAdditionPossible(int[][] firstMatrix, int[][] secondMatrix){
  61.         if(firstMatrix.length==secondMatrix.length && firstMatrix[0].length==secondMatrix[0].length){
  62.             return true;
  63.         }
  64.         return false;
  65.     }
  66.  
  67.     //сложение двух матриц
  68.     public static int[][] twoMatrixesAddition(int[][] firstMatrix, int[][] secondMatrix){
  69.         int[][] sumOfTwoMatrixes;
  70.         if(isAdditionPossible(firstMatrix,secondMatrix)){
  71.             sumOfTwoMatrixes = new int[firstMatrix.length][firstMatrix[0].length];
  72.             for(int i=0;i<firstMatrix.length;i++){
  73.                 for(int j=0;j<firstMatrix[0].length;j++){
  74.                     sumOfTwoMatrixes[i][j]=firstMatrix[i][j]+secondMatrix[i][j];
  75.                 }
  76.             }
  77.             return sumOfTwoMatrixes;
  78.         }
  79.         else {
  80.             System.out.println("Охрана отмена, складывать нельзя");
  81.             sumOfTwoMatrixes = new int[0][0];
  82.             return sumOfTwoMatrixes;
  83.         }
  84.     }
  85.  
  86.     public static int sumOfTwoArrays(int[] row, int[] column){
  87.         int sum=0;
  88.         for(int i=0;i<row.length;i++){
  89.             sum+=row[i]*column[i];
  90.         }
  91.         return sum;
  92.     }
  93.  
  94.     //вычитание двух матриц
  95.     public static int[][] twoMatrixesSubtraction(int[][] firstMatrix, int[][] secondMatrix){
  96.         return twoMatrixesAddition(firstMatrix, matrixAndIntMultiplication(secondMatrix,-1));
  97.     }
  98.  
  99.     //транспонирование
  100.     public static int[][] transposition(int[][] toTranspond){
  101.         int[][] transponded=new int[toTranspond[0].length][toTranspond.length];
  102.         for(int i=0;i<toTranspond.length;i++){
  103.             for(int j=0;j<toTranspond[0].length;j++){
  104.                 transponded[j][i]=toTranspond[i][j];
  105.             }
  106.         }
  107.         return transponded;
  108.     }
  109.  
  110.     //вывод матрицы
  111.     public static void show2DArray(int[][] array){
  112.         for(int i=0;i<array.length;i++){
  113.             for(int j=0;j<array[0].length;j++){
  114.                 System.out.print(array[i][j]+" ");
  115.             }
  116.             System.out.println();
  117.         }
  118.     }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement