This is the basic C++ program of C++ armadillo library which shows how to get the square root of the given matrix of some particular size. It can be carried out by the help of inbuilt function "sqrtmat" in armadillo library. "sqrtmat" function takes just the one parameter i.e the matrix name.
---------------------------------------------------------------------------------------------------------------
Program::
#include <iostream>
#include <armadillo>using namespace std;
using namespace arma;
int main()
{
//initialize the random generator
//Create a 5 x 5 random matrix and printing it
mat A;
A = randu<mat>(5,5); //random matrix of size 4x4 (generared by this syntax)
cx_mat B = sqrtmat(A); //getting square root of matrix
cout << "Matrix A::\n"<<endl;
cout<< A << endl;
cout << "Matrix B(Square root of matrix)::\n" << endl; //displaying
cout<< B << endl;
return 0;
}
---------------------------------------------------------------------------------------------------------------
Commands to run program on terminal::
$ g++ filename.cpp -o objectname -O2 -larmadillo
$ ./objectname
---------------------------------------------------------------------------------------------------------------
Output::
Matrix A::
0.7868 0.4049 0.2742 0.8571 0.2393
0.2505 0.2513 0.5610 0.4998 0.3201
0.7107 0.0227 0.1400 0.4194 0.9105
0.9467 0.5206 0.5439 0.7443 0.1648
0.0193 0.3447 0.5219 0.2492 0.2455
Matrix B(Square root of matrix)::
(+9.273e-01,-5.780e-02) (-5.612e-04,+3.957e-01) (-1.169e-01,+8.109e-02) (+4.453e-01,-9.584e-02) (+4.177e-01,-3.538e-01)
(-2.635e-01,-3.124e-02) (+8.412e-01,+2.139e-01) (+5.147e-01,+4.382e-02) (+4.085e-01,-5.179e-02) (-2.781e-01,-1.912e-01)
(+9.408e-01,-3.950e-02) (-8.096e-01,+2.705e-01) (+6.359e-02,+5.542e-02) (+1.973e-02,-6.550e-02) (+1.456e+00,-2.418e-01)
(+3.158e-01,+9.075e-02) (+5.674e-01,-6.213e-01) (+5.278e-01,-1.273e-01) (+7.154e-01,+1.505e-01) (-3.954e-01,+5.555e-01)
(-3.161e-01,+2.047e-02) (+6.017e-01,-1.401e-01) (+4.664e-01,-2.872e-02) (+1.949e-01,+3.394e-02) (+6.157e-02,+1.253e-01)
Comments