.Modelica.Math.Matrices.Utilities.householderReflection

Information

Syntax

Matrices.householderReflection(A,u);

Description

This function computes the Householder reflection (transformation)

Ar = Q*A
with
Q = I -2*u*u'/(u'*u)

where u is Householder vector, i.e., the normal vector of the reflection plane.

Householder reflection is widely used in numerical linear algebra, e.g., to perform QR decompositions.

Example

// First step of QR decomposition
  import   Modelica.Math.Vectors.Utilities;

  Real A[3,3] = [1,2,3;
                 3,4,5;
                 2,1,4];
  Real Ar[3,3];
  Real u[:];

  u=Utilities.householderVector(A[:,1],{1,0,0});
  // u= {0.763, 0.646, 0}

  Ar=householderReflection(A,u);
 // Ar = [-6.0828,   -5.2608,   -4.4388;
 //        0.0,      -1.1508,   -2.3016;
 //        0.0,       2.0,       0.0]

See also

Matrices.Utilities.housholderSimilarityTransformation,
Vectors.Utilities.householderReflection,
Vectors.Utilities.householderVector

Interface

function householderReflection
  extends Modelica.Icons.Function;
  import Modelica.Math.Vectors;
  input Real A[:, :] "Rectangular matrix";
  input Real u[size(A, 1)] "Householder vector";
  output Real RA[size(A, 1), size(A, 2)] "Reflexion of A";
end householderReflection;

Revisions


Generated at 2020-06-05T07:38:22Z by OpenModelica 1.16.0~dev-420-gc007a39