.Modelica_LinearSystems2.Math.Matrices.householderReflexion

Information

Syntax

Matrices.householderReflection(A,u);

Description

This function computes the Housholder reflection (transformation)

Ar = Q*A

with

Q = I -2*u*u'/(u'*u)

where u*u is housholder 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=householderReflexion(A,u);
 // Ar = [-6.0828,   -5.2608,   -4.4388;
 //        0.0,      -1.1508,   -2.3016;
 //        0.0,       2.0,       0.0]

See also

Matrices.housholderSimilarityTransformation

Interface

function householderReflexion
  import Modelica.Math.Vectors.length;
  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 householderReflexion;

Generated at 2024-04-28T18:16:21Z by OpenModelicaOpenModelica 1.22.3 using GenerateDoc.mos