科学网

 找回密码
  注册

tag 标签: 最优化方法

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

杂说两种常用的研究方法
热度 5 fdc1947 2019-3-15 11:18
杂说两种常用的研究方法 在研究工作中,预测数量往往是一桩最常见而最重要的的任务,几乎没有一项研究工作不与数字打交道的。这在自然科学领域内好像是没有什么疑问的,对于人文学科领域也有很多情况下涉及数字。我前几天写了一篇文章,讨论文献记载的孔子在鲁国的俸禄 “粟六万”如今应该折合多少人民币,也是一个预测数字的事情。在这样的研究工作中,总需要运用一些科学方法,本文就随便说一说两种常用的方法。 我们测量某一个数字,最简单的方法无疑是直接测量。我要知道前面一张书桌的长度,拿一把尺直接量度一下就可以了。但是,很多情况下,直接测量是困难的,那就只有用间接的办法,或者说是测量或研究两个或多个量的相对值。 比如,人们要知道太阳中的化学组分。我们不能到太阳上面去,更无法取一些太阳物质到地球上来,怎么能够知道太阳的化学组分?我们靠光谱分析。大家都知道,太阳光照射在棱镜上就会分成从红色到紫色的彩虹般的光带。从红色到紫色的各种光,就是频率不同的电磁波。所有的这种电磁波组成了所谓的光谱。在可见光的频率范围内,有可见光谱。最早被仔细研究的就是可见光谱。 化学物质总会不断的发出或吸收电磁辐射,每一种原子会发出或吸收某些特定频率的电磁波,这些特定频率的电磁波对于每一种原子就像指纹或 DNA对于我们每一个人一样,称为这种原子的特征频率。当高温物体发出的由各种波长组成的光,透过温度较低的气体时,气体中的原子会吸收掉它的特征频率的那些电磁波,使得光谱中出现一条条暗线,这些暗线就可以用来指证组成这个气体中有哪些原子。 太阳的中间部分在进行热核反应,温度非常高。所谓太阳光,就来自这种热核反应产生的高温辐射。当这种光经过相对温度较低的太阳表面时,表面的气体也会吸收它们的特征频率的光线。所以,我们收到的太阳光谱中就有一条条的暗线(称吸收线)。我们对太阳光谱的吸收线进行分析,就能够找到太阳中存在哪些原子的踪迹。但是,仅仅对这样的特定频率的分析,只能得到存在多少种原子的信息,但是还不能知道这些元素的多少。好得我们还知道,某一种原子越多,它吸收掉的这些特征频率的光线就越多。所以,从吸收线的明暗程度,又可以知道各种原子的相对数量。虽然我们不知道他们的绝对数量,但是可以知道各种原子数量的相对比例。 正是根据这些吸收线的明暗程度,即谱线的强度,人们得到了太阳中各种原子多少的相对比例。例如,我们知道了氢原子谱线与氦原子谱线的强度比,可以知道,氢原子与氦原子的数量比约为 12:1(由氢的原子量为1而氦的原子量为4,得到质量比为3:1)。同样得到,氢原子与氧原子的数量比为约1500:1(质量比约97:1),氢原子与碳原子的数量比为3000:1(质量比约257:1),与其余元素的数量比和质量比都可以用同样方式知道。 因此,我们就可以用这种间接的方法计算出太阳质量中约有四分之三是氢元素,近四分之一是氦元素,而其余四十多种元素加起来不到百分之二。太阳中各种元素的绝对质量值也就知道了。 我们在分析孔子俸禄的数量时,由于不知道 “粟六万”的量度单位,所以无法知道其价值到底有多少。但是,我们也用了一个办法,就是知道了孔子俸禄与“管家薪水”之间的相对大小,即孔子俸禄是管家薪水的近百倍。知道了这样的相对值,也是很有用处的。为进一步研究其绝对价值提供了基础。 实际上,一切测量一开始都是从相对测量开始的。最简单的例子,量度长短,一开始都是与人的身体来比较,与手指、手臂或脚、步跨的长度比较。以后,把手指、手臂或脚、步跨的长度 “标准化”了,规定了寸、尺或foot(英尺)、yard(码)的标准长度,于是原来相对的测量便得到了似乎绝对的数据。在这中间,寸、尺、foot、yard等单位长度的确定就是一项重要的工作。这就是确定基准。基准确定了,就可以用已定的标准来度量未知的量了。 在孔子俸禄的例子中,如果我们知道了管家薪水的价值,那么孔子俸禄的价值也就知道了。但是,问题就是不知道管家薪水的价值,但是,我们可以估计出管家薪水的最低值。因为管家要拿薪水去养家糊口,他的薪水一定不会低于能够使家人生存下来的价值,这就是一个社会的最低劳动力价格。低于最低劳动力价格的薪水是无法维持社会的稳定存在的。而管家薪水还要适当地高一些,这样,我们从管家薪水的一个较低的估计值,就能够得到孔子俸禄的较低的估计值。我们得到孔子俸禄应当相当于如今百万人民币这个数量级的估计,正是一种从最小值出发的方法。 在科学研究中,从一个物理量的最小值或者最大值出发,对这个物理量进行估计也是一种常用的方法。 例如,在通常情况下,稳定存在的化学物质总是处在它的电子基态的最稳定构型。如水分子由一个氧原子和两个氢原子构成,通常情况下,它处于基态。它的能量随着水分子的构型(即氧原子与氢原子之间的距离以及氢氧氢原子之间的夹角)不同而变化。一般而言,如果我们知道了一个化学反应的反应物和产物的能量随它们体系构型的变化,我们就能够充分地了解这个化学反应的详细过程了(包括反应的速度、能量效应等)。 用量子力学方法可以建立分子体系的薛定谔方程,解出这个方程,就可以得到分子体系的波函数和能量,从而得到这个体系随着组成体系的原子位置变化的所有规律,也就是这个化学反应的全部规律(所谓化学反应实际上就是组成体系的原子位置的变化)。这个方法可以代替我们做很多化学实验研究,也就是说,很多化学实验可以用计算来代替,这将会有很大的经济和环境效益。但是,很遗憾,一般分子体系的薛定谔方程是复杂的,到现在为止以及在可以预见到的将来是无法严格解出的,也就是无法严格得到体系分子的波函数和能量值(这里 “严格解出”的意思就是像中学解二元一次方程组那样用数学推导的方式解出)。 但是,我们知道分子的能量是波函数决定的,只有严格正确的分子波函数才能够得到分子的能量。如果我们用一个近似的波函数,求得到能量值一定比它的真实的基态能量值高。根据这个原理,如果我们用带有一些变数的波函数代入薛定谔方程,求解得到的能量当然也在随这些变数而变化。而由此求得的能量最小值,一定仍然比真实的基态能量高。换句话说,我们用带有变数的波函数求得的能量最小值,是真实基态能量值的上限。 这种方法在数学上说是一种变分法,在量子力学中,用变分法可以估计出真实基态能量的上限。 也就是说,用变分法求得的能量值越低,就越是接近于真值,实际上我们就用这个值作为真实基态能量的近似值。这个方法构成了用量子力学方法计算分子体系的基础,换句话说,变分法是量子化学这个学科中最重要的计算方法。目前由量子化学计算得到的大量科学数据,基本上都建立在变分法的基础之上。在这些数据的支持下,现代的化学、材料学、生物学、药物学等学科的发展如虎添翼,得到了飞速的进步。 在科学研究中,应用的各种方法有许许多多,本文只是随便说了两种常用的方法,一种是间接量度,另一种是估计 它的最小值或最大值。 实际上,这些科学方法不但在研究自然科学或工程技术问题时有用,在研究人文学科领域的问题甚至我们日常生活或了解日常知识时也是很有用处的,像我在理解孔子俸禄的问题上就用到了上述方法。所以,我主张所有的人包括研究人文学科的人都应当至少是初浅地学习一点自然科学,不但要学习自然科学知识,也要学习一点科学的研究方法。
个人分类: 科教与社会|8267 次阅读|10 个评论
[转载]LM(Levenberg-Marquard)算法及其实现
mxia 2017-7-8 11:07
1. lm算法的实现 2. 莱文贝格-马夸特方法 3. 案例matlab代码 % 计算函数f的雅克比矩阵,是解析式 syms a b y x real; f=a*exp(-b*x); Jsym=jacobian(f, ) % 拟合用数据。参见《数学试验》,p190,例2 data_1= ; obs_1= ; % 2. LM算法 % 初始猜测s a0=10; b0=0.5; y_init = a0*exp(-b0*data_1); % 数据个数 Ndata=length(obs_1); % 参数维数 Nparams=2; % 迭代最大次数 n_iters=50; % LM算法的阻尼系数初值 lamda=0.01; % step1: 变量赋值 updateJ=1; a_est=a0; b_est=b0; % step2: 迭代 for it=1:n_iters if updateJ==1 % 根据当前估计值,计算雅克比矩阵 J=zeros(Ndata,Nparams); for i=1:length(data_1) J(i,:)= ; end % 根据当前参数,得到函数值 y_est = a_est*exp(-b_est*data_1); % 计算误差 d=obs_1-y_est; % 计算(拟)海塞矩阵 H=J'*J; % 若是第一次迭代,计算误差 if it==1 e=dot(d,d); end end % 根据阻尼系数lamda混合得到H矩阵 H_lm=H+(lamda*eye(Nparams,Nparams)); % J'*J+lamda*I % 计算步长dp,并根据步长计算新的可能的\参数估计值 dp=inv(H_lm)*(J'*d(:)); %deltp= ^(-1)*(J'*εk) g = J'*d(:); a_lm=a_est+dp(1); b_lm=b_est+dp(2); % 计算新的可能估计值对应的y和计算残差e y_est_lm = a_lm*exp(-b_lm*data_1); d_lm=obs_1-y_est_lm; e_lm=dot(d_lm,d_lm); % 根据误差,决定如何更新参数和阻尼系数 if e_lme lamda=lamda/10; a_est=a_lm; b_est=b_lm; e=e_lm; disp(e); updateJ=1; else updateJ=0; lamda=lamda*10; end end %显示优化的结果 a_est b_est %从图形上观察拟合程度 plot(data_1,obs_1,'*') hold on x=0.25:0.1:8; y=a_est*exp(-b_est*x); plot(x,y,'o-')
个人分类: 数学|8032 次阅读|0 个评论
高立《数值最优化方法》的一些概念
jiangqiuhua 2015-6-23 11:16
1. 梯度向量、Hesse矩阵、方向导数 梯度向量: Hesse矩阵: 方向导数: 2. 稳定点、鞍点、二次终止性 稳定点: 的点为稳定点。 鞍点:既不是极大点又不是极小点的稳定点为鞍点。 全局收敛性和局部收敛性。 二次终止性:如果一个算法对任意正定二次函数,从任意初始点出发,都可以经过有限迭代求得极小点,我们就说该算法具有二次终止性。 3. 线搜索准则 线搜索问题:在已知下降方向求最优步长称为线搜索问题。 精确线搜索。 非精确线搜索。 1)Amijo准则: , 2)Goldstein准则: 3)Wolfe准则: 4. 信赖域方法 选择 的一个领域作为信赖域用二阶函数 近似替代 ,具体算法如下: 1)求解如下问题,得到 。 (1) 2)考察 的大小,判断是否需要调整 ,重新求解问题(1)
个人分类: 统计学习|5 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-2 13:17

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部