This worksheet demonstrates how to write a Maplet application that functions similarly to the LinearAlgebra[MatrixNorm] Maplet application available in the Maplets[Examples] package. It is designed for experienced Maple authors.

The MatrixNorm Maplet application provides a graphical interface to the LinearAlgebra[MatrixNorm] function.

The matrix norm of a matrix M is a function that satisfies all the conditions of a norm and |||M||| such that || M.v || <= |||M||| ||v|| for all vectors v.By using user input, this procedure returns the calling sequence required to find the matrix norm or evaluates the result.

Thus, the Maplet application requests:

1. The norm, one of: infinity, 1, Euclidean (2), or Frobenius.

2. Whether the matrix is real-valued.

3. Whether the result is to be evaluated (or the calling sequence is to be returned).

Example Code

>

restart:

Invoke the Maplets Elements subpackage.

>

with(Maplets[Elements]):

Since it is not most efficient to enter a matrix in a Maplet application, the Maplets[Examples][LinearAlgebra][MatrixNorm] example Maplet application requires that the user include the matrix as an input.For this example, the following matrix is used.

>

M := <<1,2,3>|<2,3,5>|<3,5,12>>;

This example displays a Maplet application that queries the user for the inputs required, and then processes the results.

The variable continue is used to determine whether a previous section failed as a result of errors in user input or a Cancel click in either Maplet application.

Once the result from the Maplet application has been returned, check if the user clicked Cancel (by checking for a NULL result) or OK.If the user selected OK, analyze the results. Since the Maplet application required no user input, there is no need to check the output.If the user indicates that the matrix has real entries, then the conjugate option need not be set.

Finally, we set the options, and assign the answer depending on whether the user requested an evaluation.For this example, since answer is global, it evaluates fully. The extra level of unevaluation quotes is not necessary inside a procedure.