ADDITIVE GmbH
Abt. Engineering & Science
Max-Planck-Straўe 22b
D-61381 Friedrichsdorf/Ts.
  Tel.:  +49 6172 5905 30
  Fax:  +49 6172 77613
  email:
mathematica@additive-net.de
  www:  
http://www.additive.net.de

Die Mathematica Applications Library

Mathematica hat sich in den vergangenen Jahren als unentbehrliches Werkzeug im Ingenieurwesen etabliert. Es bietet dem professionellen Anwender, durch seinen m”chtigen und fortschrittlichen Funktionsumfang, eine unerreichte Flexibilit”t bei der Analyse, Modellierung und Visualisierung der w”hrend der t”glichen Ingenieurarbeit anfallenden Daten. Im Sommer 1994 startete Wolfram Research die Ver–ffentlichung der Mathematica Anwendungs-Pakete, die dem Benutzer sofort einsetzbare Funktionen aus speziellen Anwendungsbereichen bieten. Dem Anwender wird durch diese Pakete der schrittweise Einstieg in die Thematik bis zum Expertenwissen leicht gemacht. Die Zahl der Zusatzpakete wurde seit dieser Zeit auf Иber 30 Zusatzpakete erweitert.

Ein аbersicht zu den Zusatzpaketen ist aktuell im INTERNET zu finden.

http://www.additive-net.de/software/mathematica/packages/mma.packages.shtml

Experimental Data Analyst
Table of Contents

Chapter 1
Introduction to Experimental Data Analyst

1.1 Summary and Use of EDAнннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 2
1.1.1 Summary of the Chapters of EDAнннннннннннннннннннннннннннннннннннннннннннннннннннннннн 2
1.1.2 Using EDAнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 3
1.2 The EDA Data Formatнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 5
1.3 EDA Utilities and Supplied Data Setsнннннннннннннннннннннннннннннннннннннннннннннннннннннн 8
1.3.1 Contents of the EDA `Data` Directoryнннннннннннннннннннннннннннннннннннннн 16

Chapter 2
Importing and Exporting Data
2.1 Importing Data from an ASCII Fileнннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 23
2.1.1 Introductionннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 23
2.1.2 A Real-World Exampleнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 29
2.1.3 Summary of ImportDataннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 34
2.2 Exporting Data to an ASCII Fileнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 37
2.2.1 Introductionннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 37
2.2.2 Summary of ExportDataннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 41
2.3 Importing Data from a Binary Fileнннннннннннннннннннннннннннннннннннннннннннннннн 43
2.4 Getting Data from a Scanned Plotнннннннннннннннннннннннннннннннннннннннннннннннн 46

Chapter 3
Experimental Errors and Error Analysis
3.1 Introductionнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 51
3.1.1 The Purpose of Error Analysisнннннннннннннннннннннннннннннннннннннннннннннннннн 51
3.1.2 Different Types of Errorsнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 53
3.1.3 Referencesннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 53
3.2 Determining the Precisionннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 54
3.2.1 The Standard Deviationнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 54
3.2.2 The Reading Errorнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 59
3.2.3 "THE" Errorннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 59
3.2.4 Rejection of Measurementsнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 60
3.3 Propagation of Errors of Precision
ннннннннннннннннннннннннннннннннннннннннннннннн 61
3.3.1 Discussion and Examplesнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 61
3.3.2 Finding the Error in an Averageннннннннннннннннннннннннннннннннннннннннннннннннн 72
3.4 Calibration, Accuracy, and Systematic Errorsннннннннннннннннннннннннннннннн ннннннннннн 74
3.5 Summary of the Error Propagation Routinesннннннннннннннннннннннннннннннннннннннннннннн 77

