Programming and Modeling Tools
From Self-Organization Wiki
Python
Tools:
- Python 2.6.4
- NumPy 1.4.0 and SciPy 0.7.1 (MATLAB-like numerical packages)
- NumPy download
- SciPy download
- Matplotlib 0.99.1 (MATLAB-like visualization package)
- NetworkX 1.0rc1
- Pajek - Program for large network analysis
Guides:
- Beginner's Guide to Python
- Python 2.6.4 Documentation
- Python 2.6.4 Library Reference
- NumPy and SciPy Documentation
- NumPy Tutorial
- NumPy Functions by Category
- SciPy Tutorial
- Matplotlib Screenshots and Sample Codes
- Matplotlib Documentation
- NetworkX Tutorial
- NetworkX Reference
Java
Tools:
However, quick visualization in Java is a pain without appropriate tools. There is a nice discussion on Java Scientific Packages similar to SciPy at [1]
In summary, the proposed packages for Java which could be interesting are:
- Apache Commons Math
- Java Numerics
- Colt
- Matlib
- Java Scientific Library
- JFreeChart
- JScience
- jHepWork
Graph and Network Analysis Tools
JGraphT
JGraphT is a free Java graph library that provides mathematical graph-theory objects and algorithms. JGraphT supports various types of graphs including:
- directed and undirected graphs.
- graphs with weighted / unweighted / labeled or any user-defined edges.
- various edge multiplicity options, including: simple-graphs, multigraphs, pseudographs.
- unmodifiable graphs - allow modules to provide "read-only" access to internal graphs.
- listenable graphs - allow external listeners to track modification events.
- subgraphs graphs that are auto-updating subgraph views on other graphs.
- all compositions of above graphs.
Although powerful, JGraphT is designed to be simple and type-safe (via Java generics). For example, graph vertices can be of any objects. You can create graphs based on: Strings, URLs, XML documents, etc; you can even create graphs of graphs! This code example shows how.