1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 The GSL Team.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Free Software
Needs Free Documentation", the Front-Cover text being "A GNU Manual",
and with the Back-Cover Text being (a) (see below). A copy of the
license is included in the section entitled "GNU Free Documentation
License".
(a) The Back-Cover Text is: "You have the freedom to copy and modify this
GNU Manual." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Scientific Library – Reference Manual: Householder Transformations</title>
<meta name="description" content="GNU Scientific Library – Reference Manual: Householder Transformations">
<meta name="keywords" content="GNU Scientific Library – Reference Manual: Householder Transformations">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Function-Index.html#Function-Index" rel="index" title="Function Index">
<link href="Linear-Algebra.html#Linear-Algebra" rel="up" title="Linear Algebra">
<link href="Householder-solver-for-linear-systems.html#Householder-solver-for-linear-systems" rel="next" title="Householder solver for linear systems">
<link href="Givens-Rotations.html#Givens-Rotations" rel="previous" title="Givens Rotations">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Householder-Transformations"></a>
<div class="header">
<p>
Next: <a href="Householder-solver-for-linear-systems.html#Householder-solver-for-linear-systems" accesskey="n" rel="next">Householder solver for linear systems</a>, Previous: <a href="Givens-Rotations.html#Givens-Rotations" accesskey="p" rel="previous">Givens Rotations</a>, Up: <a href="Linear-Algebra.html#Linear-Algebra" accesskey="u" rel="up">Linear Algebra</a> [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Householder-Transformations-1"></a>
<h3 class="section">14.15 Householder Transformations</h3>
<a name="index-Householder-matrix"></a>
<a name="index-Householder-transformation"></a>
<a name="index-transformation_002c-Householder"></a>
<p>A Householder transformation is a rank-1 modification of the identity
matrix which can be used to zero out selected elements of a vector. A
Householder matrix <em>P</em> takes the form,
</p>
<div class="example">
<pre class="example">P = I - \tau v v^T
</pre></div>
<p>where <em>v</em> is a vector (called the <em>Householder vector</em>) and
<em>\tau = 2/(v^T v)</em>. The functions described in this section use the
rank-1 structure of the Householder matrix to create and apply
Householder transformations efficiently.
</p>
<dl>
<dt><a name="index-gsl_005flinalg_005fhouseholder_005ftransform"></a>Function: <em>double</em> <strong>gsl_linalg_householder_transform</strong> <em>(gsl_vector * <var>w</var>)</em></dt>
<dt><a name="index-gsl_005flinalg_005fcomplex_005fhouseholder_005ftransform"></a>Function: <em>gsl_complex</em> <strong>gsl_linalg_complex_householder_transform</strong> <em>(gsl_vector_complex * <var>w</var>)</em></dt>
<dd><p>This function prepares a Householder transformation <em>P = I - \tau v
v^T</em> which can be used to zero all the elements of the input vector <var>w</var>
except the first. On output the Householder vector <var>v</var> is stored in
<var>w</var> and the scalar <em>\tau</em> is returned. The householder vector
<var>v</var> is normalized so that <var>v</var>[0] = 1, however this 1 is not
stored in the output vector. Instead, <var>w</var>[0] is set to
the first element of the transformed vector, so that if
<em>u = P w</em>, <var>w</var>[0] = <em>u</em>[0] on output and the remainder
of <em>u</em> is zero.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005flinalg_005fhouseholder_005fhm"></a>Function: <em>int</em> <strong>gsl_linalg_householder_hm</strong> <em>(double <var>tau</var>, const gsl_vector * <var>v</var>, gsl_matrix * <var>A</var>)</em></dt>
<dt><a name="index-gsl_005flinalg_005fcomplex_005fhouseholder_005fhm"></a>Function: <em>int</em> <strong>gsl_linalg_complex_householder_hm</strong> <em>(gsl_complex <var>tau</var>, const gsl_vector_complex * <var>v</var>, gsl_matrix_complex * <var>A</var>)</em></dt>
<dd><p>This function applies the Householder matrix <em>P</em> defined by the
scalar <var>tau</var> and the vector <var>v</var> to the left-hand side of the
matrix <var>A</var>. On output the result <em>P A</em> is stored in <var>A</var>.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005flinalg_005fhouseholder_005fmh"></a>Function: <em>int</em> <strong>gsl_linalg_householder_mh</strong> <em>(double <var>tau</var>, const gsl_vector * <var>v</var>, gsl_matrix * <var>A</var>)</em></dt>
<dt><a name="index-gsl_005flinalg_005fcomplex_005fhouseholder_005fmh"></a>Function: <em>int</em> <strong>gsl_linalg_complex_householder_mh</strong> <em>(gsl_complex <var>tau</var>, const gsl_vector_complex * <var>v</var>, gsl_matrix_complex * <var>A</var>)</em></dt>
<dd><p>This function applies the Householder matrix <em>P</em> defined by the
scalar <var>tau</var> and the vector <var>v</var> to the right-hand side of the
matrix <var>A</var>. On output the result <em>A P</em> is stored in <var>A</var>.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005flinalg_005fhouseholder_005fhv"></a>Function: <em>int</em> <strong>gsl_linalg_householder_hv</strong> <em>(double <var>tau</var>, const gsl_vector * <var>v</var>, gsl_vector * <var>w</var>)</em></dt>
<dt><a name="index-gsl_005flinalg_005fcomplex_005fhouseholder_005fhv"></a>Function: <em>int</em> <strong>gsl_linalg_complex_householder_hv</strong> <em>(gsl_complex <var>tau</var>, const gsl_vector_complex * <var>v</var>, gsl_vector_complex * <var>w</var>)</em></dt>
<dd><p>This function applies the Householder transformation <em>P</em> defined by
the scalar <var>tau</var> and the vector <var>v</var> to the vector <var>w</var>. On
output the result <em>P w</em> is stored in <var>w</var>.
</p></dd></dl>
<hr>
<div class="header">
<p>
Next: <a href="Householder-solver-for-linear-systems.html#Householder-solver-for-linear-systems" accesskey="n" rel="next">Householder solver for linear systems</a>, Previous: <a href="Givens-Rotations.html#Givens-Rotations" accesskey="p" rel="previous">Givens Rotations</a>, Up: <a href="Linear-Algebra.html#Linear-Algebra" accesskey="u" rel="up">Linear Algebra</a> [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|