Chapter 4
Fitting Data to Linear Models
by Least-Squares Techniques
4.1 Background Discussionннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 81
4.1.1 Linear Fitsнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 81
4.1.2 Least-Squares Techniquesнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 83
4.1.3 Fitting to Data with Experimental Errorsнннннннннннннннннннннннннннннннннннн 85
4.1.4 Evaluating the Goodness of a Fitннннннннннннннннннннннннннннннннннннннннннннннн 87
4.1.5 Referencesннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 94
4.2  Curve Fitting When the Data Have No Explicit Errorsннннннннннннннннн 95
4.2.1 Unwinding the Residual Calculationннннннннннннннннннннннннннннннннннннннннннннннннннннннн 103
4.3 Curve Fitting When the Data Have Explicit Errorsнннннннннннннннннннннннн 105
4.4 Options, Utilities, and Detailsннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 113
4.4.1 Options to LinearFitннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 113
4.4.2 Other Routines in the LinearFit Packageнннннннннннннннннннннннннннннннннннн 146
4.5 Summary of the LinearFit Packageннннннннннннннннннннннннннннннннннннннннннннннн 153
4.5.1 The LinearFit Routineннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 153
4.5.2 The ShowLinearFit Routineнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 159
4.5.3 The ToLinearFunction Routineнннннннннннннннннннннннннннннннннннннннннннннннннн 160

Chapter 5
Fitting Data to Nonlinear Models
5.1 Introductionнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 163

5.1.1 Overview of FindFitннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 163
5.1.2 Providing Initial Parameter Values to FindFitннннннннннннннннннннннннннннн ннннннннннн 166
5.1.3 Comparing LinearFit and FindFitнннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 172
5.1.4 Referencesннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 181
5.2 Examplesнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 182
5.2.1 Fitting to a Single Peak with a Backgroundннннннннннннннннннннннннннннннннннннннннннн 182
5.2.2 Fitting to Two Peaks with No Backgroundннннннннннннннннннннннннннннннннннннннннннн 196
5.3 Options, Utilities, and Detailsннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 198
5.3.1 Options to FindFitнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 198
5.3.2 Other Routines in the FindFit Packageнннннннннннннннннннннннннннннннннннннн 206
5.3.3 Peak Shape Routinesннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 211
5.4 Summary of the FindFit Packageннннннннннннннннннннннннннннннннннннннннннннннннн 212

Chapter 6
Smoothing Data, Filling Missing Data,
and Nonparametric Fitting
6.1 Introductionнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 219
6.1.1 Smoothing with Averaging Techniquesнннннннннннннннннннннннннннннннннннннн 219
6.1.2 Fourier Filtersнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 228
6.1.3 Loess Fittingнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 232
6.1.4 Using Mathematica Built-in Functionsнннннннннннннннннннннннннннннннннннннннн 239
6.1.5 Smoothing an Interpolationннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 243
6.1.6 Filling Missing Dataнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 248
6.1.7 Referencesннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 263
6.2 Detailsнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 263
6.2.1 Nonmonotonic Data and Related Assumptionsнннннннннннннннннннннннннн 263
6.2.2 Comparing Various Smoothing Methodsннннннннннннннннннннннннннннннннннн 264
6.2.3 How LoessFit Worksннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 275
6.3 Summary of the SmoothData Packageннннннннннннннннннннннннннннннннннннннннннннннннннннн 278

Chapter 7
Robust Fitting
7.1 Introductionнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 283
7.1.1 Using the Medianннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 283
7.1.2 Using Weighting Techniquesннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 289
7.2 Detailsнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 293
7.2.1 RobustCurveFitнннннннннннннннннннннннннннннннннннннннннннннннн ннннннннннннннннннннннн 293
7.2.2 RobustLineFitнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 296
7.2.3 Comparing RobustCurveFit and RobustLineFitннннннннннннннннннннннннн 300
7.3 Summary of the RobustFit Packageннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 301

Chapter 8
Exploration and Transformation of Data

