SVD_SNOWFALL
Singular Value Decomposition of Snowfall Data


SVD_SNOWFALL is a FORTRAN77 library which demonstrates the use of the Singular Value Decomposition (SVD) to analyze a set of historical snowfall data, with plots created by GNUPLOT.

The snowfall data consists of records for the winters of 1890-1891 to 2016-2017, of the snowfall in inches, over the months from October to May, as measured at Michigan Tech.

This data can be regarded as an 8 by 127 matrix A. Applying the singular value decomposition produces the factors

A = U * S * V'
and it is the purpose of this library to consider what these factors indicate about the snowfall data.

The sample problem writes files that can be processed by GNUPLOT to create plots.

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages:

SVD_SNOWFALL is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version and a Python version.

Related Data and Programs:

FINGERPRINTS, a dataset directory which contains a few images of fingerprints.

GNUPLOT, FORTRAN77 programs which illustrate how a program can write data and command files so that gnuplot can create plots of the program results.

SVD_BASIS, a FORTRAN90 program which computes a reduced basis for a collection of data vectors using the SVD.

SVD_DEMO, a FORTRAN77 program which demonstrates the singular value decomposition (SVD) for a simple example.

SVD_TRUNCATED, a FORTRAN90 program which demonstrates the computation of the reduced or truncated Singular Value Decomposition (SVD) of an M by N rectangular matrix, in cases where M < N or N < M.

TIME_SERIES, a dataset directory which contains examples of files describing time series.

Reference:

  1. Edward Anderson, Zhaojun Bai, Christian Bischof, Susan Blackford, James Demmel, Jack Dongarra, Jeremy Du Croz, Anne Greenbaum, Sven Hammarling, Alan McKenney, Danny Sorensen,
    LAPACK User's Guide,
    Third Edition,
    SIAM, 1999,
    ISBN: 0898714478,
    LC: QA76.73.F25L36
  2. Gene Golub, Charles VanLoan,
    Matrix Computations, Third Edition,
    Johns Hopkins, 1996,
    ISBN: 0-8018-4513-X,
    LC: QA188.G65.
  3. David Kahaner, Cleve Moler, Steven Nash,
    Numerical Methods and Software,
    Prentice Hall, 1989,
    ISBN: 0-13-627258-4,
    LC: TA345.K34.
  4. Lloyd Trefethen, David Bau,
    Numerical Linear Algebra,
    SIAM, 1997,
    ISBN: 0-89871-361-7,
    LC: QA184.T74.

Source Code:

Examples and Tests:

The snowfall data itself must be read into the program from a file:

The second test function writes "command" and "data" files that can be used by gnuplot to create plots.

The third test function writes "command" and "data" files that can be used by gnuplot to create plots.

The fourth test function writes "command" and "data" files that can be used by gnuplot to create plots of the first 6 U modes, which form a basis for average snowfall as a function of the month.

The fifth test function writes "command" and "data" files that can be used by gnuplot to create plots of the first 6 V modes, which form a basis for total yearly snowfall behavior as a function of the year.

List of Routines:

You can go up one level to the FORTRAN77 source codes.


Last revised on 06 May 2013.