Numeric Computations in Java
There have been a number of academic publications available on the Internet; these show researchers have used techniques that were previously only applied in signal processing, like wavelet analysis to analyse financial time-series. The prediction of wavelet analysis is regarded as being very true to life.
Artificial Intelligence and Soft-Computing
Machine learning, Soft-Computing, and Datamining involve number-crunching computation to find patterns in large databases such as mining NASA's huge astronomical databases to discover new planets, solar systems, galaxies, and so forth. NASA's datamining software often discovers black holes and galaxy planets that have been buried in the database since the 1970s or earlier. Data is collected through telescope imaging, satellite pictures, radio-particle detectors, and so on. Data mining is also employed by big corporate businesses.
Bioinformatics and Life Sciences
Bioinformatics is a new discipline of IT that has sprung up over the last decade. This discipline is the marrying of Computer Science, Mathematics, and Life Sciences (Biology, Biochemistry, and Pharmacology). Another term that is frequently used interchangeably in academic literature with Bioinformatics is Computational Biology. The Genome project (gene mapping) falls under this category. Bioinformatics deals with gene mapping and sequencing, protein sequence analysis, protein structure prediction, phylogenic inference, regulatory analysis, and so forth; the algorithm involves heavy numerics.
Satellite Image Processing
The processing of satellite radar imaging data is a compute- and memory-intensive task, due to the heavy numeric algorithms involved. Satellite imaging software can process and handle thousands or more of 4000 x 4000 or even 8000 x 8000 pixel images in a short regular period. Such large images can be relayed directly from a satellite into a processing centre for real-time analysis.
The Future of Java in Numerical Computing
If Sun Microsystems implements some of the proposals from the JGF in future versions of the Java language specification, we will see Java as the number one language choice for developing numeric-compute-intensive application software as it has done in other areas of computing such as server-side applications.
The multiarray API package that will be coming out from JSR-83 of the Java Community Process (JCP) will add new numerical functionalities in future versions. There is no doubt that the multiarray API will evolve over time to include different specialised sub-packages.
There has been informal talk from the JGF that the forum would like to further propose a Digital Signal Processing API, but such a proposal would have to wait until the package "javax.math.multiarray" (proposed name) emerges from the JCP. If there is ever to be a draft specification for a DSP API, expect Java to make a big move to embedded software. Defence projects, such as radar station software applications, could be developed all in Java and costs are expected to be lower than today. The reason for this is that DSP numerical algorithms are very complex to develop from the ground up. If there is an API for DSP, the development of systems like radar station software in Java will be faster to market. Also in the future, software developers who are involved in such projects would not have to worry about complicated numerical algorithms as in discrete-signal-convolution (CONV), signal-cross-correlation, finite-impulse-response, (IIR), and so on, because it is already implemented in the DSP API. They can just concentrate on application development.
Although there are language issues that need to be addressed in Java for future verisons relating to numerical computing, it is growing in popularity for writing heavy numeric computation software.
Java Numerical Libraries
There are numerous freeware, proprietary, commercial, and GPL numerical libraries available in Java today from commercial vendors, research institutes, academic institutions, and also computer hobbyists. There is a link from the National Institute of Standards and Technology from their Java Numeric home page (refer to the resources, below). Most of the popular technical computing environments for scientific and engineering computation have support for Java; these include MatLab from MathWorks, Mathematica from Wolfram Research, and Maple from Waterloo MapleSoft. All of these computing environments have interfaces and Java plug-ins to call external Java applications and also Java applications can call routines from these environments. The number of Java GPL numerical libraries is growing; new ones become available daily.
Web links and downloads
- http://math.nist.gov/javanumerics/ Most Java numerical libraries -- that is free-ware, GPL, or commercial -- are listed here.
- http://www.ilog.com/products/jsolver/ Commercial Java Library for Linear Programming and Operations Research
- http://www.nag.co.uk/doc/techrep/html/tr3%5F00/tr3%5F00.html N.A.G. has a commerical C-numerical library, which can be called from Java through JNI.
- http://www.vni.com/products/imsl/jmsl_transition.html Visual Numerics has a commercial library for Java called JMSL and a freeware version, JNL.
- http://alphaworks.ibm.com/tech/ninja IBM NinJA project, where JSR-83 is based.
- http://www.javagrande.org/pastglory/index.html Java Grande Forum home page
Books with excellent numerical algorithms
- Introductory Java for Scientists and Engineers by Richard Davies, pub: Addison Wesley Longman
- Java for Engineers and Scientists by Stephen J. Chapman, pub: Prentice Hall, 1999
- Digital Image Processing, a Practical Introduction using JAVA, by Nick Efford , pub: Addison-Wesley
- Digital Image Processing, by R.C. Gonzalez and R.E. Woods, pub: Addison-Wesley
- Numerical Recipes in Fortran 77, the Art of Scientific Computing (Volume 1) by William H. Press, Saul A. Teukolsky, William T. Vetterling, and Brian P. Flannery, pub: Cambridge University Press, 1997
- Linear Algebra and Its Applications (Second Edition), by David C. Lay, pub: Addison-Wesley Pub. Co.
- Applied Numerical Analysis (Sixth Edition) by Curtis F. Gerald and Patrick O. Wheatly, Addison-Wesley Pub. Co., 1999
- Introduction to Algorithms by T.H. Cormen, C.E. Leiserson, and R.L. Rivest, pub: MIT Press
- Elements of the Theory of Computation by H.R. Lewis and C.H. Papadimitriou, pub: Prentice Hall
- Diffential Equations with Applications and Historical Notes (2nd Edition), by G.F. Simmons
- Calculus, Volume 2, 2nd Edition, by T.M. Apostal, pub: Wiley and Sons, Inc. (This book has execellent notes on finite-element algorithms and also mutiple-integration)
- Signals and Linear System Analysis (2nd Edition), by G.E.Carlson, pub: Wiley and Sons, Inc. (This book is MatLab-based but is very rich in numerical algorithms)
- Complex Variables and Applications (6th Edition), by James Ward Brown and Ruel V. Churchill, pub: McGraw Hill College
Books for numerical application in finance
- Financial Theory and Corporate Policy (3rd Edition), by T.E. Copeland and J.F.Weston, pub: Addison-Wesley
- Econometric Analysis (4th Edition), by W.H.Greene, pub: Prentice Hall
- Modern Industrial Statistics, Design, and Control of Quality and Reliability, by R.S. Kenett and S. Zacks, pub: Duxbury Press
About the Author
Sione Palu has developed software for Publishing Systems, Imaging, and Web Applications. Currently, Palu develops (Swing-based) his own software application in Symbolic Algebra and Visualization Mathematics for high-school level students. Palu graduated from the University of Auckland, New Zealand, with a science degree in mathematics and computing. He has a personal interest in applying Java and mathematics in the fields of mathematical modelling and simulations, symbolic AI and soft-computing, wavelets, digital signal processing, and control systems.
Page 5 of 5