Student[NumericalAnalysis] - Maple Programming Help

Home : Support : Online Help : Education : Student Packages : Numerical Analysis : Computation : Student/NumericalAnalysis/IterativeFormula

Student[NumericalAnalysis]

 IterativeFormula
 compute an iterative formula to approximate the solution to a linear system numerically

 Calling Sequence IterativeFormula(A, b, opts) IterativeFormula(A, opts)

Parameters

 A - Matrix; a square ($n$-by-$n$) matrix or an augmented $n$-by-$n+1$ matrix of the form (A|b) b - (optional) Vector; a vector of length $n$ opts - (optional) equation(s) of the form keyword=value where keyword is one of digits, initialapprox, iterations, method, output, showsteps; the options for computing the iterative formula

Options

 • digits = posint
 Set the environment variable Digits to this value. By default, digits is set to the current value of Digits.
 • initialapprox = Vector
 An initial approximate vector ${x}_{0}$; this vector is used to generate a sequence of approximate solution vectors ${x}_{k}$ using the iterative formula ${x}_{k+1}=T·{x}_{k}+c$.  If the iterations option is specified, then the initialapprox option must be specified as well, or an exception will be raised. In order to obtain a sequence of floating-point vectors (instead of exact rationals), the initialapprox vector should contain entries of type float rather than exact integers or rationals.
 • iterations = posint
 The maximum number of iterations to calculate. By default, this is set to $10$.
 • method = gaussseidel, jacobi, SOR(numeric)
 One of these three iterative methods for which to compute the matrix $T$ and vector $c$ in the iterative formula ${x}_{k+1}=T·{x}_{k}+c$.  By default, the Gauss-Seidel method is used.
 – Gauss-Seidel method : $T={\left(\mathrm{D}-L\right)}^{\mathrm{-1}}·U$, $c={\left(\mathrm{D}-L\right)}^{\mathrm{-1}}·b$
 – Jacobi method : $T={\mathrm{D}}^{\mathrm{-1}}·\left(L+U\right)$, $c={\mathrm{D}}^{\mathrm{-1}}·b$
 – Successive Overrelaxation method : $T={\left(-wL+\mathrm{D}\right)}^{\mathrm{-1}}·\left(\left(1-w\right)\mathrm{D}+wU\right)$, $c=\left(w{\left(-wL+\mathrm{D}\right)}^{\mathrm{-1}}\right)·b$
 In the above expressions, $U$ is the negated upper-triangular part of $A$, $L$ is the negated lower-triangular part of $A$, $\mathrm{D}$ is the diagonal part of $A$, and $w$ is extrapolation factor. We always have $A=\mathrm{D}-L-U$.
 • output = one of L, U, D, T, c, spectralradius, iterates, or a list containing one of more of those
 The return value of the command. For more than one output, specify a list of outputs in the order desired. By default, output = [L, U,D, T, c].
 The outputs L, U, D, T, and c are as described in the above sections.
 If the iterates option is specified, the list of approximate solution vectors ${x}_{k}$ is output. The total number of vectors returned is determined by the iterations option.
 If the spectralradius option is specified, the spectral radius of the iteration matrix $T$ is output.
 • showsteps = truefalse
 Whether to print helpful messages in the interface as the IterativeFormula command executes. By default, this option is set to false.

Description

 • Given a system $A·x=b$, the IterativeFormula command computes an equivalent fixed-point system of the form $x=T·x+c$.
 • The IterativeFormula command can compute the iteration matrix $T$ and vector $c$ for the following methods: the Gauss-Seidel iterative, Jacobi iterative, and successive over-relaxation methods.
 • An initial vector is specified using the initialapprox option and then a sequence of approximate solution vectors is generated using the iterative formula ${x}_{k+1}=T·{x}_{k}+c$.
 • Note that this iterative formula need not produce a converging sequence of vectors ${x}_{k}$. It can be shown that such an iterative scheme converges if and only if the spectral radius of the matrix $T$ is strictly less than 1. This spectral radius can be returned as an output via the output option. See below for more details.

Notes

 • This procedure operates symbolically; that is, the inputs are not automatically evaluated to floating-point quantities, and computations proceed symbolically and exactly whenever possible. To obtain floating-point results, it is necessary to supply floating-point inputs.

Examples

 > $\mathrm{with}\left({\mathrm{Student}}_{\mathrm{NumericalAnalysis}}\right):$
 > $A≔\mathrm{Matrix}\left(\left[\left[1.0,-0.1,2.,0.\right],\left[-0.1,1.1,-0.1,3.\right],\left[0.2,-0.1,1.0,-0.1\right],\left[0.,0.3,-0.1,0.8\right]\right]\right)$
 ${A}{≔}\left[\begin{array}{cccc}{1.0}& {-0.1}& {2.}& {0.}\\ {-0.1}& {1.1}& {-0.1}& {3.}\\ {0.2}& {-0.1}& {1.0}& {-0.1}\\ {0.}& {0.3}& {-0.1}& {0.8}\end{array}\right]$ (1)
 > $b≔\mathrm{Vector}\left(\left[0.6,2.5,-1.1,1.5\right]\right)$
 ${b}{≔}\left[\begin{array}{c}{0.6}\\ {2.5}\\ {-1.1}\\ {1.5}\end{array}\right]$ (2)
 > $\mathrm{IterativeFormula}\left(A,b,\mathrm{method}=\mathrm{jacobi},\mathrm{digits}=3,\mathrm{output}=\left['T','c'\right]\right)$
 $\left[\begin{array}{cccc}{0.}& {0.100}& {-2.00}& {0.}\\ {0.0909}& {0.}& {0.0909}& {-2.73}\\ {-0.200}& {0.100}& {0.}& {0.100}\\ {0.}& {-0.375}& {0.125}& {0.}\end{array}\right]{,}\left[\begin{array}{c}{0.600}\\ {2.27}\\ {-1.10}\\ {1.88}\end{array}\right]$ (3)
 > $\mathrm{IterativeFormula}\left(A,b,\mathrm{method}=\mathrm{SOR}\left(1.25\right),\mathrm{iterations}=5,\mathrm{initialapprox}=\mathrm{Vector}\left(\left[0.,0.,0.,0.\right]\right),\mathrm{digits}=4,\mathrm{output}=\left['\mathrm{iterates}'\right]\right)$
 $\left[\left[\begin{array}{c}{0.}\\ {0.}\\ {0.}\\ {0.}\end{array}\right]{,}\left[\begin{array}{c}{0.7500}\\ {2.926}\\ {-1.197}\\ {0.7850}\end{array}\right]{,}\left[\begin{array}{c}{3.920}\\ {-0.257}\\ {-1.990}\\ {1.958}\end{array}\right]{,}\left[\begin{array}{c}{4.713}\\ {-3.461}\\ {-2.244}\\ {3.127}\end{array}\right]{,}\left[\begin{array}{c}{4.749}\\ {-6.669}\\ {-2.444}\\ {4.309}\end{array}\right]{,}\left[\begin{array}{c}{4.839}\\ {-9.914}\\ {-2.673}\\ {5.498}\end{array}\right]\right]$ (4)