Procedimiento numérico
Código del procedimiento numérico que calcula los niveles de energía, y proporciona los coeficientes de las funciones de onda en cada intervalo normalizados. Las clases son las mismas que para el sólido lineal solamente cambia la función que define el potencial V.
public class Solido extends Raices {
double x[]; //puntos de discontinuidad de la función potencial
double V[]; //función potencial
Complejo q[];
CVector2 Coef[]; //coeficientes para la función de onda
Matriz M; //matriz para el cálculo del determinante
int nNivel; //número de niveles totales
Niveles nivel[];
double Vmin; //mínimo del potencial
public Solido(int N, double a, double b) {
super(N, a, b);
Vmin=0;
V=new double[N+2];
M=new Matriz(2*N+2, 2*N+2);
//para la función de onda
q=new Complejo[N+2];
for(int j=0; j<N+2; j++){
q[j]=new Complejo();
}
Coef=new CVector2[N+2];
for(int j=0; j<N+2; j++){
Coef[j]=new CVector2();
}
//niveles de energía
nNivel=0;
nivel=new Niveles[MAXNIVELES];
for(int j=0; j<MAXNIVELES; j++){
nivel[j]=new Niveles();
}
//sólido regular
x=new double[N+3];
x[0]=0;
//número de barreras par, número de pozos impar
x[1]=a/2;
for(int j=2;j<N+2; j+=2){
x[j]=x[j-1]+b;
x[j+1]=x[j]+a;
}
for(int j=0; j<N+1; j+=2){
V[j]=0;
if(j==N) break;
V[j+1]=H;
}
V[N+1]=H;
//el 2 se puede cambiar significa hasta que la función
|
