Vladimir Dobrushkin
www.cfm.brown.edu/people/dobrush/cs52/
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the appendix entitled GNU Free Documentation License.
Introduction: |
---|
Linear Algebra Software |
The cybernetic revolution that occured on the eve of twenty-one century effected our life in all demeanors. The collection, organization, transformation, and interpretation of information are the cornerstones of science, inductry, business, and goverment. Each of these aspects of information management uses mathematics as a tool.
Linear algebra has undergone a real metamorphosis during this century, partly due to the birth and development of computers. It is so active that entire periodical magazines are now devoted to it, and one single tutorial can only reflect part of its vitality. Here is an attempt to face this challenge in a concise-although rigorous-manner. Linear algebra is a general and powerful language. This tutorial is based on utilization of poweful software packages and focuses on applications, justifying the elaboration of such an abstract language.
Linear algebra is employed in most of computational physics and information technologies. The two main problems that linear algebra studies can be trivially stated as follows:
- Solve a linear system of m equations with n unknowns that can be written in concise vector form A x = b.
- Determine a spectral decomposition of a matrix A that leads to the matrix eigenvalue problem A x = λx.
- Matlab® (Octave is a free software similar to matlab)
- Maple™ (CAS)
- Mathematica® (Mathics is a free software similar to Mathematica)
- R (free software)
- Maxima (free computer algebra system)
- Sage (free computer algebra system)
- SymPy (free computer algebra system)
- Python (free software)
All these packages have the syntax commands closely related to traditional pen-and-paper mathematical language. According to the National Council of Teachers of Mathematics, the goal of teaching mathematics is to help all students develop mathematical concepts including the abilities of students in converting symbolic information into graphical and technology. This can be achieved and constructed using programming that is useful at any stage of mathematical thinking especially in conjecturing. In our days, computational thinking should be considered a fundamental analytic skill in education, along with reading, writing, and arithmetic. This is a vision for the twenty-first century supported by both, the National Research Council of the Academy of Science and the National Council of Teachers of Mathematics.
The author feels deeply that computing should be an integral part of any linear algebra course. The graphics capabilities alone warrant its use. Of course. technology is not a substitute for actual knowledge of material. Technology is a tool to gain insights into complex problems and it can be a valuable tool to better understand difficult concepts and learn the scientific methods of inquiry. The author believes that computing brings additional insight and helps to develop curiosity that theory alone cannot achieve. As a result, the qualitative aspects of linear algebra could be explored in greater depth.