101 lines
5.1 KiB
HTML
101 lines
5.1 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
"http://www.w3.org/TR/REC-html40/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<title>Description of generalized_cholesky</title>
|
|
<meta name="keywords" content="generalized_cholesky">
|
|
<meta name="description" content="proc gmchol(A);">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<meta name="generator" content="m2html © 2003 Guillaume Flandin">
|
|
<meta name="robots" content="index, follow">
|
|
<link type="text/css" rel="stylesheet" href="../m2html.css">
|
|
</head>
|
|
<body>
|
|
<a name="_top"></a>
|
|
<div><a href="../index.html">Home</a> > <a href="index.html">.</a> > generalized_cholesky.m</div>
|
|
|
|
<!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png"> Master index</a></td>
|
|
<td align="right"><a href="index.html">Index for . <img alt=">" border="0" src="../right.png"></a></td></tr></table>-->
|
|
|
|
<h1>generalized_cholesky
|
|
</h1>
|
|
|
|
<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
|
<div class="box"><strong>proc gmchol(A);</strong></div>
|
|
|
|
<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
|
<div class="box"><strong>function AA = generalized_cholesky(A); </strong></div>
|
|
|
|
<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
|
<div class="fragment"><pre class="comment"> proc gmchol(A);
|
|
/* calculates the Gill-Murray generalized choleski decomposition */
|
|
/* input matrix A must be non-singular and symmetric */
|
|
/* Author: Jeff Gill. Part of the Hessian Project. */
|
|
local i,j,k,n,sum,R,theta_j,norm_A,phi_j,delta,xi_j,gamm,E,beta_j;</pre></div>
|
|
|
|
<!-- crossreference -->
|
|
<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
|
This function calls:
|
|
<ul style="list-style-image:url(../matlabicon.gif)">
|
|
<li><a href="rows.html" class="code" title="function nr=rows(x)">rows</a> </li></ul>
|
|
This function is called by:
|
|
<ul style="list-style-image:url(../matlabicon.gif)">
|
|
<li><a href="dynare_estimation.html" class="code" title="function dynare_estimation(var_list_)">dynare_estimation</a> </li></ul>
|
|
<!-- crossreference -->
|
|
|
|
|
|
<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
|
<div class="fragment"><pre>0001 <span class="comment">% proc gmchol(A);</span>
|
|
0002 <span class="comment">% /* calculates the Gill-Murray generalized choleski decomposition */</span>
|
|
0003 <span class="comment">% /* input matrix A must be non-singular and symmetric */</span>
|
|
0004 <span class="comment">% /* Author: Jeff Gill. Part of the Hessian Project. */</span>
|
|
0005 <span class="comment">% local i,j,k,n,sum,R,theta_j,norm_A,phi_j,delta,xi_j,gamm,E,beta_j;</span>
|
|
0006
|
|
0007 <a name="_sub0" href="#_subfunctions" class="code">function AA = generalized_cholesky(A);</a>
|
|
0008
|
|
0009 n = <a href="rows.html" class="code" title="function nr=rows(x)">rows</a>(A);
|
|
0010 R = eye(n);
|
|
0011 E = zeros(n,n);
|
|
0012 norm_A = max(transpose(sum(abs(A))));
|
|
0013 gamm = max(abs(diag(A)));
|
|
0014 delta = max([eps*norm_A;eps]);
|
|
0015
|
|
0016 <span class="keyword">for</span> j = 1:n;
|
|
0017 theta_j = 0;
|
|
0018 <span class="keyword">for</span> i=1:n;
|
|
0019 somme = 0;
|
|
0020 <span class="keyword">for</span> k=1:i-1;
|
|
0021 somme = somme + R(k,i)*R(k,j);
|
|
0022 <span class="keyword">end</span>;
|
|
0023 R(i,j) = (A(i,j) - somme)/R(i,i);
|
|
0024 <span class="keyword">if</span> (A(i,j) -somme) > theta_j;
|
|
0025 theta_j = A(i,j) - somme;
|
|
0026 <span class="keyword">end</span>;
|
|
0027 <span class="keyword">if</span> i > j;
|
|
0028 R(i,j) = 0;
|
|
0029 <span class="keyword">end</span>;
|
|
0030 <span class="keyword">end</span>;
|
|
0031 somme = 0;
|
|
0032 <span class="keyword">for</span> k=1:j-1;
|
|
0033 somme = somme + R(k,j)^2;
|
|
0034 <span class="keyword">end</span>;
|
|
0035 phi_j = A(j,j) - somme;
|
|
0036 <span class="keyword">if</span> j+1 <= n;
|
|
0037 xi_j = max(abs(A((j+1):n,j)));
|
|
0038 <span class="keyword">else</span>;
|
|
0039 xi_j = abs(A(n,j));
|
|
0040 <span class="keyword">end</span>;
|
|
0041 beta_j = sqrt(max([gamm ; (xi_j/n) ; eps]));
|
|
0042 <span class="keyword">if</span> all(delta >= [abs(phi_j);((theta_j^2)/(beta_j^2))]);
|
|
0043 E(j,j) = delta - phi_j;
|
|
0044 <span class="keyword">elseif</span> all(abs(phi_j) >= [((delta^2)/(beta_j^2));delta]);
|
|
0045 E(j,j) = abs(phi_j) - phi_j;
|
|
0046 <span class="keyword">elseif</span> all(((theta_j^2)/(beta_j^2)) >= [delta;abs(phi_j)]);
|
|
0047 E(j,j) = ((theta_j^2)/(beta_j^2)) - phi_j;
|
|
0048 <span class="keyword">end</span>;
|
|
0049 R(j,j) = sqrt(A(j,j) - somme + E(j,j));
|
|
0050 <span class="keyword">end</span>;
|
|
0051 AA = transpose(R)*R;</pre></div>
|
|
<hr><address>Generated on Fri 16-Jun-2006 09:09:06 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> © 2003</address>
|
|
</body>
|
|
</html> |