diff options
author | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2021-11-08 23:05:15 +0100 |
---|---|---|
committer | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2021-11-08 23:05:15 +0100 |
commit | 6b42ce01cd289567a6109d831fe86a0667d18f37 (patch) | |
tree | 22a48f0136b060769bd475642cce0d0c1219a9d6 /langevin.cpp | |
parent | 897df7986e9cafcfa0c5f60a424d5a452dceca07 (diff) | |
download | code-6b42ce01cd289567a6109d831fe86a0667d18f37.tar.gz code-6b42ce01cd289567a6109d831fe86a0667d18f37.tar.bz2 code-6b42ce01cd289567a6109d831fe86a0667d18f37.zip |
Working minimization.
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); |