Finding the Frobenius Norm of a given matrix
Given an M * N matrix, the task is to find the Frobenius Norm of the matrix. The Frobenius Norm of a matrix is defined as the square root of the sum of the squares of the elements of the matrix.
Example:
Input: mat[][] = {{1, 2}, {3, 4}}
Output: 5.47723
sqrt(12 + 22 + 32 + 42) = sqrt(30) = 5.47723
Input: mat[][] = {{1, 4, 6}, {7, 9, 10}}
Output: 16.8226
Approach: Find the sum of squares of the elements of the matrix and then print the square root of the calculated value.
Below is the implementation of the above approach:
CPP
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; const int row = 2, col = 2; // Function to return the Frobenius // Norm of the given matrix float frobeniusNorm( int mat[row][col]) { // To store the sum of squares of the // elements of the given matrix int sumSq = 0; for ( int i = 0; i < row; i++) { for ( int j = 0; j < col; j++) { sumSq += pow (mat[i][j], 2); } } // Return the square root of // the sum of squares float res = sqrt (sumSq); return res; } // Driver code int main() { int mat[row][col] = { { 1, 2 }, { 3, 4 } }; cout << frobeniusNorm(mat); return 0; } |
Java
// Java implementation of the approach class GFG { final static int row = 2 , col = 2 ; // Function to return the Frobenius // Norm of the given matrix static float frobeniusNorm( int mat[][]) { // To store the sum of squares of the // elements of the given matrix int sumSq = 0 ; for ( int i = 0 ; i < row; i++) { for ( int j = 0 ; j < col; j++) { sumSq += ( int )Math.pow(mat[i][j], 2 ); } } // Return the square root of // the sum of squares float res = ( float )Math.sqrt(sumSq); return res; } // Driver code public static void main (String[] args) { int mat[][] = { { 1 , 2 }, { 3 , 4 } }; System.out.println(frobeniusNorm(mat)); } } // This code is contributed by AnkitRai01 |
Python3
# Python3 implementation of the approach from math import sqrt row = 2 col = 2 # Function to return the Frobenius # Norm of the given matrix def frobeniusNorm(mat): # To store the sum of squares of the # elements of the given matrix sumSq = 0 for i in range (row): for j in range (col): sumSq + = pow (mat[i][j], 2 ) # Return the square root of # the sum of squares res = sqrt(sumSq) return round (res, 5 ) # Driver code mat = [ [ 1 , 2 ], [ 3 , 4 ] ] print (frobeniusNorm(mat)) # This code is contributed by mohit kumar 29 |
C#
// C# implementation of the approach using System; class GFG { static int row = 2, col = 2; // Function to return the Frobenius // Norm of the given matrix static float frobeniusNorm( int [,]mat) { // To store the sum of squares of the // elements of the given matrix int sumSq = 0; for ( int i = 0; i < row; i++) { for ( int j = 0; j < col; j++) { sumSq += ( int )Math.Pow(mat[i, j], 2); } } // Return the square root of // the sum of squares float res = ( float )Math.Sqrt(sumSq); return res; } // Driver code public static void Main () { int [,]mat = { { 1, 2 }, { 3, 4 } }; Console.WriteLine(frobeniusNorm(mat)); } } // This code is contributed by AnkitRai01 |
Javascript
<script> // JavaScript implementation of the approach let row = 2, col = 2; // Function to return the Frobenius // Norm of the given matrix function frobeniusNorm(mat) { // To store the sum of squares of the // elements of the given matrix let sumSq = 0; for (let i = 0; i < row; i++) { for (let j = 0; j < col; j++) { sumSq += parseInt(Math.pow(mat[i][j], 2)); } } // Return the square root of // the sum of squares let res = parseFloat(Math.sqrt(sumSq)); return res; } // Driver code let mat = [[ 1, 2 ], [ 3, 4 ]]; document.write(frobeniusNorm(mat).toFixed(5)); // This code is contributed by sravan kumar </script> |
Output:
5.47723