diff options
Diffstat (limited to 'langevin.cpp')
-rw-r--r-- | langevin.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/langevin.cpp b/langevin.cpp index a775774..1181173 100644 --- a/langevin.cpp +++ b/langevin.cpp @@ -146,8 +146,13 @@ int main(int argc, char* argv[]) { Vector<Real> zMin = randomMinimum(ReJ, Red, r, ε); auto [Hr, dHr, ddHr] = hamGradHess(ReJ, zMin); - Eigen::EigenSolver<Matrix<Real>> eigenS(ddHr - ((ddHr * zMin) * zMin.transpose()) / (Real)zMin.size()); + Eigen::EigenSolver<Matrix<Real>> eigenS(ddHr - (dHr * zMin.transpose() + zMin.dot(dHr) * Matrix<Real>::Identity(zMin.size(), zMin.size()) + (ddHr * zMin) * zMin.transpose()) / (Real)zMin.size() + 2.0 * zMin * zMin.transpose()); std::cout << eigenS.eigenvalues().transpose() << std::endl; + for (unsigned i = 0; i < N; i++) { + Vector<Real> zNew = normalize(zMin + 0.01 * eigenS.eigenvectors().col(i).real()); + std::cout << getHamiltonian(ReJ, zNew) - Hr << " " << real(eigenS.eigenvectors().col(i).dot(zMin)) << std::endl; + } + std::cout << std::endl; getchar(); complex_normal_distribution<Real> d(0, 1, 0); |