public class GenMinResEx6 extends Object implements GenMinRes.Preconditioner
Solves the Poisson equation using the second Householder implementation and preconditioning.
The coefficient matrix in this example corresponds to the five-point discretization of the 2-d Poisson equation with the Dirichlet boundary condition. Assuming the natural ordering of the unknowns, and moving all boundary terms to the right hand side, we obtain a block tridiagonal matrix. (Consider the tridiagonal matrix \(T\) which has the value 4.0 down the main diagonal and -1.0 along the upper and lower co-diagonals. Then the coefficient matrix is the block tridiagonal matrix consisting of \(T\)'s down the main diagonal and \(-I\), the identity matrix, along the upper and lower co-diagonals.)Discretizing on a 20 x 20 grid implies that the coefficient matrix is 400 x 400. In the solution, the second Householder implementation is selected and we choose to update the residual vector by direct evaluation.
Preconditioning is used with the preconditioning matrix being a diagonal
matrix with 4.0 down the main diagonal and -1.0 along the upper and lower
co-diagonals. This preconditioner
method solves this tridiagonal
matrix.
Constructor and Description |
---|
GenMinResEx6(int n) |
Modifier and Type | Method and Description |
---|---|
void |
amultp(double[] p,
double[] z)
Obtains the multiplication of the matrix
a and the input
p . |
static void |
main(String[] args) |
void |
preconditioner(double[] r,
double[] z)
Solve the tridiagonal preconditioning matrix problem for z.
|
public void amultp(double[] p, double[] z)
a
and the input
p
. The result is returned in z
.amultp
in interface GenMinRes.Function
p
- a double
array with
p.length
=a[0].length
z
- a double
arraypublic void preconditioner(double[] r, double[] z)
preconditioner
in interface GenMinRes.Preconditioner
r
- an input double
array of length n
generated during the implementation of the solve
method.z
- an output double
array of length n
.Copyright © 2020 Rogue Wave Software. All rights reserved.