title: PCA: Find covariance matrix's eigenvalues: solving a polynomial of degree N
body: <p>If I understand correctly, PCA's principle is very simple:</p>
  
  <ol>
  <li>Calculate data vectors' covariance matrix <strong>C</strong>.</li>
  <li>Solve det(<strong>C</strong> - <strong>e***I) = 0, to find matrix **C</strong>'s eigenvalues <strong>e</strong>.</li>
  <li>Calculate matrix <strong>C</strong>'s eigenvectors (from those eigenvalues).</li>
  </ol>
  
  <p><strong>FIRST:</strong> Is this description correct?</p>
  
  <p><strong>SECOND:</strong> Any algorithm for machine-solving of the polynomial equation det(<strong>C</strong> - <strong>e***I) = 0 ?
  I understand that this is a general math question (finding roots of a polynomial of degree **n</strong>).</p>
  
  <p><strong>THIRD:</strong> Are there any <strong>simple</strong> implementations of PCA in C/C++</p>
  
  <p>Thanks much.</p>