Hello NM Dev
This tutorial walks you through a simple first example on using the NM Dev library. You will need to have a NM Dev project to follow the examples here. For details on how to create or download a NM Dev project, please read the Setup Guide.
We will create some matrices and vectors and do some simple linear algebra. Java is an object-oriented language. So, other than the primitive types, like int and double, all variables are objects, namely, instances of some object definitions called classes. For example, to have a matrix instance, a matrix variable, or simply a matrix, we create an instance of the Matrix class.
We can print out the Java matrix to check.
In NetBeans the short cut for System.out.println is to type “sout” (without the “”) and then hit the “Tab” key.
To fix the imports, hit “Ctrl+Shift+I”. There are multiple choices. Choose com.numericalmethod.suanshu.matrix.doubles.Matrix.
Hit “F6” to run.
Vola! You will see this output.
Congratulations! You have just successfully created your first matrix using the NM Dev library. We are now ready to do more.
Let’s check whether this matrix has a full rank. We do
The MatrixMeasure.rank method computes the numerical rank. For more information, see Compute the numerical rank of a matrix.
Hit “F6” to run.
We see that the rank of A1 is 2 so A1 is a rank deficient matrix. We can make it a full rank matrix by changing one entry.
Note that NM Dev counts from 1!
Let’s try again.
OK. A1 is now a full rank matrix. We can now find its inverse.
Hit “Ctrl+Shift+I” to fix the imports. Hit “F6” to run. Here is the output.
It looks good. To make sure, we multiply them together.
Hit “Ctrl+Shift+I” to fix the imports. Hit “F6” to run.
OK. It works.
Let’s try a vector. We do
Hit “Ctrl+Shift+I” to fix the imports. There are multiple choices. Choose “com.numericalmethod.suanshu.vector.doubles.Vector”.
We solve a linear equation of this form.
Ax = y
We need to set up a linear equation solver.
Hit “Ctrl+Shift+I” to fix the imports. There are multiple choices. Choose com.numericalmethod.suanshu.matrix.doubles.linearsystem.LinearSystemSolver.
x is a vector