Changeset 4664 for trunk/help/gsasII.html
- Timestamp:
- Nov 29, 2020 8:41:57 PM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/help/gsasII.html
r4659 r4664 3677 3677 3678 3678 <p class=MsoNormal style='margin-left:.5in'><span style='mso-fareast-font-family: 3679 "Times New Roman"'>This window provides the main controls for the refinement 3680 calculations in GSAS-II. Two of the main refinement tools are the <span 3681 class=SpellE>fortran</span> MINPACK <span class=SpellE>lmdif</span> and <span 3682 class=SpellE>lmder</span> algorithms wrapped in python as provided in the <span 3683 class=SpellE>Scipy</span> package and a third one is a python version utilizing 3684 only the <span class=SpellE>numpy</span> package. The purpose is to </span>minimize 3679 "Times New Roman"'>This window provides the main controls and a few 3680 global parameters for GSAS-II. 3681 3682 <h5 style='margin-left:.5in'><span 3683 style='mso-fareast-font-family:"Times New Roman"'> 3684 What can I do here?</span></h5> 3685 <p style='margin-left:0.75in'>On this page, there are three or four sets of 3686 controls. The first is for how refinements operate. 3687 </p> 3688 <A name="RefineType"></A> 3689 <DL style='margin-left:1.0in'> 3690 <DT><B>Refinement type</B></DT> 3691 <DD>This determines how refinements are performed. The choices 3692 are:</DD> 3693 <UL style='margin-left:0.25in'> 3694 <LI><U>analytic Hessian</U>: This is the default option and is usually 3695 the most useful. It uses as custom-developed least-squares 3696 minimizer that uses singular-value decomposition (SVD) to reduce the 3697 errors caused by correlated variables and the 3698 Levenberg-Marquardt algorithm to down-weight the off-diagonal 3699 Hessian terms when refinements fail to lower χ<sup>2</sup>. 3700 <LI><u>analytic Jacobian</u>: This uses a numpy-provided <I>leastsq</I> 3701 minimizer, which not applicable for larger 3702 problems as it requires 3703 much more memory than the Hessian routines. This because it 3704 creates a Jacobian matrix is shaped N x M (N parameters x M 3705 observations) and uses that to create the N x N Hessian. The 3706 "Hessian" minimizers create the Hessian matrix directly. 3707 <LI><u>numeric</u>: This also uses the numpy <I>leastsq</I> 3708 minimizer, and is also not applicable for larger 3709 problems. Unlike, the "analytic Jacobian", numerical derivates 3710 are computed for derivatives rather than analytical derivatives 3711 that are coded directly into GSAS-II. This will be slower than 3712 the analytical derivatives and will converge more slowly. It is 3713 typically used for code development to check the accuracy of the 3714 analytical derivative formulations. 3715 <LI><u>Hessian SVD</u>: This is very similar to <U>analytic 3716 Hessian</U> but does not include the Levenberg-Marquardt 3717 algorithm. It can be faster, but is more prone to 3718 diverge when severe correlation is present. 3719 </UL> 3720 <p style='margin-left:0.25in'> 3721 Note that the Jacobian refinement tools are the Fortran 3722 MINPACK <I>lmdif</I > and <I>lmder</I> algorithms wrapped in python as 3723 provided in the <span class=SpellE>Scipy</span> package. The 3724 Hessian routines are were developed for GSAS-II based on routines in 3725 numpy and scipy and using the material in Numerical Recipes (Press, Flannery, <span class=SpellE>Teulosky</span> 3726 & <span class=SpellE>Vetterling</span>) for the <span 3727 class=SpellE>Levenberg</span>-Marquardt. 3728 The purpose is to </span>minimize 3685 3729 the sum of the squares of M<span style='mso-fareast-font-family:"Times New Roman"'> 3686 3730 nonlinear functions in N variables by a modification of the <span class=SpellE>Levenberg</span>-Marquardt … … 3688 3732 routines were written by </span>Burton S. <span class=SpellE>Garbow</span>, 3689 3733 Kenneth E. <span class=SpellE>Hillstrom</span>, Jorge J. More (Argonne National 3690 Laboratory, 1980). The python/numpy version was developed by us based on the 3691 material in Numerical Recipes (Press, Flannery, <span class=SpellE>Teulosky</span> 3692 & <span class=SpellE>Vetterling</span>) for the <span class=SpellE>Levenberg</span>-Marquardt 3693 algorithm and is the default.<span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></p> 3694 3695 <h5 style='margin-left:.5in'><span 3696 style='mso-fareast-font-family:"Times New Roman"'> 3697 What can I do here?</span></h5> 3698 3699 <p class=MsoListParagraphCxSpFirst style='margin-left:1.0in;mso-add-space:auto; 3700 text-indent:-.25in;mso-list:l22 level1 lfo9'><![if !supportLists]><span 3701 style='mso-fareast-font-family:"Times New Roman"'><span style='mso-list:Ignore'>1.<span 3702 style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span 3703 style='mso-fareast-font-family:"Times New Roman"'>Select whether the refinement 3704 uses ‘analytic Jacobian’, ‘analytic Hessian’ or ‘numeric’ derivatives. The last 3705 is slower and perhaps a bit less accurate, but may be needed if the analytic 3706 functions are not fully developed. The Jacobian matrix is shaped N x M 3707 (parameters x observations) and is much larger than the Hessian matrix which is 3708 shaped M x M (parameters x parameters). Generally use ‘analytic Hessian’ for 3709 routine work.<o:p></o:p></span></p> 3710 3711 <p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;mso-add-space: 3712 auto;text-indent:-.25in;mso-list:l22 level1 lfo9'><![if !supportLists]><span 3713 style='mso-fareast-font-family:"Times New Roman"'><span style='mso-list:Ignore'>2.<span 3714 style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span 3715 style='mso-fareast-font-family:"Times New Roman"'>Select ‘Min delta-M/M’ for 3716 convergence; the refinement will stop when the change in the minimization 3717 function is less than this value. Set Min delta-M/M = 1.0 to force just a 3718 single cycle to be performed. A value less than 10<sup>-4</sup> (the default) 3719 generally gives no better result. The allowed range is 10<sup>-9</sup> to 1.0.<o:p></o:p></span></p> 3720 3721 <p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;mso-add-space: 3722 auto;text-indent:-.25in;mso-list:l22 level1 lfo9'><![if !supportLists]><span 3723 style='mso-fareast-font-family:"Times New Roman"'><span style='mso-list:Ignore'>3.<span 3724 style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span 3725 style='mso-fareast-font-family:"Times New Roman"'>If ‘analytic Jacobean’ is 3726 chosen then select ‘Initial shift factor’ for the first cycle of refinement. 3727 This value is modified by the least squares routine. The allowed range is 10<sup>-5</sup> 3728 to 100. Smaller values may be needed if your initial refinement trials 3729 immediately diverge, however make sure your starting parameter values are 3730 ‘reasonable’. The selected default (=1.0) normally gives good performance.<o:p></o:p></span></p> 3731 3732 <p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;mso-add-space: 3733 auto;text-indent:-.25in;mso-list:l22 level1 lfo9'><![if !supportLists]><span 3734 style='mso-fareast-font-family:"Times New Roman"'><span style='mso-list:Ignore'>4.<span 3735 style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span 3736 style='mso-fareast-font-family:"Times New Roman"'>If ‘analytic Hessian’ is 3737 chosen then select ‘Max cycles’, the maximum number of least squares cycles to 3738 be performed. Least squares cycles are determined by the number of times a new 3739 Hessian matrix is computes; the <span class=SpellE>Levenberg</span>-Marquardt 3740 algorithm may compute the function several times between cycles as it finds the 3741 optimal value of the Marquardt coefficient. Choices are given in the pull down 3742 selection; the default is 3 cycles.<o:p></o:p></span></p> 3743 3744 <p class=MsoListParagraphCxSpLast style='margin-left:1.0in;mso-add-space:auto; 3745 text-indent:-.25in;mso-list:l22 level1 lfo9'><![if !supportLists]><span 3746 style='mso-fareast-font-family:"Times New Roman"'><span style='mso-list:Ignore'>5.<span 3747 style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span 3748 style='mso-fareast-font-family:"Times New Roman"'>Select data for sequential 3749 refinement; the data sets may be done in ‘reverse order’. <o:p></o:p></span></p> 3734 Laboratory, 1980). 3735 </p> 3736 <DT><B>Min delta-M/M</B></DT> 3737 <DD>This determines when convergence is recognized; 3738 the refinement will stop when the change in the minimization 3739 function is less than this value. Set Min delta-M/M = 1.0 to force just a 3740 single cycle to be performed. The default is 0.001. A value less than 3741 10<sup>-4</sup> causes the refinement to cycle with no meaningful 3742 improvement since shifts become a small fraction of the 3743 parameter's uncertainties. Set Min delta-M/M = 1.0 to force 3744 refinement to stop after a single refinement. 3745 The allowed range is 10<sup>-9</sup> to 1.0. 3746 </DD> 3747 <DT><B>Max cycles</B></DT> 3748 <DD>This determines the maximum number of refinement cycles that 3749 will be performed. This is only available with the "Hessian" minimizers.</DD> 3750 <DT><B>Initial lambda</B></DT> 3751 <DD>Note that here λ is the Marquardt coefficient, which when large 3752 down-weights the significance of the off-diagonal terms in the 3753 Hessian. Thus, when λ is large, the refinement is effectively one of 3754 steepest-descents, where correlation between variables is 3755 ignored. Note that steepest-descents minimization is typically 3756 slow and may not always find the local minimum. 3757 This is only available with the "analytical Hessian" minimizer. 3758 </DD> 3759 <DT><B>SVD zero tolerance</B></DT> 3760 <DD>This determines the level where SVD considers values to be the 3761 same. Default is 10<sup>-6</sup>. Make larger to where problems occur due to correlation. This is only available with the "Hessian" minimizers. 3762 </DD> 3763 <DT><B>Initial shift factor</B></DT> 3764 <DD>? 3765 </DD> 3766 </DL> 3767 <A name="SingleXtlSettings"></A> 3768 <p style='margin-left:0.75in'>A set of controls is provided for 3769 control of single-crystal refinements. 3770 These only appear when single crystal (HKLF) histograms are present 3771 in the project. 3772 </p> 3773 <DL style='margin-left:1.0in'> 3774 <DT><B>Refine HKLF as F^2?</B></DT> 3775 <DD>When checked, refinements are against F<sup>2</sup> rather than 3776 |F|. 3777 </DD> 3778 <DT><B>Min obs/sig</B></DT> 3779 <DD>? 3780 </DD> 3781 <DT><B>Min extinct.</B></DT> 3782 <DD>? 3783 </DD> 3784 <DT><B>Max delt-F/sig</B></DT> 3785 <DD>? 3786 </DD> 3787 <DT><B>Max d-spacing</B></DT> 3788 <DD>Reflections with d-space values larger than this value are ignored. 3789 </DD> 3790 <DT><B>Min d-spacing</B></DT> 3791 <DD>Reflections with d-space values smaller than this value are ignored. 3792 </DD> 3793 3794 </DL> 3795 3796 <A name="SequentialSettings"></A> 3797 <p style='margin-left:0.75in'>A set of controls is for 3798 sequential refinement. Settings here determine if "normal" or "sequential" 3799 refinement is performed. If no datasets are selected, then all "used" 3800 histograms are included in one combined refinement. However, if any 3801 number histogram are selected used here, then a 3802 sequential refinement is performed, where a fit is made to each 3803 histogram in turn. Only the first item below is shown in "normal" mode. 3804 </p> 3805 <DL style='margin-left:1.0in'> 3806 <DT><B>Select datasets/Reselect Datasets</B></DT> 3807 <DD>This brings up a menu where histograms can be selected, which 3808 potentially switches between a normal and a sequential refinement. 3809 If one or more histograms are selected, a sequential 3810 refinement is used. If none are selected, then the refinement be 3811 set as "normal". The button is labeled "Select" when in normal refinement 3812 mode and "Reselect" in sequential refinement mode. 3813 </DD> 3814 <DT><B>Reverse order?</B></DT> 3815 <DD>Normally, in a sequential histograms are fit in the order they 3816 are in the data tree (which can be reordered by dragging tree 3817 items), 3818 but when this option is selected, the sequential fit is performed 3819 with the last tree entry first. 3820 </DD> 3821 <DT><B>Copy results to next histogram?</B></DT> 3822 <DD>When this option is selected, the fitted parameters from each 3823 refinement are copied to the next histogram, so that the starting 3824 point for each refinement will be the results from fitting the 3825 previous. This works well for parametric experiments where 3826 parameters such as the lattice parameters change gradually over 3827 the course of successive measurements. 3828 This option is usually used only for the initial refinement after 3829 a sequential fit is started and the setting is reset once that 3830 refinement is completed. For subsequent refinements, it is usually 3831 better to start with the results from the previous fit. 3832 </DD> 3833 <DT><B>Clear previous seq. results</B></DT> 3834 <DD>When this button is pressed, the "Sequential Results" entry 3835 with the results from the last sequential fit is deleted from the 3836 tree. 3837 </DD> 3838 </DL> 3750 3839 3751 3840 <h4 style='margin-left:0.25in'><a … … 7443 7532 <hr size=2 width="100%" align=center> 7444 7533 7445 <!-- hhmts start -->Last modified: S at Nov 21 12:25:40CST 2020 <!-- hhmts end -->7534 <!-- hhmts start -->Last modified: Sun Nov 29 20:05:28 CST 2020 <!-- hhmts end --> 7446 7535 7447 7536 </div>
Note: See TracChangeset
for help on using the changeset viewer.