Académique Documents
Professionnel Documents
Culture Documents
Contents
1 (2.5/5.0) Oscilador anarmnico cuntico 1
Abstract
Solamente se recibe y califica lo enviado a travs de github. Debe estar presente en el saln al realizar la prueba.
Siga las instrucciones de nombres que especifica cada ejercicio. Por defecto, para cada ejercicio cree un archivo con el
numero de ejercicio y la extensin apropiada. Por ejemplo, si en el problema 1 le piden hacer un programa, entonces
la solucin sera un archivo llamado 1.cpp . Pero si en el ejercicio 5 le piden responder o hacer un anlisis, entonces
la solucin se escribira en un archivo 5.txt . Cada archivo de respuesta debe estar incluido en el repositorio pero en
commits diferentes. Se evaluar lo enviado al repositorio remoto asignado hasta la hora de finalizacin del examen.
A menos que se indique lo contrario, ningn programa deber pedir entrada de usuario. Haga uso de lo visto hasta
ahora en el curso, adems de lo que se pide explcitamente en cada punto. Todos los cdigos que usted enve sern
chequeados con los sanitizers y con valgrind y no deben presentar errores.
H() = H0 + x4 , (1)
donde H denota el hamiltoniano y es un nmero pequeo que modela la perturbacin al hamiltoniano original H0 .
Si se desea encontrar los valores propios perturbados, se debe resolver la ecuacin H()|ni = En |ni. En la repre-
sentacin matricial, se obtiene que
1
H0,nm = n + n,m , (2)
2
1 1
xnm = m + 1 n,m+1 + m n,m1 , (3)
2 2
Hnm () = H0,nm + (x4 )nm , (4)
1
5.0000000000000000e-01 5.5000000000000004e-01
2.5000000000000000e-01 5.9470546427531512e-01
1.2500000000000000e-01 6.0248643158149484e-01
.. ..
. .
9.7656250000000000e-04 6.0240516362982810e-01
Guarde el programa en el archivo 1.cpp .
Use como plantilla el cdigo que sigue:
#include <iostream>
#include <cmath>
#include <algorithm>
#include <eigen3/Eigen/Dense>
#include <eigen3/Eigen/EigenValues>
return 0;
}
double eigen_energy(Eigen::MatrixXd & H, Eigen::MatrixXd & X, const double lambda, const int index)
{
// Implemente aca el calculo de los valores propios, usando la libreria eigen
// - Calculo de Hlambda :
2
// - Extraer los valores propios al vector Eigen::VectorXd evals, solamente
// la parte real (cuando pida los valores propios escriba .eigenvalues.real()) :
Como puede ver, este programa tambin le es til para calcular la energa de estados exitados cuando el ndice es diferente
a cero.
#include <iostream>
#include <cmath>
#include <eigen3/Eigen/Dense>
3
int main(int argc, char **argv)
{
std::cout.precision(16);
std::cout.setf(std::ios::scientific);