8.1 Graphical Explorationннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 305
8.1.1 EDAListPlotннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 306
8.1.2 Histogramннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 309
8.1.3 BoxPlotннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 313
8.1.4 Summary of General Purpose EDA Graphics Routinesн 319
8.2 Transforming Dataнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн ннннннннннн 323
8.2.1 The Data Itself Suggests a Transformationнннннннннннннннннннннннннннннннннн 323
8.2.2 Transforming to Match a Modelннннннннннннннннннннннннннннннннннннннннннннннннннннн 340
8.2.3 Finding Hidden Features of the Dataнннннннннннннннннннннннннннннннннннннннннннн 344
8.3 Estimating Parameters for Peaksнннннннннннннннннннннннннннннннннннннннннннннннннннн 349
8.3.1 Summary of FindPeaksнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 360
8.4 Referencesнннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 362
8.4.1 References to Mathematicaннннннннннннннннннннннннннннннннннннннннннннннн 362
8.4.2 References to Exploratory
нннннннн Data Analysis and Transformationнннннннннннннн ннннннннннннннннннннннн 363

Chapter 1
Introduction to
Experimental Data Analyst

Experimental Data Analyst (EDA) is a collection of tools and tutorials designed specifically for the needs of the physical scientist and engineer and the students of science and engineering. Included are over 30 functions, tutorials in using the functions, tutorials in using Mathematica built-in commands and standard Mathematica packages, and discussions of the underlying theory of data analysis at a variety of levels from beginning undergraduate to practicing researcher. The tutorials make use of a variety of real experimental data drawn from many different fields, and the data is also included in the package.

The material is divided into eight chapters, beginning with this chapter which provides an overview of the contents. The chapters can be accessed as the hard-copy version, or read on line as Mathematica notebooks. The notebooks can be read with the front end included with Mathematica or with the free MathReader program available from the MathSource archive; in the former case, the notebooks can be interactive, and the reader is encouraged to experiment with the commands and supplied data sets.

If you are reading this chapter with the Mathematica front end, when you open the notebook a dialog box inquires if you wish to initialize the notebook. If you reply "Yes", the following initialization command is executed.

Needs["EDA`Master`"]
[Graphics:Images/index_gr_1.gif]

If the command is executed, and produces any error messages, you should consult your installation document for the package or see Section 1.1.2 "Using EDA"; if no error messages are produced, then this notebook is "live" and all Mathematica commands in the notebook may be executed, changed, reexecuted, etc.

The chapters do not all have to be read in order. In general, we recommend that you look over this chapter in its entirety before going on to the others. Section 1.1.1 gives further recommendations of which chapters and sections are probably prerequisites for succeeding ones.

If you are reading this chapter on line, the following sections are "closed". A solid triangle on the bottom of the cell bracket identifies a closed group. To open a closed group, point at the cell bracket with the mouse or trackball and double click; alternatively, point at the bracket, click once, and choose the Open/Close Group command from the Cell menu at the top of this window.

1.1 Summary and Use of EDA

1.1.1 Summary of the Chapters of EDA

Chapter 2 deals with methods of getting data into Mathematica so that it may be analyzed. This chapter is independent of all other chapters supplied with EDA. It discusses techniques to read and write files containing data sets; and also introduces the EDA programs ImportData and ExportData.

Chapter 3 discusses a topic which pervades data analysis in the physical sciences and engineering: error analysis. Here a tutorial is supplied. Although the level is suitable for an undergraduate student in the sciences, we are also aware of many professional researchers whose education and training have managed to miss some of the material discussed here. In addition, EDA supplies programs and constructs to simplify error analysis, and they are introduced in this chapter. The EDA functions discussed are AdjustSignificantFigures, CombineWithError, DivideWithError, PlusWithError, PowerWithError, Quadrature, SubtractWithError, and TimesWithError. Also, EDA defines Data and Datum constructs for doing propagation of errors; these constructs are introduced in this chapter. The functions and constructs discussed here are used in later chapters.

Chapters 4 through 8 are the "heart" of the analysis tools provided by EDA.

