Minimizacion de energia de 12 particulas, utilizando el potencial lennard – Jonnes, mediante gradiante conjugado y recocido simulado Abraham Alonzo Velazquez Facutad de ciencias, Universidad Autonoma de Baja California
Resumen
El potencial leonnard – Jones se utilizo para predicir la energia potencial entr en tre e las las molec molecul ulas, as, dada dada un una a conf confgur gurac acio ion, n, en este este trab trabaj ajo o se util utiliz izo o gradiante conjugando y recocido simulado para minimizar la energia de una confgu confgurac racion ion inicia iniciall dada, dada, obteni obteniend endo o buenos buenos resul resultad tados os para gradian gradiante te conjugado y muy malos para la implementacion de recocido simulado. I.
Introduccion
En 1!" John #ennard – Jones propuso una e$presion para calcular la energia potencial que e$iste entre dos moleculas%
( ( )= 4 ε
U r
(( ) ( ) ) σ r
12
−
σ r
6
&1'
(al (al que epsilon es la pro)undidad del poso de potencial y sigma usualmente se utilizan igual 1 y r representa la distancia que hay entre las dos particulas. En este trabajo se utiliza sigma y epsilon iguales a 1, asi como en otros articulos.
Figura 1.- *rafca de la energia +ersus radio ra dio del potencial #ennard – Jones
omo se muestra en la fgura 1 se obser+a que el potencial tiene dos minimos, cuando r esta entre - " anstrongs y en el infnito, por lo que el problema central radica en que dada una confguracion inicial como se muestra la fgura !, para un conjunto / de particulas, utilizando el potencial #Jennard Jones', como es posible encontrar a partir de esa confguracion otra, la o las confguracion en que la energia es minima, lo cual es un problema de optimizacion.
Figura 2.- 0istribucion aleatoria de puntos
n metodo utilizado ampliamente dada una confguracion, es el encontrar la confguracion tal que la )uerza entre las particulas es minima, esto es, cuando el gradiante negati+o de la )uncion potencial cuando es igual a 2, con respecto a la posicion.
=ma=−∇ U ( r ) =24 ε
F
(
1 r
6
−
2 r
12
)
1 r
1
(2 )
El algoritmo consiste en dar una confguracion inicial, y dado un tama3o de paso lambda, ir a+anzando las posiciones de los puntos con)orme la pendiente de la )uncion&gradiante conjugado' hasta que es cero, donde es el minimo. En este trabajo se utilizo un lambda igual 2.2224. (ambien se utilizo el algoritmo de recocido simulado, el cual se encuentra en el apendice 5.
II.
Resultados
6e hicieron prubas para / 7 11, con la posicion inicial que se encuentra en 89:, y se obtu+ieron grafcas de energia +s numero de iteraciones.
Figura 3.- ;esultados del minimo de 11 particulas de la base de datos de ambrigde utilizando 6imulated annealing
Figura .- ;esultados del minimo de 11 particulas de la base de datos de ambrigde utilizando *radiante conjugado
Figura .- ;esultados del minimo de 11 particulas generadas aleatoriamente utilizando recocido simulado
Figura !.- ;esultados del minimo de 11 particulas generadas aleatoriamente utilizando *radiante conjugado
6e utilizo el mismo +ector inicial para los resultados de la fgura ",4.
III.
"onclusiones y o#ser$aciones
Aunque el gradiante conjugado no asegura encontrar un optimo global, obtiene muy buenos resultados en los ambos casos. El recocido simulado implementado, )ue muy malo en comparacion con el gradiante conjugado, ademas presentaba inestabilidad, con respecto a las posiciones iniciales. En particular, era con
En el )uturo se pretende adecuar correctamente simulated annealing, y utilizar una cantidad mayor de particulas, y se pretende adecuarse para ser utilizado en algo de dinamica molecular.
I%.
Re&erencias
81: http%==en.>i?ipedia.org=>i?i=#ennardJones@potential 8!: http%==ljc.group.cam.ac.u?= 8-: http%==en.>i?ipedia.org=>i?i=onjugate@gradient@method 8": ;obert . #eary. Global Optima of Lennard – Jones Clusters. Journal de Global Optimiation, !!,"#$#" %!&&'( 84: http%==es.>i?ipedia.org=>i?i=(eorema@de@la@energB-BA0a@cin B-BAtica 89: http%==doye.chem.o$.ac.u?=jon=structures=#J=tables.142.html
%.
'pendice I
odigo de ;ecocido simulado function
solucionInicial = perturbacion(solucionInicial,n) indice = []; indice(1) = randi(n,1); indice(2) = randi(3,1);
solucionInicial(indice(1),indice(2)) = solucionInicial(indice(1),indice(2)) + 0.0000000001*(1+2*rand);
!ini"ini#acion de $ner%ia "ediante recocido si"ulado con el potencial lennard &ones clear;clc;close all; e = 1; si%"a = 1; cero asidun =
'profundidad del poso de potencial ' distancia en la ue el potencial entre particulas es
(r) *e*((( si%"ar )-( 12 )) ((si%"ar)-()));
'/onde r es la distancia entre las particulas
'Iniciacion ener%ia = []; ener%ia2 = []; = 11; ' es el nu"ero de particulas c = 1; 'decreci"iento de la te"peratura
'solucionInicial = a * rand (,3); 'confi%uracion inicial de las particulas solucionInicial =[ 1.020131 0.21021 0.04101 0.123043 0.2110 1.0224120 0.224112 0.303 0.4404 0.42423 0.2042330 0.02133 0.134220 1.04344 0.0410 0.0113300 0.00000 0.440442 0.02013 0.0004203 0.4331404 0.4203 0.214421 0.412 0.4020002 0.2003 0.2143014 0.1 0.4140 0.0111 0.21231 0.0423031 0.04243]; te"peratura = 1000; '5e"peratura inicial p1 = solucionInicial; ' su"a(ener%ia) de interacciones ener%ia = 0; for i = 16 1 for 7 = i+16 r = ( (solucionInicial(i,1) solucionInicial(7,1) )-(2) + (solucionInicial(i,2) solucionInicial(7,2) )-(2) + ... (solucionInicial(i,3) solucionInicial(7,3) )-(2) )-(12); ener%ia = ener%ia + asidun(r); end end ener%ia(1) = ener%ia ener%ia(2) = 0; s = solucionInicial; 'co"ien#o de si"ulated annealin% for # = 1620000 s8ri"a = perturbacion(s,);
'e9aluacion de el ener%ia for i = 16 1 for 7 = i+16
r =
( (s(i,1) s(7,1) )-(2) + (s(i,2) s(7,2) )-(2) + ... (s(i,3) s(7,3) )-(2) )-(12); ener%ia(1) = ener%ia(1) + asidun(r);
end end for i = 16 1 for 7 = i+16 r = ( (s8ri"a(i,1) s8ri"a(7,1) )-(2) + (s8ri"a(i,2) s8ri"a(7,2) )-(2) + ... (s8ri"a(i,3) s8ri"a(7,3 ) )-(2) )-(12); ener%ia(2) = ener%ia(2) + asidun(r); end end
delta$ = ener%ia(2) ener%ia(1);
if delta$ := 0 s = s8ri"a; ener%ia2 = [ener%ia2 ener%ia(2)]; else if rand : (ep( delta$te"peratura)) s = s8ri"a; ener%ia2 = [ener%ia2 ener%ia(2)]; end end if # <= 20000 ener%ia = []; ener%ia(162) = 0; end te"peratura = te"peratura c; end plot(16100,ener%ia2(16100), .r) s ener%ia
Algoritmo de gradiante conjugado ' !ini"o 8otencial de >eonard&ones function [?,pot] = !8>&(); arre%lo = []; n=100; no"bre=11@a".tt; la"bda=0.000; puntos=leeAarcBi9o(no"bre);
'
%rad=Crad>&(puntos); for i=16n puntos2=puntosla"bda*%rad; puntos=puntos2; %rad=Crad>&(puntos); arre%lo(i) = 8ot>&(puntos); end ?=puntos; pot=8ot>&(puntos); i"pri"eAarcBi9o(?); plot(16n,arre%lo,.r)
' !ini"o 8otencial de >eonard&ones ' $ste pro%ra"a calcula el 9ector %radiente de >& ' recibe la "atri# de puntos function [sol] = Crad>&(puntos) 'nu"eroAdeApuntos,puntos) ' 8unto es 9ector para puntos en D-3 ' nor"a es la distancia euclidiana al cuadrado ' E?>I/?6 un arre%lo con los 9ectores %radiente de >& 'n=nu"eroAdeApuntos; [n,"]=si#e(puntos); for i=16n pCrads(i,163)=[0.0, 0.0, 0.0]; end for i=16n1 i8=puntos(i,6); iC=pCrads(i,6); for F=n616i+1 F8=puntos(F,6); iC=pCrads(i,6); FC=pCrads(F,6); d=(i8(1)F8(1)); dG=(i8(2)F8(2)); d#=(i8(3)F8(3)); d2=d-2+dG-2+d#-2; riF=(1.0d2)-3; f1=( 2.0*riF-2+riF)d2; %=d*f1; %G=dG*f1; %#=d#*f1; itC=iC(1)+%; itCG=iC(2)+%G; itC#=iC(3)+%#; FtC=FC(1)%; FtCG=FC(2)%G; FtC#=FC(3)%#; pCrads(i,6)=[itC,itCG,itC#]; pCrads(F,6)=[FtC,FtCG,FtC#]; end end for i=16n iC=pCrads(i,6); itC=2.0*iC(1); itCG=2.0*iC(2); itC#=2.0*iC(3);
pCrads(i,6)=[itC,itCG,itC#]; end sol=pCrads;
' 8otencial de >eonard&ones function [sol] = 8ot>&(puntos) ' 8unto es un arre%lo de puntos en D-3 ' d2 es la distancia euclidiana al cuadrado ' E?>I/?6 el potencial de >&(sol) [n,"]=si#e(puntos); pot=0.0; for i=16n1 i8=puntos(i,6); for F=i+16n F8=puntos(F,6); d2=(i8(1)F8(1))-2+(i8(2)F8(2))-2+(i8(3)F8(3))-2; riF=(1.0d2)-3; pot=pot+riF-2riF; end end sol=.0e0*pot;
' !ini"o 8otencial de >eonard&ones function [infor"acion] = leeAarcBi9o(no"bre) fid = fopen(no"bre); infor"acion = fscanf(fid, '% '% '%,[3 inf]); infor"acion = infor"acion; fclose(fid)