Muutke küpsiste eelistusi

Numeric Computation and Statistical Data Analysis on the Java Platform 1st ed. 2016 [Kõva köide]

  • Formaat: Hardback, 620 pages, kõrgus x laius: 235x155 mm, 92 Illustrations, black and white; XXVI, 620 p. 92 illus., 1 Hardback
  • Sari: Advanced Information and Knowledge Processing
  • Ilmumisaeg: 05-Apr-2016
  • Kirjastus: Springer International Publishing AG
  • ISBN-10: 3319285297
  • ISBN-13: 9783319285290
  • Kõva köide
  • Hind: 95,02 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Tavahind: 111,79 €
  • Säästad 15%
  • Raamatu kohalejõudmiseks kirjastusest kulub orienteeruvalt 2-4 nädalat
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Tellimisaeg 2-4 nädalat
  • Lisa soovinimekirja
  • Formaat: Hardback, 620 pages, kõrgus x laius: 235x155 mm, 92 Illustrations, black and white; XXVI, 620 p. 92 illus., 1 Hardback
  • Sari: Advanced Information and Knowledge Processing
  • Ilmumisaeg: 05-Apr-2016
  • Kirjastus: Springer International Publishing AG
  • ISBN-10: 3319285297
  • ISBN-13: 9783319285290
Numericalcomputation, knowledge discovery and statistical data analysis integrated withpowerful 2D and 3D graphics for visualization are the key topics of this book. ThePython code examples powered by the Java platform can easily be transformed toother programming languages, such as Java, Groovy, Ruby and BeanShell. Thisbook equips the reader with acomputational platform which, unlike other statistical programs, is not limitedby a single programming language.The authorfocuses on practical programming aspects and covers a broad range of topics,from basic introduction to the Python language on the Java platform (Jython),to descriptive statistics, symbolic calculations, neural networks, non-linearregression analysis and many other data-mining topics. He discusses how to findregularities in real-world data, how to classify data, and how to process datafor knowledge discoveries. The code snippets are so short that they easily fit intosingle pages.Numeric Computation an

d Statistical DataAnalysis on the Java Platform is a great choice for those who want to learn how statisticaldata analysis can be done using popular programming languages, who want tointegrate data analysis algorithms in full-scale applications, and deploy suchcalculations on the web pages or computational servers regardlessof their operating system. It is an excellent reference for scientific computations to solvereal-world problems using a comprehensive stack of open-source Javalibraries included in the DataMelt (DMelt) project and will beappreciated by many data-analysis scientists, engineers and students . 

