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 138 139 140 141 142 143 144 145 146 147
|
<!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: Real Generalized Symmetric-Definite Eigensystems</title>
<meta name="description" content="GNU Scientific Library – Reference Manual: Real Generalized Symmetric-Definite Eigensystems">
<meta name="keywords" content="GNU Scientific Library – Reference Manual: Real Generalized Symmetric-Definite Eigensystems">
<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="Eigensystems.html#Eigensystems" rel="up" title="Eigensystems">
<link href="Complex-Generalized-Hermitian_002dDefinite-Eigensystems.html#Complex-Generalized-Hermitian_002dDefinite-Eigensystems" rel="next" title="Complex Generalized Hermitian-Definite Eigensystems">
<link href="Real-Nonsymmetric-Matrices.html#Real-Nonsymmetric-Matrices" rel="previous" title="Real Nonsymmetric Matrices">
<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="Real-Generalized-Symmetric_002dDefinite-Eigensystems"></a>
<div class="header">
<p>
Next: <a href="Complex-Generalized-Hermitian_002dDefinite-Eigensystems.html#Complex-Generalized-Hermitian_002dDefinite-Eigensystems" accesskey="n" rel="next">Complex Generalized Hermitian-Definite Eigensystems</a>, Previous: <a href="Real-Nonsymmetric-Matrices.html#Real-Nonsymmetric-Matrices" accesskey="p" rel="previous">Real Nonsymmetric Matrices</a>, Up: <a href="Eigensystems.html#Eigensystems" accesskey="u" rel="up">Eigensystems</a> [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Real-Generalized-Symmetric_002dDefinite-Eigensystems-1"></a>
<h3 class="section">15.4 Real Generalized Symmetric-Definite Eigensystems</h3>
<a name="index-generalized-symmetric-eigensystems"></a>
<p>The real generalized symmetric-definite eigenvalue problem is to find
eigenvalues <em>\lambda</em> and eigenvectors <em>x</em> such that
</p><div class="example">
<pre class="example">A x = \lambda B x
</pre></div>
<p>where <em>A</em> and <em>B</em> are symmetric matrices, and <em>B</em> is
positive-definite. This problem reduces to the standard symmetric
eigenvalue problem by applying the Cholesky decomposition to <em>B</em>:
</p><div class="example">
<pre class="example"> A x = \lambda B x
A x = \lambda L L^t x
( L^{-1} A L^{-t} ) L^t x = \lambda L^t x
</pre></div>
<p>Therefore, the problem becomes <em>C y = \lambda y</em> where
<em>C = L^{-1} A L^{-t}</em>
is symmetric, and <em>y = L^t x</em>. The standard
symmetric eigensolver can be applied to the matrix <em>C</em>.
The resulting eigenvectors are backtransformed to find the
vectors of the original problem. The eigenvalues and eigenvectors
of the generalized symmetric-definite eigenproblem are always real.
</p>
<dl>
<dt><a name="index-gsl_005feigen_005fgensymm_005falloc"></a>Function: <em>gsl_eigen_gensymm_workspace *</em> <strong>gsl_eigen_gensymm_alloc</strong> <em>(const size_t <var>n</var>)</em></dt>
<dd><a name="index-gsl_005feigen_005fgensymm_005fworkspace"></a>
<p>This function allocates a workspace for computing eigenvalues of
<var>n</var>-by-<var>n</var> real generalized symmetric-definite eigensystems. The
size of the workspace is <em>O(2n)</em>.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005feigen_005fgensymm_005ffree"></a>Function: <em>void</em> <strong>gsl_eigen_gensymm_free</strong> <em>(gsl_eigen_gensymm_workspace * <var>w</var>)</em></dt>
<dd><p>This function frees the memory associated with the workspace <var>w</var>.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005feigen_005fgensymm"></a>Function: <em>int</em> <strong>gsl_eigen_gensymm</strong> <em>(gsl_matrix * <var>A</var>, gsl_matrix * <var>B</var>, gsl_vector * <var>eval</var>, gsl_eigen_gensymm_workspace * <var>w</var>)</em></dt>
<dd><p>This function computes the eigenvalues of the real generalized
symmetric-definite matrix pair (<var>A</var>, <var>B</var>), and stores them
in <var>eval</var>, using the method outlined above. On output, <var>B</var>
contains its Cholesky decomposition and <var>A</var> is destroyed.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005feigen_005fgensymmv_005falloc"></a>Function: <em>gsl_eigen_gensymmv_workspace *</em> <strong>gsl_eigen_gensymmv_alloc</strong> <em>(const size_t <var>n</var>)</em></dt>
<dd><a name="index-gsl_005feigen_005fgensymmv_005fworkspace"></a>
<p>This function allocates a workspace for computing eigenvalues and
eigenvectors of <var>n</var>-by-<var>n</var> real generalized symmetric-definite
eigensystems. The size of the workspace is <em>O(4n)</em>.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005feigen_005fgensymmv_005ffree"></a>Function: <em>void</em> <strong>gsl_eigen_gensymmv_free</strong> <em>(gsl_eigen_gensymmv_workspace * <var>w</var>)</em></dt>
<dd><p>This function frees the memory associated with the workspace <var>w</var>.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005feigen_005fgensymmv"></a>Function: <em>int</em> <strong>gsl_eigen_gensymmv</strong> <em>(gsl_matrix * <var>A</var>, gsl_matrix * <var>B</var>, gsl_vector * <var>eval</var>, gsl_matrix * <var>evec</var>, gsl_eigen_gensymmv_workspace * <var>w</var>)</em></dt>
<dd><p>This function computes the eigenvalues and eigenvectors of the real
generalized symmetric-definite matrix pair (<var>A</var>, <var>B</var>), and
stores them in <var>eval</var> and <var>evec</var> respectively. The computed
eigenvectors are normalized to have unit magnitude. On output,
<var>B</var> contains its Cholesky decomposition and <var>A</var> is destroyed.
</p></dd></dl>
<hr>
<div class="header">
<p>
Next: <a href="Complex-Generalized-Hermitian_002dDefinite-Eigensystems.html#Complex-Generalized-Hermitian_002dDefinite-Eigensystems" accesskey="n" rel="next">Complex Generalized Hermitian-Definite Eigensystems</a>, Previous: <a href="Real-Nonsymmetric-Matrices.html#Real-Nonsymmetric-Matrices" accesskey="p" rel="previous">Real Nonsymmetric Matrices</a>, Up: <a href="Eigensystems.html#Eigensystems" accesskey="u" rel="up">Eigensystems</a> [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|