Sinopsis
Kalau kalian sedang mencari pustaka/library yang cukup ringan untuk mengolah data Array/Matrix di Java maka JAMA perlu kalian pertimbangkan karena lumayan cukup sederhana/simple dalam penggunaaanya selain itu sudah tersedia beberapa function dasar yang berkenaan dengan Array/Matrix seperti dilansir dari https://math.nist.gov/javanumerics/jama/
Object Manipulation
1. constructors
2. set elements
3. get elements
4. copy
5. clone
Elementary Operations
1. addition
2. subtraction
3. multiplication
4. scalar multiplication
5. element-wise multiplication
6. element-wise division
7. unary minus
8. transpose
9. norm
Decompositions
1. Cholesky
2. LU
3. QR
4. SVD
5. symmetric eigenvalue
6. nonsymmetric eigenvalue
Equation Solution
1. nonsingular systems
2. least squares
Derived Quantities
1. condition number
2. determinant
3. rank
4. inverse
5. pseudoinverse
JAMA bekerja dengan type data double agar bisa menerima input data yang banyak bekerja dalam format double. Lagian kalau kalian membuat sendiri library selain lama dan menguras banyak pikiran, belum lagi membuat dokumentasinya, makin tambah banyak kerjaan saja. Setelah kalian download .*jar nya yang sekarang masih versi 1.0.3
Tempatkan saja di project mu
Misalkan untuk perkalian antar matrix seperti berikut
$$A=
\begin{pmatrix}
1 & 4 & 8\\
5 & 8 & 10\\
\end{pmatrix}
$$
$$
B=
\begin{pmatrix}
8 & 6\\
9 & 2\\
5 & 13\\
\end{pmatrix}
$$
Maka perkalian antar matrix \(C = A*B\) menghasilkan
$$
C=
\begin{pmatrix}
84 & 118\\
162 & 176\\
\end{pmatrix}
$$
Kalian bisa coba kodenya sebagai berikut
import Jama.Matrix;
/**
*
* @author mulkan.ms@gmail.com
*/
public class DemoJama {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Matrix A = new Matrix(new double[][]{
{1,4,8},
{5,8,10}
});
Matrix B = new Matrix(new double[][]{
{8,6},
{9,2},
{5,13}
});
Matrix C = A.times(B); //perkalian antar matrix
int endl = 0;
}
}
Kalian coba saja dengan operasi yang lainnya. Misalkan
Misalkan contoh lainnya
$$3x+4y=106$$
$$5x+6y=164$$
persamaan diatas diubah menjadi
$$
\begin{pmatrix}
3 & 4\\
5 & 6\\
\end{pmatrix}
*
\begin{pmatrix}
x\\
y\\
\end{pmatrix}
=
\begin{pmatrix}
106\\
164\\
\end{pmatrix}
$$
sesuai dengan rumus persamaan \(A*X=B\), maka \(X=invers(A)*B\), maka \(X\) didapatkan nilai
$$ X=
\begin{pmatrix}
10\\
19\\
\end{pmatrix}
$$
import Jama.Matrix;
/**
*
* @author mulkan.ms@gmail.com
*/
public class DemoJama {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Matrix A = new Matrix(new double[][]{{3,4},{5,6}});
Matrix B = new Matrix(new double[][]{{106},{164}});
Matrix X = A.inverse().times(B);
int endl = 0;
}
}
No comments:
Post a Comment