Student[NumericalAnalysis][IterativeApproximate] - numerically approximate the solution to a linear system
|
Calling Sequence
|
|
IterativeApproximate(A, b, opts)
IterativeApproximate(A, opts)
|
|
Parameters
|
|
A
|
-
|
Matrix; a square matrix or an augmented (A|b) matrix, where
|
b
|
-
|
(optional) Vector; a vector of length
|
opts
|
-
|
equations of the form keyword=value, where keyword is one of distanceplotoptions, initialapprox, maxiterations, method, output, plotoptions, showsteps, stoppingcriterion, tolerance; the options for numerically approximating the solution to
|
|
|
|
|
Description
|
|
•
|
The IterativeApproximate command numerically approximates the solution to the linear system A.x=b, using one of these iterative methods: Gauss-Seidel, Jacobi, and successive over-relaxation.
|
•
|
It is possible to return both the approximation and the error at each iteration with this command; see the output and stoppingcriterion options under the Options section for more details.
|
•
|
It is also possible to view a column graph of the distances (errors) at each step, showing whether convergence is achieved.
|
•
|
When A and b are 3-dimensional, it is possible to obtain a plot tracing the path of the approximation sequence.
|
•
|
The entries of A and b must be expressions that can be evaluated to floating-point numbers.
|
|
|
Options
|
|
•
|
distanceplotoptions = [list]
|
|
The plot options for the column graph of distances when output=plotdistance.
|
|
Initial approximation vector with which to begin the iteration; this vector must be numeric. This is a required keyword parameter.
|
|
The maximum number of iterations to perform while approximating the solution to A.x=b. If the maximum number of iterations is reached and the solution is not within the specified tolerance, a plot of distances can still be returned. This is a required keyword parameter.
|
•
|
method = gaussseidel, jacobi, SOR(numeric)
|
|
The method to be used when approximating the solution to A.x=b. See the Notes section below for some of the sufficient conditions for convergence.
|
–
|
gaussseidel = Gauss-Seidel method
|
–
|
SOR(numeric) = successive over-relaxation (SOR) method
|
|
Note that the SOR method is specified by the symbol SOR followed by the relaxation factor in parentheses. The relaxation factor must be strictly between 0 and 2; otherwise, the generated sequence will diverge. For the purpose of demonstrating this divergence, however, values of the relaxation factor outside this range are still accepted by this procedure.
|
|
By default, method=gaussseidel.
|
•
|
output = solution, approximates, distances, plotdistance, plotsolution, or list
|
|
The return value of the function. The default is solution. For more than one output, specify a list of the output in the order desired.
|
–
|
output=solution returns the final approximation of x.
|
–
|
output=approximates returns the approximation at each iteration in a list.
|
–
|
output=distances returns the error at each iteration in a list.
|
–
|
output=plotdistance returns a column graph of the errors at each iteration.
|
–
|
output=plotsolution returns a 3-D plot of the path of the approximations of x. This output is only available when A and b are 3-dimensional.
|
|
The plot options for the 3-D plot when output=plotsolution.
|
•
|
showsteps = true or false
|
|
Whether to print helpful messages in the interface as the IterativeApproximate command executes.
|
•
|
stoppingcriterion = function
|
|
The stopping criterion for the approximation of x in the form stoppingcriterion=distance(norm), where distance is either relative or absolute and norm is one of: posint, infinity (), or Euclidean. By default, stoppingcriterion=relative(infinity).
|
|
The stopping criterion for the approximation of x in the form stoppingcriterion=distance(norm), where distance is either relative or absolute and norm is one of: posint, infinity, or Euclidean. By default, stoppingcriterion=relative(infinity).
|
|
The tolerance of the approximation. The tolerance must be provided.
|
|
|
Notes
|
|
•
|
The initialapprox, tolerance and maxiterations are all required keyword parameters; they must be given when the IterativeApproximate command is used.
|
•
|
If A is positive definite or strictly diagonally dominant, then A is invertible, and so the system A.x = b has a unique solution. Use IsMatrixShape to check if a matrix has one of these properties.
|
•
|
If the matrix A is strictly diagonally dominant, both the Jacobi and Gauss-Seidel methods produce a sequence of approximation vectors converging to the solution, for any initial approximation vector.
|
•
|
If A is positive definite, the Gauss-Seidel method produces a sequence converging to the solution, for any initial approximation vector; the same holds for the successive over-relaxation method, provided that the relaxation factor w is strictly between 0 and 2.
|
•
|
In general, if A gives rise to an iteration matrix T such that the spectral radius of T is strictly less than 1, the resulting sequence is guaranteed to converge to a solution, for any initial approximation vector.
|
•
|
This procedure operates numerically; that is, if the inputs are not already numeric, they are first evaluated to floating-point quantities before computations proceed. The outputs will be numeric as well. Note that exact rationals are considered numeric and are preserved whenever possible throughout the computation; therefore, one must specify floating-point inputs instead of exact rationals to obtain floating-point outputs.
|
|
|
Examples
|
|
>
|
|
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
| (3) |
>
|
|
| (4) |
The linear system may be input as an augmented matrix
>
|
|
| (5) |
>
|
|
| (6) |
|
|