Matrix Multiplication Calculator

Matrix Multiplication Calculator

Define Matrix Dimensions

Enter Matrix Elements

Matrix A

Matrix B

Resulting Matrix (A × B)

function generateMatrices() { var matrixARows = parseInt(document.getElementById("matrixARows").value); var matrixACols = parseInt(document.getElementById("matrixACols").value); var matrixBRows = parseInt(document.getElementById("matrixBRows").value); var matrixBCols = parseInt(document.getElementById("matrixBCols").value); var errorMessageDiv = document.getElementById("errorMessage"); errorMessageDiv.innerHTML = ""; document.getElementById("matrixResult").style.display = "none"; document.getElementById("resultMatrixDisplay").innerHTML = ""; if (isNaN(matrixARows) || isNaN(matrixACols) || isNaN(matrixBRows) || isNaN(matrixBCols) || matrixARows <= 0 || matrixACols <= 0 || matrixBRows <= 0 || matrixBCols <= 0) { errorMessageDiv.innerHTML = "Please enter valid positive integer dimensions for all matrices."; document.getElementById("matrixInputArea").style.display = "none"; return; } if (matrixACols !== matrixBRows) { errorMessageDiv.innerHTML = "Matrix multiplication is not possible. The number of columns in Matrix A must equal the number of rows in Matrix B."; document.getElementById("matrixInputArea").style.display = "none"; return; } var matrixAInputsDiv = document.getElementById("matrixAInputs"); var matrixBInputsDiv = document.getElementById("matrixBInputs"); matrixAInputsDiv.innerHTML = '

Matrix A (' + matrixARows + 'x' + matrixACols + ')

'; matrixBInputsDiv.innerHTML = '

Matrix B (' + matrixBRows + 'x' + matrixBCols + ')

'; // Generate Matrix A inputs for (var i = 0; i < matrixARows; i++) { var rowDiv = document.createElement("div"); rowDiv.style.display = "flex"; rowDiv.style.marginBottom = "5px"; for (var j = 0; j < matrixACols; j++) { var input = document.createElement("input"); input.type = "number"; input.id = "matrixA_" + i + "_" + j; input.value = "0"; // Default value input.style.width = "50px"; input.style.padding = "5px"; input.style.margin = "2px"; input.style.border = "1px solid #ccc"; input.style.borderRadius = "3px"; rowDiv.appendChild(input); } matrixAInputsDiv.appendChild(rowDiv); } // Generate Matrix B inputs for (var i = 0; i < matrixBRows; i++) { var rowDiv = document.createElement("div"); rowDiv.style.display = "flex"; rowDiv.style.marginBottom = "5px"; for (var j = 0; j < matrixBCols; j++) { var input = document.createElement("input"); input.type = "number"; input.id = "matrixB_" + i + "_" + j; input.value = "0"; // Default value input.style.width = "50px"; input.style.padding = "5px"; input.style.margin = "2px"; input.style.border = "1px solid #ccc"; input.style.borderRadius = "3px"; rowDiv.appendChild(input); } matrixBInputsDiv.appendChild(rowDiv); } document.getElementById("matrixInputArea").style.display = "block"; } function calculateMatrixProduct() { var matrixARows = parseInt(document.getElementById("matrixARows").value); var matrixACols = parseInt(document.getElementById("matrixACols").value); var matrixBRows = parseInt(document.getElementById("matrixBRows").value); var matrixBCols = parseInt(document.getElementById("matrixBCols").value); var errorMessageDiv = document.getElementById("errorMessage"); errorMessageDiv.innerHTML = ""; document.getElementById("matrixResult").style.display = "none"; document.getElementById("resultMatrixDisplay").innerHTML = ""; if (isNaN(matrixARows) || isNaN(matrixACols) || isNaN(matrixBRows) || isNaN(matrixBCols) || matrixARows <= 0 || matrixACols <= 0 || matrixBRows <= 0 || matrixBCols <= 0) { errorMessageDiv.innerHTML = "Please generate matrices with valid dimensions first."; return; } if (matrixACols !== matrixBRows) { errorMessageDiv.innerHTML = "Matrix multiplication is not possible. The number of columns in Matrix A must equal the number of rows in Matrix B."; return; } var matrixA = []; for (var i = 0; i < matrixARows; i++) { matrixA[i] = []; for (var j = 0; j < matrixACols; j++) { var inputElement = document.getElementById("matrixA_" + i + "_" + j); var value = parseFloat(inputElement.value); if (isNaN(value)) { errorMessageDiv.innerHTML = "Please enter valid numbers for all elements in Matrix A."; return; } matrixA[i][j] = value; } } var matrixB = []; for (var i = 0; i < matrixBRows; i++) { matrixB[i] = []; for (var j = 0; j < matrixBCols; j++) { var inputElement = document.getElementById("matrixB_" + i + "_" + j); var value = parseFloat(inputElement.value); if (isNaN(value)) { errorMessageDiv.innerHTML = "Please enter valid numbers for all elements in Matrix B."; return; } matrixB[i][j] = value; } } var resultMatrix = []; for (var i = 0; i < matrixARows; i++) { resultMatrix[i] = []; for (var j = 0; j < matrixBCols; j++) { var sum = 0; for (var k = 0; k < matrixACols; k++) { // or matrixBRows, they are equal sum += matrixA[i][k] * matrixB[k][j]; } resultMatrix[i][j] = sum; } } displayResultMatrix(resultMatrix); } function displayResultMatrix(matrix) { var resultMatrixDisplayDiv = document.getElementById("resultMatrixDisplay"); var table = ''; for (var i = 0; i < matrix.length; i++) { table += ''; for (var j = 0; j < matrix[i].length; j++) { table += ''; } table += ''; } table += '
' + matrix[i][j].toFixed(2) + '
'; resultMatrixDisplayDiv.innerHTML = table; document.getElementById("matrixResult").style.display = "block"; } // Initialize with default matrices window.onload = function() { generateMatrices(); // Set default values for the example document.getElementById("matrixA_0_0").value = "1"; document.getElementById("matrixA_0_1").value = "2"; document.getElementById("matrixA_1_0").value = "3"; document.getElementById("matrixA_1_1").value = "4"; document.getElementById("matrixB_0_0").value = "5"; document.getElementById("matrixB_0_1").value = "6"; document.getElementById("matrixB_1_0").value = "7"; document.getElementById("matrixB_1_1").value = "8"; };

Understanding Matrix Multiplication

Matrix multiplication is a fundamental operation in linear algebra with wide-ranging applications across various fields, including computer graphics, physics, engineering, economics, and machine learning. Unlike scalar multiplication (where you multiply each element by a single number), matrix multiplication involves a more complex process that combines rows from the first matrix with columns from the second matrix.

What is a Matrix?

A matrix is a rectangular array of numbers, symbols, or expressions, arranged in rows and columns. For example, a 2×3 matrix has 2 rows and 3 columns:

    A = [[a11, a12, a13],
         [a21, a22, a23]]
    

The Rules of Matrix Multiplication

For two matrices, A and B, to be multiplied to form a product matrix C (i.e., C = A × B), a crucial condition must be met:

  • Compatibility Rule: The number of columns in the first matrix (A) must be equal to the number of rows in the second matrix (B).

If matrix A has dimensions (m × n) and matrix B has dimensions (n × p), then the resulting product matrix C will have dimensions (m × p). Notice that the 'n' (columns of A and rows of B) must match, and it disappears in the result's dimensions.

How to Perform Matrix Multiplication

Each element Cij in the product matrix C is calculated by taking the dot product of the i-th row of matrix A and the j-th column of matrix B. This means you multiply corresponding elements from the row and column and then sum those products.

Let's consider two matrices:

    Matrix A (2x2):      Matrix B (2x2):
    [[a11, a12],          [[b11, b12],
     [a21, a22]]           [b21, b22]]
    

The product matrix C (2×2) would be:

    C = [[(a11*b11 + a12*b21), (a11*b12 + a12*b22)],
         [(a21*b11 + a22*b21), (a21*b12 + a22*b22)]]
    

Example Calculation

Let's use the default values provided in the calculator:

    Matrix A: [[1, 2],
               [3, 4]]

    Matrix B: [[5, 6],
               [7, 8]]
    

Here, Matrix A is 2×2 and Matrix B is 2×2. Since the columns of A (2) equal the rows of B (2), multiplication is possible, and the result will be a 2×2 matrix.

Calculating each element of the product matrix C:

  • C11 = (1 * 5) + (2 * 7) = 5 + 14 = 19
  • C12 = (1 * 6) + (2 * 8) = 6 + 16 = 22
  • C21 = (3 * 5) + (4 * 7) = 15 + 28 = 43
  • C22 = (3 * 6) + (4 * 8) = 18 + 32 = 50

So, the resulting matrix C is:

    C = [[19, 22],
         [43, 50]]
    

How to Use the Matrix Multiplication Calculator

  1. Define Dimensions: Enter the number of rows and columns for Matrix A and Matrix B in the respective input fields.
  2. Generate Input Fields: Click the "Generate Matrix Input Fields" button. The calculator will check for compatibility and then display input boxes for each element of your matrices.
  3. Enter Elements: Fill in the numerical values for each element in Matrix A and Matrix B.
  4. Calculate Product: Click the "Calculate Matrix Product" button. The resulting product matrix will be displayed below.
  5. Error Handling: If the dimensions are incompatible or if you enter non-numeric values, an error message will appear.

This calculator simplifies the often tedious process of manual matrix multiplication, allowing you to quickly verify your calculations or explore different matrix operations.

Leave a Reply

Your email address will not be published. Required fields are marked *