C++ Armadillo :: expmat














































C++ Armadillo :: expmat



---------------------------------------------------------------------------------------------------------------
Description::
This is the basic C++ program of C++ armadillo library which shows how to find Matrix exponential of general square matrix A of some particular size. It can be carried out by the help of inbuilt function "expmat" in armadillo library. It takes one parameter i.e input matrix name.
  • If A is not square sized, a std::logic_error exception is thrown
  • If the matrix exponential cannot be found:
    • B = expmat(A) resets B and throws a std::runtime_error exception
    • expmat(B,A) resets B and returns a bool set to false (exception is not thrown)
  • Caveat: if matrix A is symmetric, using expmat_sym() is faster
  • Caveat: the matrix exponential operation is generally not the same as applying the exp() function to each element
---------------------------------------------------------------------------------------------------------------
Program::

#include <iostream>
#include <armadillo>
using namespace std;
using namespace arma;

int main()
{
//initialize the random generator
//Create a 4 x 4 random matrix and printing it
mat A = randu<mat>(5,5); //random matrix of size 5 x 5 (generared by this syntax)
mat B = expmat(A); //matrix exponential
cout << "Matrix A::\n"<<endl;
cout << A << endl;
cout << "Matrix B::\n"<<endl;
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:: 3.9702 1.5897 1.6444 2.9852 1.3479 1.6725 1.9971 1.4869 1.8542 1.2155 2.2083 0.9486 2.2254 1.9603 1.7648 3.3977 1.8055 2.0438 4.1266 1.4948 0.9366 0.8203 1.1701 1.1313 1.9276

More Articles of Shubham Loya:

Name Views Likes
C++ OpenCV cv::trace() 1555 1
C++ Armadillo :: Real and Imaginary part 1631 1
C++ OpenCV cv::perspectiveTransform() 5325 1
C++ Armadillo :: find_nonfinite 792 2
C++ Armadillo introduction and installation 596 1
C++ Armadillo :: Kron 1307 1
C++ Armadillo :: Accessing row and column and operations on it 1404 1
C++ Armadillo :: cond 481 2
C++ Armadillo :: pseudo-inverse 2886 1
C++ OpenCV cv::flip() 1834 1
C++ OpenCV cv::transpose() 6949 1
C++ Armadillo :: any 532 2
C++ Armadillo :: Max and Min of matrices 918 1
C++ OpenCV cv::pow() 2395 1
C++ Armadillo :: fliplr and flipud 1000 2
C++ Armadillo :: Sort 1230 1
C++ Armadillo :: Determinant of Matrix 883 1
C++ Armadillo :: Indices of Unique elements of matrix 958 1
C++ Armadillo :: eps 492 3
C++ Armadillo :: Inverse 1508 1
C++ Armadillo :: Transpose of Matrix 1230 1
C++ Armadillo :: Basic Arithmetic Operations 453 1
C++ Armadillo :: Cross Product of vectors 1274 4
C++ OpenCV program to play a video 1184 1
C++ Armadillo :: Diagonal of Matrix 948 1
C++ Armadillo :: Absolute value of Matrix 1147 1
C++ Armadillo :: Conj 482 2
C++ Armadillo :: expmat 955 2
C++ OpenCV Input from Camera 1945 1
C++ OpenCV program to convert BGR image to grayscale image 5679 1
C++ Armadillo :: Intersect 765 2
C++ Armadillo :: Nonzeros 994 2
C++ Armadillo :: Dot Product of vectors 1664 2
C++ OpenCV:: Transforming BGR image to Grey scale image 580 2
C++ OpenCV to rotate an image 11174 1
C++ Armadillo :: Unique elements of matrix 809 1
C++ Armadillo :: Log Determinant 797 1
C++ Armadillo :: Sort_index 1509 2
C++ Armadillo :: Max Min 1596 1
C++ Armadillo :: Shift 918 1
C++ Armadillo :: Square root of Matrix 1730 1
C++ OpenCV cv::cvtColor() 2322 1

Comments