.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
Real A[3,3] = [1,2,3;
               3,4,5;
               2,1,4];
Real Ar[3,3];
Real u[:];

u = Modelica_LinearSystems2.Math.Vectors.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

householderSimilarityTransformation

Interface

function householderReflexion
  extends Modelica.Icons.Function;
  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-11-23T19:25:52Z by OpenModelicaOpenModelica 1.24.2 using GenerateDoc.mos