Java Computational Platform.- Introduction to Jython.- Mathematical Functions.- Data Arrays.- Linear Algebra and Equations.- Symbolic Computations.- Histograms.- Scientific Visualization.- File Input and Output.- Probability and Statistics.- Linear Regression and Curve Fitting.- Data Analysis and Data Mining.- Neural Networks.- Finding Regularities and Data Classification.- Miscellaneous Topics.- Using Other Languages on the Java Platform.- Octave-style Scripting Using Java.- Index.- Index of Code Examples.
1 Java Computational Platform 1(26)
1.1 Introduction
1(6)
1.1.1 Programming in Java
1(2)
1.1.2 The DMelt Software Platform
3(1)
1.1.3 Some Warnings
4(2)
1.1.4 Errors
6(1)
1.2 Scripting with DMelt
7(3)
1.2.1 Learning by Example
7(1)
1.2.2 Using Jython for Code Examples
8(1)
1.2.3 Differences with Other Math Software
9(1)
1.3 Installation
10(2)
1.4 DMelt Workbench
12(13)
1.4.1 Source Code Editor
13(1)
1.4.2 DMelt Libraries
13(2)
1.4.3 Jython and BeanShell Consoles
15(2)
1.4.4 Accessing Methods of Instances
17(1)
1.4.5 Editing Jython Scripts
17(1)
1.4.6 Running Jython Scripts
17(1)
1.4.7 Macro Files of the DMelt IDE
18(1)
1.4.8 Running BeanShell Scripts
19(1)
1.4.9 Compiling and Running Java Code
19(1)
1.4.10 DMelt Code Assist
20(2)
1.4.11 Other Features
22(1)
1.4.12 Working with Images
23(1)
1.4.13 DMelt License
24(1)
References
25(2)
2 Introduction to Jython 27(58)
2.1 Code Structure and Jython Objects
27(6)
2.1.1 Numbers as Objects
30(2)
2.1.2 Formatted Output
32(1)
2.1.3 Mathematical Functions
32(1)
2.2 Complex Numbers
33(2)
2.3 Strings as Objects
35(1)
2.4 Import Statements
36(2)
2.4.1 Executing Native Applications
37(1)
2.5 Comparison Tests and Loops
38(3)
2.5.1 The "if-else" Statement
38(1)
2.5.2 Loops. The "for" Statement
39(1)
2.5.3 The "continue" and "break" Statements
39(1)
2.5.4 Loops. The "while" Statement
40(1)
2.6 Collections
41(9)
2.6.1 Lists
41(5)
2.6.2 Tuples
46(1)
2.6.3 Dictionaries
46(2)
2.6.4 Functional Programming
48(2)
2.7 Java Collections in Jython
50(7)
2.7.1 List. An Ordered Collection
50(3)
2.7.2 Set. A Collection Without Duplicate Elements
53(1)
2.7.3 SortedSet. Sorted Unique Elements
54(1)
2.7.4 Map. Mapping Keys to Values
55(1)
2.7.5 Java Map with Sorted Elements
55(1)
2.7.6 Real-Life Example: Sorting and Removing Duplicates
56(1)
2.8 Random Numbers
57(1)
2.9 Time Module
58(2)
2.9.1 Bench marking
59(1)
2.10 Python Functions and Modules
60(3)
2.11 Python Classes
63(4)
2.11.1 Initializing a Class
65(1)
2.11.2 Classes Inherited from Other Classes
65(1)
2.11.3 Java Classes in Jython
66(1)
2.11.4 Not Covered Topics
66(1)
2.12 Parallel Computing and Threads
67(1)
2.13 Arrays in Jython
68(3)
2.13.1 Array Conversion and Transformations
69(1)
2.13.2 Performance Issues
69(1)
2.13.3 Used Memory
70(1)
2.14 Exceptions in Python
71(1)
2.15 Input and Output
72(8)
2.15.1 User Interaction
72(1)
2.15.2 Reading and Writing Files
72(2)
2.15.3 Input and Output for Arrays
74(1)
2.15.4 Working with CSV Python Module
74(2)
2.15.5 Saving Objects in a Serialized File
76(1)
2.15.6 Storing Multiple Objects
77(1)
2.15.7 Using Java for I/O
78(1)
2.15.8 Reading Data from the Network
79(1)
2.16 Real-Life Example. Collecting Data Files
80(2)
2.17 Using Java for GUI Programming
82(2)
2.18 Concluding Remarks
84(1)
References
84(1)
3 Mathematical Functions 85(46)
3.1 Python Functions
85(2)
3.2 Functions in DMelt
87(6)
3.2.1 Java Implementation of F1D
89(1)
3.2.2 Manipulations with 1D Functions
90(3)
3.3 Plotting 1D Functions
93(9)
3.3.1 Building a Graphical Canvas
93(4)
3.3.2 Drawing 1D Functions
97(2)
3.3.3 Plotting Functions on Different Pads
99(1)
3.3.4 Short Summary of HPlot Methods
99(1)
3.3.5 Example
99(3)
3.4 2D Functions
102(4)
3.4.1 Functions in Two Dimensions
102(1)
3.4.2 Displaying 2D Functions
103(2)
3.4.3 Using a Contour Plot
105(1)
3.5 3D Functions
106(1)
3.5.1 Functions in Three Dimensions
106(1)
3.6 Functions in Many Dimensions
107(2)
3.6.1 FND Functions
107(1)
3.6.2 Drawing FND Functions
108(1)
3.7 Custom Functions
109(10)
3.7.1 Custom Functions and Their Methods
109(3)
3.7.2 Custom Functions Using Expression Builder
112(2)
3.7.3 Custom Functions in Jython
114(5)
3.8 Parametric Surfaces in 3D
119(3)
3.8.1 FPR Functions
119(3)
3.8.2 3D Mathematical Objects
122(1)
3.9 Function Minimization
122(6)
3.9.1 Minimization of Multidimensional Functions
125(1)
3.9.2 Calling Migrad Directly
126(2)
3.10 File Input and Output
128(2)
References
130(1)
4 Data Arrays 131(56)
4.1 1D Arrays
131(12)
4.1.1 POD Data Container
132(3)
4.1.2 POD Transformations
135(1)
4.1.3 Statistical Summary
136(2)
4.1.4 Displaying POD Data
138(1)
4.1.5 File Input and Output
139(4)
4.2 Arrays for Two Dimensions
143(23)
4.2.1 Data with Errors
144(6)
4.2.2 Viewing P1D Data
150(1)
4.2.3 Plotting PID Data
151(1)
4.2.4 Contour Plots
152(1)
4.2.5 Manipulations with P1D Data
153(2)
4.2.6 Advanced P1D Operations
155(2)
4.2.7 Weighted Average and Systematical Uncertainties
157(2)
4.2.8 File Input and Output
159(3)
4.2.9 Example I: Henon Attractor
162(1)
4.2.10 Example H. Weighted Average
163(3)
4.3 Other Arrays
166(8)
4.3.1 P2D Data Container
166(3)
4.3.2 P3D Data Container
169(2)
4.3.3 PND Data Container
171(3)
4.3.4 File Input and Output
174(1)
4.4 Third-Party Data Containers
174(11)
4.4.1 Math Arrays
174(1)
4.4.2 Jaida Data Containers
175(3)
4.4.3 jMathTools Arrays
178(3)
4.4.4 Colt Data Containers
181(1)
4.4.5 Lorentz Vector
182(3)
4.5 Multidimensional Arrays
185(1)
References
186(1)
5 Linear Algebra and Equations 187(20)
5.1 Vector and Matrix Packages
187(15)
5.1.1 Basic Matrix Arithmetic
189(1)
5.1.2 Elements of Linear Algebra
190(1)
5.1.3 Jampack Matrix Computations
191(1)
5.1.4 La4J Library
192(3)
5.1.5 EJML Matrix Library
195(1)
5.1.6 Multithreaded Matrix Computations
196(3)
5.1.7 JBlas and Other Matrix Packages
199(1)
5.1.8 Python Vector and Matrix Operations
199(2)
5.1.9 Matrix Operations in SymPy
201(1)
5.2 Algebraic Manipulations with Tensors
202(1)
5.3 Equations
203(3)
5.3.1 Polynomial Equations
203(1)
5.3.2 Linear Systems of Equations
204(2)
References
206(1)
6 Symbolic Computations 207(12)
6.1 Using the Octave Language
207(1)
6.2 Java Symbolic Computing Library
208(7)
6.2.1 Conversion to Elementary Functions
210(1)
6.2.2 Numeric Calculations
210(1)
6.2.3 Simplify
210(2)
6.2.4 Substitutions
212(1)
6.2.5 Differentiate
212(1)
6.2.6 Integration
212(1)
6.2.7 Factorization
213(1)
6.2.8 MathML Output
213(1)
6.2.9 Integration with DMelt Plotting Canvases
213(2)
6.3 Using SymPy
215(2)
References
217(2)
7 Histograms 219(32)
7.1 One-Dimensional Histogram
220(12)
7.1.1 Probability Distribution and Probability Density
224(1)
7.1.2 Histogram Characteristics
225(1)
7.1.3 Initialization and Filling Methods
225(3)
7.1.4 Accessing Histogram Values
228(1)
7.1.5 Integration
228(2)
7.1.6 Histogram Operations
230(1)
7.1.7 Accessing Low-Level Jaida Classes
231(1)
7.1.8 Graphical Attributes
232(1)
7.2 Histogram in 2D
232(8)
7.2.1 Histogram Operations
236(1)
7.2.2 Graphical Representation
236(4)
7.3 Histograms in Jaida
240(1)
7.4 Histogram in 3D
241(1)
7.5 Profile Histograms
242(2)
7.6 Histogram Input and Output
244(3)
7.6.1 External Programs for Histograms
246(1)
7.7 Analyzing Histograms from Multiple Files
247(2)
References
249(2)
8 Scientific visualization 251(46)
8.1 Graphical Canvases
251(1)
8.2 HPlot Canvas
252(17)
8.2.1 Working with the HPlot Canvas
255(2)
8.2.2 Saving Plots
257(1)
8.2.3 Reading Data
258(1)
8.2.4 Axes
258(1)
8.2.5 Summary of the HPlot Methods
259(2)
8.2.6 Exporting to Image Files
261(1)
8.2.7 Labels and Keys
262(3)
8.2.8 Geometrical Primitives
265(1)
8.2.9 Text Strings and Symbols
266(3)
8.3 Interconnected Objects
269(2)
8.4 Showing Charts
271(1)
8.5 Lightweight Canvases
272(4)
8.5.1 Henon Attractor Again
275(1)
8.6 Canvas for Interactive Drawing
276(3)
8.6.1 Drawing Diagrams
277(2)
8.6.2 SHPlotJa Class
279(1)
8.7 Custom Plotting in XY
279(3)
8.7.1 HPIotXY Canvas
279(1)
8.7.2 WPlot Canvas
280(1)
8.7.3 HPlotJas Canvas
281(1)
8.8 HPlot2D Canvas
282(2)
8.9 Visualization in 3D
284(7)
8.9.1 HPlot3D Canvas
285(1)
8.9.2 HPIot3DP Canvas
285(4)
8.9.3 Mathematical Objects in 3D
289(2)
8.10 Plotting Real-Time Data
291(2)
8.10.1 Real-Time Data Using SPlot
292(1)
8.10.2 Real-Time Data Using HP1otRT
293(1)
8.11 Graphs and Java GUI Components
293(3)
References
296(1)
9 File Input and Output 297(54)
9.1 Nonpersistent Data: Memory-Based Data
297(1)
9.2 Object Serialization
298(2)
9.3 Persistent Event Records
300(5)
9.3.1 Sequential Input and Output
300(2)
9.3.2 Opening Data in a Browser
302(1)
9.3.3 Saving Event Records Persistently
303(1)
9.3.4 Buffer Sizes
304(1)
9.3.5 XML File Format
305(1)
9.4 PFile Data Format
305(4)
9.4.1 Browser for PFile File Data
308(1)
9.5 HBook XML Data Output
309(2)
9.6 Text File Formats
311(6)
9.6.1 Working with ASCII Files
311(1)
9.6.2 CSV File Format
312(3)
9.6.3 EDN File Format
315(1)
9.6.4 DIF File Format
316(1)
9.7 Reading ROOT and AIDA Files
317(1)
9.7.1 ROOT Files
317(1)
9.7.2 AIDA Files
318(1)
9.8 Google's Protocol Buffer Format
318(10)
9.8.1 Prototyping Data Records
319(2)
9.8.2 Dealing with Data Using Java
321(2)
9.8.3 Switching to Jython
323(1)
9.8.4 Adding New Data Records
324(1)
9.8.5 Using C++ with the Protocol Buffers
325(2)
9.8.6 Some Remarks
327(1)
9.9 Creating Excel Files
328(2)
9.10 Non-SQL Object Databases
330(5)
9.10.1 Nonsequential Input and Output
330(2)
9.10.2 Persistent Map
332(1)
9.10.3 MapDB Database
333(1)
9.10.4 NeoDatis Database
334(1)
9.11 Relational SQL Databases
335(8)
9.11.1 Derby SQL Database
336(5)
9.11.2 HyperSQL Database
341(1)
9.11.3 SQLite Database
342(1)
9.12 Miscellaneous Input—Output Topics
343(4)
9.12.1 Building List of Files
343(1)
9.12.2 Reading Configuration Files
344(3)
9.13 Summary
347(2)
9.13.1 Dealing with Single Objects
347(1)
9.13.2 Dealing with Object Collections
347(1)
9.13.3 Text Files
348(1)
9.13.4 Databases
348(1)
References
349(2)
10 Probability and Statistics 351(48)
10.1 Descriptive Statistics
351(5)
10.1.1 Comparing Data
355(1)
10.2 Statistical Analysis Using Python
356(3)
10.3 Random Numbers
359(8)
10.3.1 Using Random Numbers
360(2)
10.3.2 Random Numbers in Colt
362(2)
10.3.3 Other Packages with Random Numbers
364(3)
10.4 Random Sampling
367(6)
10.4.1 Methods of 1D Arrays
368(2)
10.4.2 Methods of 2D Arrays
370(2)
10.4.3 Sampling Using the Colt Package
372(1)
10.5 Statistical Significance and Confidence Levels
373(20)
10.5.1 Statistical Significance
373(3)
10.5.2 Discovery Sensitivity
376(1)
10.5.3 Confidence Interval
377(1)
10.5.4 Confidence Levels for Small Statistics
378(4)
10.5.5 Statistical Tests
382(3)
10.5.6 Confidence Levels for Distributions
385(8)
10.6 Error Propagation
393(4)
10.6.1 Propagation Using Monte Carlo Technique
395(2)
References
397(2)
11 Linear Regression and Curve Fitting 399(32)
11.1 Linear Regression
399(3)
11.1.1 Creating Input Data
400(1)
11.1.2 Performing a Linear Regression
400(2)
11.2 Curve Fitting
402(11)
11.2.1 Preparing a Fit
404(2)
11.2.2 Creating a Fit Function
406(4)
11.2.3 Displaying Fit Functions
410(1)
11.2.4 Making a Fit
410(3)
11.3 Real-Life Example. Signal Plus Background
413(6)
11.3.1 Preparing a Data Sample
413(1)
11.3.2 Performing Curve Fitting
413(2)
11.3.3 Fitting Multiple Peaks
415(2)
11.3.4 Fitting Histograms in 3D
417(2)
11.4 Interactive Fit
419(3)
11.4.1 HFit Method
419(2)
11.4.2 JAS Method
421(1)
11.5 Polynomial Regression
422(1)
11.6 Advanced Data Fitting
422(3)
11.7 Fitting Using Parametric Equations
425(2)
11.8 Symbolic Regression
427(2)
References
429(2)
12 Data Analysis and Data Mining 431(44)
12.1 First Steps in Data Analysis
432(2)
12.2 Real Life Example. Analyzing a Gene Catalog
434(6)
12.2.1 Data Transformation
435(1)
12.2.2 Data Skimming
435(1)
12.2.3 Data Slimming
436(1)
12.2.4 Data Sorting
436(2)
12.2.5 Removing Duplicate Records
438(1)
12.2.6 Sorting and Duplicate Removal in Java
439(1)
12.3 Metadata
440(5)
12.3.1 Using Built-In Metadata File
441(3)
12.3.2 External Metadata Files
444(1)
12.4 Multithreaded Programming
445(7)
12.4.1 Reading Data in Parallel
446(2)
12.4.2 Reading a Single File in Parallel
448(3)
12.4.3 Numerical Computations Using Multiple Cores
451(1)
12.5 Data Consistency and Security
452(3)
12.5.1 MD5 Fingerprint at Runtime
453(1)
12.5.2 Fingerprinting Files
454(1)
12.6 Real-Life Examples
455(18)
12.6.1 Single-Particle Densities
455(3)
12.6.2 Fluctuations and Correlations
458(10)
12.6.3 Analyzing Nearby Galaxies
468(2)
12.6.4 Analyzing Elementary Particles
470(3)
References
473(2)
13 Neural Networks 475(30)
13.1 Introduction
475(1)
13.2 A Basic Neural Network
476(4)
13.2.1 Encog Approach
477(2)
13.2.2 Using Neuroth
479(1)
13.3 Backpropagation with Multiple Outputs
480(3)
13.4 Numeric Predictions
483(8)
13.4.1 Generating a Data Sample
483(1)
13.4.2 Data Preparation
484(2)
13.4.3 Building a Neural Net
486(2)
13.4.4 Training and Verifying
488(3)
13.5 Bayesian Networks
491(3)
13.5.1 Creating Bayesian Network Using Scripts
491(3)
13.5.2 HB ayes Method
494(1)
13.6 Kohonen Self-organizing Map
494(4)
13.6.1 Kohonen SOFM in 2D
495(2)
13.6.2 Kohonen SOFM in 3D
497(1)
13.7 Bayesian Self-organizing Map
498(4)
13.7.1 Noninteractive BSOM
500(2)
13.8 Neural Network Using Python Libraries
502(2)
References
504(1)
14 Finding Regularities and Data Classification 505(22)
14.1 Cluster Analysis
505(8)
14.1.1 Preparing a Data Sample
507(2)
14.1.2 Clustering Analysis
509(3)
14.1.3 Interactive Clustering Analysis
512(1)
14.2 Clustering Particles into Jets. Real-Life Example
513(2)
14.3 Smoothing and Interpolation
515(4)
14.4 Peak Identification
519(3)
14.5 Principal Component Analysis
522(2)
14.6 Decision Trees
524(2)
References
526(1)
15 Miscellaneous Topics 527(20)
15.1 Working with Data
527(4)
15.1.1 Downloading Files from the Web
527(1)
15.1.2 Extracting Data from Figures
528(1)
15.1.3 Tables and Spreadsheets
529(2)
15.2 Measurements with Units
531(2)
15.3 Cellular Automaton
533(1)
15.4 Image Processing
534(5)
15.4.1 Image Modification
537(1)
15.4.2 Transforms Using Multiple Cores
538(1)
15.5 Market and Financial Analysis
539(7)
15.5.1 Time Series
540(4)
15.5.2 Financial Charts
544(2)
References
546(1)
16 Using Other Languages on the Java Platform 547(20)
16.1 Python Scripting with DMelt
547(4)
16.1.1 Operations with Data Holders
550(1)
16.1.2 Adding Python Modules
551(1)
16.2 Using Java Programming
551(7)
16.2.1 External Java Libraries
554(1)
16.2.2 Working Java Projects
554(1)
16.2.3 Embedding DMelt in Applets
555(3)
16.3 Using BeanShell Language
558(2)
16.4 Using Groovy Language
560(2)
16.5 Using Ruby Language
562(2)
16.6 Using Octave Language
564(1)
References
565(2)
17 Octave-Style Scripting Using Java 567(48)
17.1 Getting Started
567(2)
17.2 Variables and Operators
569(4)
17.2.1 Symbolic Variables
572(1)
17.2.2 Operators and Commands
573(1)
17.3 Functions
573(4)
17.4 Polynomials
577(3)
17.5 Vectors and Matrices
580(7)
17.5.1 Vectors
580(2)
17.5.2 Matrices
582(5)
17.6 Flow Control
587(3)
17.6.1 Benchmarks
588(2)
17.6.2 File Input and Output
590(1)
17.7 Calculus
590(6)
17.7.1 Differentiation
590(1)
17.7.2 Integration
591(1)
17.7.3 Indefinite Integral
592(1)
17.7.4 Transformations
593(1)
17.7.5 Simplifying Expressions
594(2)
17.8 Data Visualization
596(8)
17.8.1 Plotting Data
596(2)
17.8.2 Plot2D
598(3)
17.8.3 Plot3D
601(3)
17.9 Equations
604(4)
17.9.1 Systems of Linear Equations
604(1)
17.9.2 Nonlinear Equations
605(1)
17.9.3 Systems of Equations
606(1)
17.9.4 Differential Equations
607(1)
17.10 Statistics
608(3)
17.10.1 Descriptive Statistics
608(2)
17.10.2 Random Numbers
610(1)
17.10.3 Data Fitting
610(1)
17.10.4 Histograms
611(1)
17.11 Again About Integration with Java
611(1)
References
612(3)
Index 615
S. Chekanov was born in Minsk (Belarus) and received his Ph.D. in experimental physics at Radboud University Nijmegen, The Netherlands. He has more than twenty five years of experience in high-energy particle physics including advanced programming and analysis of large data volumes collected by high-energy experiments operated by major international collaborations. He has written  a book and over a hundred professional articles, many of them based on analysis of experimental data from large-scale international experiments, such as LEP (CERN, European Organization for Nuclear Research), HERA (DESY, German Electron Synchrotron) and LHC, the Large Hadron Collider experiment at CERN. Over the past decade he has divided his time between data analysis, developing analysis tools and providing software support for the Midwest data-analysis centre (USA) of the LHC experiment.  He is founder of the jWork.ORG community portal for promoting scientific computing for science and education.In 2005 he created a data-analysis software environment, which is presently known as DMelt.

Currently, this software is the world's leading open-source program for data analysis, statistics and scientific visualization, incorporating Java packages from more than 100 developers around the world and with thousands of users. Presently, he works at the Argonne National Laboratory (Chicago, USA).