Chapter 4 introduces one of the most commonly performed tasks in data analysis: fitting data to linear models, especially straight lines and curves. Section 4.1 provides background discussions of a linear fit, least-squares techniques, evaluation of the quality of the fit, etc.; some familiarity with this material is assumed in all later sections. The remainder of Chapter 4 discusses the EDA function LinearFit that performs linear least-squares fits to data; included is a discussion of the related EDA functions ShowLinearFit and ToLinearFunction. The LinearFit function is used in all subsequent chapters. Also, many other EDA functions have similar syntax. Thus, some familiarity with its syntax and options is recommended.

Chapter 5 extends the materials of Chapter 4 to arbitrary models. It introduces the EDA function FindFit and the related functions ShowFitFunction and ToFitFunction. Also discussed are some convenience functions that define peak shapes; these are BreitWigner, Galatry, Gaussian, Lorentzian, PearsonVII, RelativisticBrietWigner, and Voigt. Little in the chapter is used in later discussions, although the FindPeaks function discussed in Chapter 8 is primarily intended as a companion to FindFit.

Chapter 6 discusses techniques to eliminate noise in data and to fill in missing values. It also discusses the related topic of fitting data when a model is not available or

appropriate. The chapter introduces the EDA functions SmoothData, LoessFit, and FillData. There is also a tutorial on using built-in Mathematica functions to smooth data, and the algorithm used by the FindPeaks program discussed in Chapter 8 is introduced here. With the exception of the algorithm of FindPeaks, nothing in later chapters depends on anything appearing here.

Chapter 7 discusses techniques to fit data to lines and curves when one or more of the data points may be "wild", i.e.,the data contains "outliers."  Alternatives to least-squares techniques should be considered in this case since an outlier can have a significant effect on the least-squares fit. The chapter introduces the EDA functions RobustCurveFit and RobustLineFit. Nothing in the chapter is required for Chapter 8.

Chapter 8 discusses what to do when the relations in a data set are not known. Graphical techniques are explored in Section 8.1. The discussion includes the EDA function EDAListPlot, which is briefly introduced in Section 1.3; the EDA functions Histogram and BoxPlot are also discussed. Section 8.2 is a tutorial on using Mathematica built-in functions to transform the data; the discussion is one of the more advanced in EDA. Nonetheless, Section 8.2 only "scratches the surface" of this topic. Finally, Section 8.3 gives a full discussion of the FindPeaks function; this function was briefly introduced in Chapter 5, and its algorithm was discussed in Section 6.1.5.

1.1.2 Using EDA

Although EDA notebooks include general purpose tutorials, EDA is also a collection of software tools, and this subsection discusses using the software. The software consists of 12 Mathematica packages, which are files written in the Mathematica language. These are the files that define EDA's functions, options, etc.

The easiest way to access an EDA function is to load the EDA`Master` file. This file knows which package file contains which programs, symbols, etc. Then when you invoke a specific function, the Mathematica kernel loads the appropriate package. The Master file can be loaded with the following.

Needs["EDA`Master`"]

If Mathematica cannot find the Master package, verify that the $Path variable includes the directory where applications such as Experimental Data Analyst are placed.

Once the EDA`Master` file has successfully loaded, you can use Mathematica just as if all the packages of EDA were loaded, except for a few differences. The three main differences are the following.

First, since all of the packages are loaded only when needed, the size of the Mathematica kernel is over a megabyte smaller than if they were actually loaded.

Second, the first time you invoke an EDA function, the package containing the function has to be loaded. Often, other packages are used by the package containing the definition of the function you have invoked, and they must be loaded, too. For example, the package containing the definition of LinearFit loads six other packages; some of these load yet other packages. For this example, invoking LinearFit loads 10 other packages besides the one containing the definition for LinearFit itself. Therefore, the first time you invoke some EDA functions, it may take a few moments before everything is loaded and the program begins its work. Second and subsequent invocations will begin their work almost immediately.


Converted by Mathematica      March 29, 2001