3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-25 05:43:40 +01:00

doc: det_manip, link towards the cookbook added, explanations added

This commit is contained in:
Laura Messio 2013-08-01 14:13:21 +02:00 committed by Olivier Parcollet
parent a39e41e9fd
commit 196e3f9663
5 changed files with 71 additions and 10 deletions

View File

@ -18,4 +18,3 @@ C++
det_manip/contents
parameters/parameters
utilities/contents

View File

@ -0,0 +1,55 @@
.. highlight:: c
How does it work ?
###################
Cofactors
==========
For any :math:`n\times n` matrix :math:`A`:
.. math:: A\,{\rm Cof}(A^T) = {\rm Det}A\, I_n.
where :math:`\rm{Cof}` means the matrix of the cofactors.
.. math:: {\rm Cof}(A)_{i,j}
=(-1)^{i+j}{\rm Det}\begin{pmatrix}
a_{1,1} & \dots & a_{1,j-1} & a_{1,j+1} & \dots & a_{1,n} \\
\vdots & & \vdots & \vdots & & \vdots \\
a_{i-1,1} & \dots & a_{i-1,j-1} & a_{i-1,j+1}& \dots & a_{i-1,n} \\
a_{i+1,1} & \dots & a_{i+1,j-1} & a_{i+1,j+1}& \dots & a_{i+1,n} \\
\vdots & & \vdots & \vdots & & \vdots \\
a_{n,1} & \dots & a_{n,j-1} & a_{n,j+1} & \dots & a_{n,n} \end{pmatrix}.
Change in the determinant when one adds a line and a column
============================================================
:math:`A` is an inversible :math:`n\times n` matrix. :math:`A'` is a :math:`(n+1)\times (n+1)` matrix obtained by adding a line and a column to :math:`A`:
.. math:: A'=\begin{pmatrix}
A & B \\
C & D \end{pmatrix}.
Using the previous formula with the cofactors, we get
.. math:: \frac{{\rm Det}A'}{{\rm Det}A}=C A^{-1} B+D.
Change in the inverse when one adds a line and a column
==========================================================
Using the following variables:
.. math:: \xi=D-C A^{-1} B, \qquad B'=A^{-1}B, \qquad C'=CA^{-1},
We get the inverse of the new matrix as:
.. math:: (A')^{-1}=
\begin{pmatrix}
A^{-1}+\xi B'C' & -\xi B'\\
-\xi C' & \xi
\end{pmatrix}

View File

@ -1,4 +1,4 @@
.. highlight:: c
.. _det_manip:
Manipulations of determinants
=============================
@ -7,11 +7,10 @@ Manipulations of determinants
This library is stable, but documentation is still a bit spartan ...
The purpose of this little class is to regroup standard block manipulations on determinant, used in several
QMC.
The purpose of this little class is to regroup standard block manipulations on determinant, used in several algorithms.
Given a function :math:`F(x,y)`, and two sets of values :math:`x_i,y_i \ 0\leq i < N`,
we can define the square :math:`N\times N` matrix
we can define the :math:`N\times N` square matrix
.. math::
@ -21,7 +20,7 @@ When adding/removing a line and column (i.e. a value of x, y),
:math:`M^{-1}` and :math:`det M` can be fast updated using standard block matrix computations.
This class implements these general operations. It contains :
* Data :
* Datas :
* :math:`M^{-1}` and :math:`det M`
* a vector containing :math:`x_i,y_i \ 0\leq i \leq N`
@ -38,4 +37,5 @@ This class implements these general operations. It contains :
:maxdepth: 2
det_manip
cookbook
behind
cookbook/contents

View File

@ -1,6 +1,3 @@
Cookbook
========
Basics
------
@ -66,5 +63,6 @@ Here, an exemple of creation of a class det_manip, of use of insert and remove.
Learn more in the full reference, see :ref:`det_manip`

View File

@ -0,0 +1,9 @@
.. highlight:: c
Det_manip cookbook
===================
.. toctree::
:maxdepth: 2
basic