Overview of the Student[LinearAlgebra] Subpackage
Calling SequenceDescriptionLinearAlgebra in the Maple SystemMatrices and VectorsVisualizationInteractiveComputationGetting Help with a Command in the Package
<Text-field style="Heading 2" layout="Heading 2" bookmark="usage">Calling Sequence</Text-field>
Student[LinearAlgebra][command](arguments)
command(arguments)
<Text-field style="Heading 2" layout="Heading 2" bookmark="info">Description</Text-field>
The Student[LinearAlgebra] subpackage is designed to help teachers present and students understand the basic material of a standard first course in linear algebra. The subpackage has three principal components: interactive, visualization, and matrix computations. These components are described in the following sections.
A comment on notation: Prior to Maple 6, the data structures used for linear algebra computations were matrix and vector. These objects were based on the Maple table data structure, and the support for linear algebra was largely contained in the (now deprecated) linalg package.
In Maple 6, a new data structure, called an rtable, was introduced. The name rtable is short for rectangular table and reflects the underlying storage scheme, which in most cases is a contiguous block of computer memory. This enables Maple to achieve high efficiencies in large linear algebra computations. A new package, called LinearAlgebra, was developed to take advantage of this technology. The data structures used by the LinearAlgebra package, and now by this Student[LinearAlgebra] subpackage, are Matrix and Vector, which are based on the new rtable structure.
The Student[LinearAlgebra] subpackage, like the main LinearAlgebra package, does not recognize the older matrix and vector data structures. However, for backwards compatibility reasons, these data structures continue to exist and be supported in Maple. For the purposes of clarity, therefore, the documentation for the Student[LinearAlgebra] subpackage uses the capitalized names, Matrix and Vector, throughout.
Each command in the Student[LinearAlgebra] subpackage can be accessed by using either the long form or the short form of the command name in the command calling sequence.
For example, to visualize the intersection of a set of planes in 3-D space, use the following command (assuming the short form with(Student[LinearAlgebra]) has already been entered).
LinearSystemPlot({3*x+2*y-z=4, -x+3*y+2*z=1})
As the underlying implementation of the Student[LinearAlgebra] subpackage is a module, it is also possible to use the form Student[LinearAlgebra]:-command or Student:-LinearAlgebra:-command to access a command from the package. For more information, see Module Members.
The Maple Command Completion facility is helpful for entering the names of Student package commands.
Many of the commands and tutors in the Student[LinearAlgebra] package can be accessed through the context-menu. These commands are consolidated under the Student[LinearAlgebra] name.
A note on boolean options: Many of the commands in the Student[LinearAlgebra] subpackage take boolean options, that is, options of the form option_name = value, where value is one of true or false. These options are used, for example, to control which components are included in a plot. In all cases, the form option_name = true can be abbreviated as simply option_name.
<Text-field style="Heading 2" layout="Heading 2" bookmark="bkmrk0">LinearAlgebra in the Maple System</Text-field>
Linear algebra operations and data structures are used throughout the Maple system and by a wide variety of users, from students in a classroom to professionals solving large, real world problems. Certain aspects of the design of Maple support for linear algebra address the needs of the former group (for example, syntactic shortcuts for common operations), while others address the needs of the latter group (for example, using hardware precision for floating-point computations, and computing over the complex numbers).
In the Student[LinearAlgebra] subpackage, the default environment has been slightly modified from that of the broader Maple context, in that floating-point computations are not routinely carried out using hardware precision, and symbols are generally assumed to represent real, rather than complex, quantities. Both of these defaults, as well as others, can be controlled through the SetDefault command.
<Text-field style="Heading 2" layout="Heading 2" bookmark="bkmrk1">Matrices and Vectors</Text-field>
The general constructor commands for Matrix and Vector objects are called, respectively, Matrix and Vector. These are powerful commands, providing the user with extensive control over the precise formats of the underlying data structures as well as constraints on types and locations of entries. However, within the context of the Student[LinearAlgebra] subpackage, it is rarely necessary to use these commands directly.
A Vector can also be constructed using either of two shortcut syntaxes:
<1, 2, 3, 4>constructs a column Vector<a | b | c>constructs a row Vector
This syntax allows the user to control only the entries of the Vector. In general, this is sufficient for interactive work on small Vectors.
A Matrix can be constructed from scalar data using a similar syntax:
<a,b;c,d;e,f>constructs a 3x2 Matrix from rows of scalars<a,b|c,d|e,f>constructs a 2x3 Matrix from columns of scalars
A Matrix can be also be constructed from Vector or Matrix inputs:
<<1,2>|<3,4>|<5,6>>constructs a 2x3 Matrix out of 3 column Vectors<<a|b>,<c|d>,<e|f>>constructs a 3x2 Matrix out of 3 row Vectors
The general rule is that vertical bars (|) separate objects horizontally (across rows), while commas separate objects vertically (down columns). The objects themselves must have dimensions which allow for correct alignment. This means, for example, that when a Matrix is constructed from Vectors, all the Vectors must have the same orientation and dimension.
The objects used to create a Matrix (by rows or columns) need not be Vectors. For example, if A is a 3x3 Matrix and b is a 3-D column Vector, then NiMtSSQ8fGdyPkc2IjYkSSJBR0YlSSJiR0Yl builds the corresponding 3x4 augmented Matrix, while NiMtSSQ8LD5HNiI2JEkiQUdGJSlJImJHRiVJIyVURzYkSSpwcm90ZWN0ZWRHRixJKF9zeXNsaWJHRiU= builds a 4x3 Matrix whose last row is the transpose of b.
See Matrix and Vector Construction Shortcuts for more details.
See Operators for details on how to perform standard arithmetic operations on Matrices and Vectors.
It is convenient to use the Matrix or Vector constructor directly when creating a symbolic Matrix or Vector and giving a generic name to the entries (by default, unspecified entries in a Matrix or Vector are set to NiMiIiE=). For example, to create a LUklbXJvd0c2JEkqcHJvdGVjdGVkR0YlL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHNiRGJUkoX3N5c2xpYkdGKDYjLUkjbWlHNiRGJS9GJ0YpNiNRJDN4MkYo Matrix A whose entries are appropriately subscripted letters a, use NiM+SSJBRzYiLUknTWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2JSIiJCIiIy9JJ3N5bWJvbEdGKUkiYUdGJQ==. Do not assign any other value to the name used for this symbol.
<Text-field style="Heading 2" layout="Heading 2" bookmark="bkmrk2">Visualization</Text-field>
The visualization commands are designed to assist in the understanding of basic linear algebra concepts. Each of these commands produces a Maple plot, which is a static plot or an animation, depending on the options you select. Additionally, if you set infolevel[Student] := 1 or infolevel[Student[LinearAlgebra]] := 1, these commands print useful information about the computation. For details, see infolevel and SetDefault.
You have considerable control over the presentation of plots produced by the visualization routines. The display of each object included in the plot can be adjusted by using a corresponding option in the calling sequence. For details, see the help pages for the individual commands.
For more information on this functionality, see Student[LinearAlgebra][VisualizationOverview].
The visualization commands are:ApplyLinearTransformPlotCrossProductPlotEigenPlotLeastSquaresPlotLinearSystemPlotLinearTransformPlotPlanePlotProjectionPlotVectorSumPlot
For examples, see LinearAlgebra Visualization Example Worksheet 1 and LinearAlgebra Visualization Example Worksheet 2.
<Text-field style="Heading 2" layout="Heading 2" bookmark="bkmrk3">Interactive</Text-field>
The interactive routines use the Maple Maplet technology to assist you to work through the standard computations of linear algebra in a visually directed manner. These commands display one or more dialog boxes presenting the current state of the problem you are working on and a set of controls which let you move to the next step in the solution of that problem. Each command takes as input a Matrix, or a Matrix and Vector.
As these Maplet applications are designed to demonstrate concepts, the problems they accept are restricted to low dimensionality, typically no more than dimension 4 or 5.
Note: Algorithms for linear algebra computations using floating-point numbers are different from algorithms for similar computations using integers, rational numbers, or symbolic expressions. Thus, any floating-point numbers present in parameters passed to any of the Maplet applications in this subpackage are converted to rationals before the computation proceeds.
For more information on this functionality, see Student[LinearAlgebra][InteractiveOverview].
The interactive commands are:EigenPlotTutorEigenvaluesTutorEigenvectorsTutorGaussianEliminationTutorGaussJordanEliminationTutorInverseTutorLinearSolveTutorLinearSystemPlotTutorLinearTransformPlotTutor
For examples, see LinearAlgebra Interactive Example Worksheet.
For information on the interactive Matrix Builder Maplet, see Matrix Builder.
<Text-field style="Heading 2" layout="Heading 2" bookmark="bkmrk4">Computation</Text-field>
Maple includes a large package, called LinearAlgebra, of routines supporting computations in linear algebra. The bulk of the routines in the Student[LinearAlgebra] subpackage relating to such computations are front-ends to this larger package.
The help page for each of these computation commands is generally a shortened version of the corresponding main LinearAlgebra documentation page, describing the parameters and options most likely to be used in a first linear algebra course setting. If more information is required, you can follow a link to the main LinearAlgebra page to get a description of the full functionality of the command.
For more information on this functionality, see Student[LinearAlgebra][ComputationOverview].
The commands available for use in linear algebra computation are:&x*+.^^*^+AddRowAdjointBackwardSubstituteBandMatrixBasisBilinearFormCharacteristicMatrixCharacteristicPolynomialColumnDimensionColumnSpaceCompanionMatrixConstantMatrixConstantVectorDeterminantDiagonalDiagonalMatrixDimensionEigenvaluesEigenvectorsEqualGaussianEliminationGenerateEquationsGenerateMatrixGramSchmidtHermitianTransposeHouseholderMatrixIdIdentityMatrixIntersectionBasisIsDefiniteIsOrthogonalIsSimilarIsUnitaryJordanBlockMatrixJordanFormLeastSquaresLinearSolveLUDecompositionMinimalPolynomialMinorMultiplyRowNormNormalizeNullSpacePivotProjectionMatrixQRDecompositionRandomMatrixRandomVectorRankReducedRowEchelonFormReflectionMatrixRotationMatrixRowDimensionRowSpaceSumBasisSwapRowTraceTransposeUnitVectorVectorAngleZeroMatrixZeroVector
For examples, see LinearAlgebra Computation Example Worksheet.
For information on setting default parameters for the Student[LinearAlgebra] subpackage, see SetDefault.
<Text-field style="Heading 2" layout="Heading 2" bookmark="bkmrk5">Getting Help with a Command in the Package</Text-field>
To display the help page for a particular Student[LinearAlgebra] command, see Getting Help with a Command in a Package.
ApplicationsStudent[LinearAlgebra] ExamplesSee AlsoCommand CompletionLinearAlgebraLinearAlgebra Computation Example WorksheetLinearAlgebra Interactive Example WorksheetLinearAlgebra Visualization Example Worksheet 1LinearAlgebra Visualization Example Worksheet 2MatrixMatrix and Vector Construction ShortcutsrtableStudentStudent[LinearAlgebra][ComputationOverview]Student[LinearAlgebra][InteractiveOverview]Student[LinearAlgebra][VisualizationOverview]Student[SetDefault]Vector