计算材料物理第一章分子动力学2能量优化的两个基本问题如何确定势能函数的形式?力场(经典力学)已知势能函数形式后如何找到极小值和全局极小值?能量最小化(数值方法)CVOTABUUUUUUU能量最小化方法函数的极小值和导数最速下降法共轭梯度法牛顿拉森法准牛顿拉森法收敛标准的判断单变量函数f(x)极小值条件函数的极小值0,0xfxf多变量函数f(x1,x2,…,xn)极小值条件函数的极小值n1,2,...,i,0,022iixfxf函数的极小值举例:的极值222),(yxyxf一元函数的导数求函数导数的数值方法导数的定义xxfxxfxfx0lim一元函数的导数举例:函数在处的导数解析方法数值方法更精确的方法1523xxxf10x062.101.029894.101.0101.01lim0ffxxfxxfxfx102.00094.29894.101.0201.0101.012lim0ffxxxfxxfxfx15612100xxxxf多元函数的导数梯度算符定义梯度矢量所指方向是函数变化(增加)最快的方向对于多元函数fzkfyjfxizyxfzkyjxi,,fxxfxxfxxxxxfnnn221121,...,,多元函数的导数22,yxyxf多元函数的导数多元函数的导数将函数f(x)以泰勒级数展开考虑多元函数其中为一向量02000021xfxxxfxxxfxf00000021xxxfxxxfxxxfxfTnxxxx,,,2100210,,,xfxfxfxfxfn多元函数的导数其中此二次微分矩阵称为Hessian矩阵022221222222122122122120nnnnnxfxxfxxfxxfxfxxfxxfxxfxfxf最速下降法梯度所指方向是函数增大最快的方向负梯度所指方向是函数减小最快的方向最速下降法最速下降法(steepestdescentsmethod)考虑函数选择起始点x0=(9,9)222),(yxyxf5295921599)2,1(51)36,18(243001000000vxxggvxfgxf最速下降法λx1f(x1)1(8.53,8.11)204.572(8.11,7.21)169.733(7.66,6.32)138.494(7.21,5.42)110.855(6.76,4.53)86.7546(6.32,3.63)66.367(5.87,2.79)49.518(5.42,1.85)36.259(4.98,0.95)26.5910(4.53,0.06)20.5311(4.08,-0.83)18.0611.2(4.00,-1.00)18.0012(3.64,-1.73)19.19001vxx最速下降法沿着起始点x0处的负梯度方向,找到极小值点作为x1;然后以x1点作为新的起始点,沿着x1点处的负梯度方向,找到另一极值点作为x2点;重复上述步骤,直至找到函数的极小值点。最速下降法中每一步所得到的梯度满足关系即k+1点的梯度与k点的梯度方向垂直在前面的例子中01kkgg0)4,8()36,18(011100ggxfgxfg最速下降法最速下降法最速下降法共轭梯度法共轭梯度法(conjugategradientmethod)1111kkkkkkkkkkvgggggvvxx牛顿-拉森(Newton-Raphson)法一元多次函数U(x)对xk点的泰勒展开式为上式微分可得到考虑极小值点x*处函数的一次微分为零则有kkkkkxUxxxUxxxUxU221kkkxUxxxUxU0xUkkkkkkxUxUxxxUxxxUxU0牛顿-拉森法类似地,对于多元函数有其中为Hessian矩阵的逆矩阵考虑函数其Hessian矩阵为上述矩阵的逆矩阵为kkkxUxUxx11kxU222),(yxyxf4002),(222222yfxyfyxfxfyxf410021),(1yxf牛顿-拉森法选择起始点x0=(9,9)则极小值点为3618429999000xxyxyxffxU003618410021990100xUxUxx://en.wikipedia.org/wiki/Newton's_method_in_optimization牛顿-拉森法一维情况下高维情况下改进形式变通求解0,1,n,xfxfxxnnn1n0,1,n,)(xxn1nnnxfxHf10,1,n,)(xxn1nnnxfxHf1nnxfxHfP1)(nnnxfPxHfn)(牛顿-拉森法ThegeometricinterpretationofNewton'smethodisthatateachiterationoneapproximatesf(x)byaquadraticfunctionaroundxn,andthentakesasteptowardsthemaximum/minimumofthatquadraticfunction(inhigherdimensions,thismayalsobeasaddlepoint).Notethatiff(x)happenstobeaquadraticfunction,thentheexactextremumisfoundinonestep.(green)andNewton'smethod(red)forminimizingafunction(withsmallstepsizesQuadratic:二次准牛顿-拉森法牛顿-拉森法中,直接计算Hessian矩阵及其逆矩阵非常耗时;准牛顿拉森法利用迭代方法得到Hessian矩阵的逆矩阵;具体是在开始优化后,每步更新一次Hessian矩阵;每次更新Hessian矩阵的逆矩阵时使用上一步的Hessian矩阵的逆矩阵以及上一步和当前步的梯度得到?~~1kkkkkHgHxxDavidon-Fletcher-Powell(DFP)kkkkgHxx~1张量积:克罗内克积:外积:(BFGS)kkkkgHxx1://en.wikipedia.org/wiki/L-BFGS准牛顿-拉森法Thefirstquasi-NewtonalgorithmwasproposedbyW.C.Davidon,aphysicistworkingatArgonneNationalLaboratory.Hedevelopedthefirstquasi-Newtonalgorithmin1959:theDFPupdatingformula,whichwaslaterpopularizedbyFletcherandPowellin1963,butisrarelyusedtoday.Themostcommonquasi-NewtonalgorithmsarecurrentlytheSR1formula(forsymmetricrankone),theBHHHmethod,thewidespreadBFGSmethod(suggestedindependentlybyBroyden,Fletcher,Goldfarb,andShanno,in1970),anditslow-memoryextension,L-BFGS.TheBroyden'sclassisalinearcombinationoftheDFPandBFGSmethods.收敛标准何时停止迭代计算,认为已经找到极小值点?(1)能量差值,设置一个小的能量值ε当第n次计算和第n-1次计算的能量差满足条件则认为已经找到极小值点,停止计算(2)原子坐标移动的幅度nnUUU1212nnxxx势能面和分子结构分子势能是分子中各原子坐标的函数(势能面),分子力学通过力场的方式,使得势能表达为具体的函数形式;求出势能函数的一次导数和二次导数,可以使用迭代方法寻找出势能面的极小值,从而找到对应的优化结构;由于迭代方法的特点,上述优化过程依赖于所选取的起始结构,找出的优化结构是该初始结构附近区域的极小值结构,而不一定是全局的最小值结构。极大值和极小值全局最小和局域极小势能面上的特殊点鞍点(saddlepoint)鞍点势能函数一次导数为零并不一定对应能量极小值,也有可能是极大值或者鞍点,可通过Hessian矩阵的本征值进一步判断;设分子由N个原子组成,可计算其Hessian矩阵FF矩阵沿对角线对称矩阵对角化可得到矩阵本征值jiijjiijFqqUqqUF22DTFFCCNdddDFFFF311000000鞍点当势能在某一点的一次导数为零时,可通过Hessian矩阵的本征值进一步判断;如果是极小值,则本征值中的6个为零,其它为正数;此6个本征值对应分子的移动和转动共6个自由度;如果是极大值,