英语原文共 56 页,剩余内容已隐藏,支付完成后下载完整资料
第1章:Minuit基本概念。
1.1 Minuit组织。
Minuit包作用于多参数Fortran函数,我们给出通用名FCN,尽管实际名称可以由用户选择。 该函数必须由用户定义和提供(或者通过中间程序,如HBOOK [2]或PAW [3]),以防Minuit在这种中间程序的控制下使用。 FCN的值通常取决于一个或多个变量参数,其含义由用户(或中间程序)定义,但其测试值由Minuit根据用户请求对FCN执行的操作确定(通常 最小化)。
以一个简单的例子,假设问题是通过一组数据点来确定多项式。 然后,用户将写入一个FCN,该FCN计算多项式和数据之间的平方; FCN的可变参数将是多项式的系数。 使用Minuit命令,用户将请求Minuit相对于参数最小化FCN,即找出给出chisquare的最低值的系数的那些值。
因此,除了要分析的功能之外,用户必须提供一组命令来指示Minuit想要什么分析。 命令可以以几种不同的形式给出:
- 作为数据文件,对应于传统的“数据卡”,用于批处理;
- 在终端执行时输入,用于交互式运行;
- 在调用程序中编码在Fortran中,这允许循环,条件执行和Fortran的所有其他可能性,但不是交互性,因为它必须在执行之前编译。 这有时被称为runningMinuitin“从模式”。 HBOOK和PAW使用Minuit inthisway。
也可以混合任何上述形式,例如使用标准命令文件开始,然后将其转换到交互式用户以进行最后的命令步骤。
1.2内部和外部参数。
FCN的每个参数由用户定义为属于以下类型之一:
自由变量:允许取任何值。
带限制的变量:允许仅在用户指定的两个限制之间变化。
固定:最初定义为变量,但现在只接受参数在固定的时刻的值,或稍后由用户分配的值。
常数:只接受用户指定的一个值。
未定义:从未由用户定义。
在FCN中的用户当然必须能够“看到”所有类型的定义的参数,因此他可以访问所谓的外部参数列表,即他定义的参数。 另一方面,内部Minuit最小化程序只想“查看”可变参数而没有限制,因此它们只能访问通过以下转换从外部列表创建的内部参数列表:
- 挤出所有不可变的参数。
- 用极限变换所有可变参数,使得变换的参数可以无限制地变化。 (Seethenextsectionfordetailsconcerningthistransformation。)成为第一个变换是非线性的,建议避免对不需要的参数设置限制。
例如,假设用户定义了以下参数:
- 参数1,常量。
- 参数3,自由变量。
- 参数10,具有限制。
- 参数11,常数。
- 参数22,自由变量。
- 所有其他未定义。
然后内部参数列表如下:
- 内部参数1 =外部参数3.
- 内部参数2 =外部参数10,适当转换。
- 内部参数3 =外部参数22。
在上面的例子中,Minuitconsider认为外部参数的数量是22(定义的最高外部参数数量),内部参数的数量是3.后面的数量作为NPAR传递给FCN。 这是确定例如参数的误差矩阵的大小的数字,因为只有可变参数具有误差。
Minuit的一个重要特性是允许参数在Minuit运行期间更改类型。 几个Minuit命令可用于使可变参数固定,反之亦然; 从可变参数施加,改变或去除限制; 甚至在运行期间的任何时间定义完全新的参数。 此外,一些Minuit例程(特别是MINOS误差分析)导致一个或多个可变参数在计算期间临时固定。 因此,外部和内部参数列表之间的对应关系通常是动态的,并且NPAR的值不一定是常数。
1.2.1带极限的参数变换。
对于带有限制的可变参数,Minuit使用以下变换:
使得内部值Pint可以取任何值,而外部值Pext可以取下限值a和上限值b之间的值。由于变换必然是非线性的,它将把一个好的线性问题转换成讨厌的非线性问题,这是为什么如果不需要应该避免限制的原因。此外,变换需要一些计算机时间,因此它减慢了计算的一点点,更重要的是,它除了在FCN值的数值计算中引入的内容之外,还在问题中引入了额外的数值不准确性。非线性和数值舍入的效应随着外部值接近一个极限(表示为到最近极限的距离除以极限之间的距离)变得更重要。因此,用户必须了解这样的事实,例如,如果他将limit(0; 1010)置于参数上,则0:0和1:0的值将不能区分大多数机器的精度。
变换也影响参数误差矩阵,当然,当有参数限制时,Minuit执行误差矩阵(和“抛物线”参数误差)的变换。 然而,用户应该意识到,变换只是一个线性近似,如果一个或多个参数非常接近极限,它不能给出有意义的结果,其中@ Pext = @ Pint? 因此,建议:
- 只有在需要时才应使用变量参数的限制,以防止参数占用非物理值。
- 当使用限值发现令人满意的最小值时,应尽可能删除限值,以便无限制地执行或重新执行误差分析。
参数限制的影响的进一步讨论可以在最后一章中找到。
1.3 Minuit策略。
在许多地方在分析用户功能时,Minuit必须决定是否“安全”,并浪费一些函数调用以便知道它在哪里,或者是“快速的”,并试图获得具有特定风险的尽可能少的调用的请求结果不能获得用户所希望的精度。为了允许用户影响这些决定,存在可以由用户通过命令SET STRategy设置的internalMinuit参数ISTRAT。在当前版本中,此参数可以采用三个整数值(0,1,2),默认值为1.值0表示Minuit应该节省函数调用;它旨在用于其中存在许多可变参数和/或该函数需要很长时间来计算和/或用户对参数误差的非常精确的值不感兴趣的情况。另一方面,值2表示Minuit被允许浪费函数调用以确保所有值是精确的;它适用于在非常短的时间内评估功能和/或必须可靠地计算参数误差的情况
1.4参数误差。
Minuit通常用于找到一组参数的“最佳”值,其中“最佳”被定义为使给定函数FCN最小化的那些值。 函数最小值的宽度,或更一般地,函数在最小值的一些邻域中的形状,给出关于最佳参数值中的不确定性的信息,通常由物理学家称为参数误差。 Minuit的一个重要特性是它提供了几种工具来分析参数误差。
1.4.1 FCN规范化和误差定义。
无论使用何种方法来计算参数误差,它们将取决于FCN的全部(乘法)归一化,意思是如果FCN的值随处乘以常数,则误差将减小因子p。 加法常数不改变参数误差,但可能意味着不同的优质信息水平。
假设用户知道他的FCN的规范化意味着什么,并且他对参数误差感兴趣,则SET ERRordef命令允许他根据一个“误差”来定义他意味着什么,即通过改变一个“误差”的参数来改变FCN值。 如果FCN是通常的单向函数(下面定义),则如果用户想要通常的一个标准偏差误差,则ERRordef应该设置为1.0(默认值)。 如果FCN是负对数似然函数,则ERRORDEF的单标准偏差值为0.5。 如果FCN是chisquare,但用户想要两个标准偏差误差,则ERRORDEF应为= 4.0等。
注意,在通常情况下,Minuit用于对某些实验数据执行计算,参数误差将与数据中的不确定性成比例,因此除非数据的测量误差已知,否则无法获得有意义的参数误差 。 在最小二乘法的通常情况下,FCN通常被定义为chisquare:
并且是各个测量中的不确定性。如果这些不确定性不是已知的,并且完全忽略计算,则f i可能仍然具有意义,但不是所得到的参数误差的定量值。 (只有不同参数相对于彼此的相对误差可能是有意义的。)
如果都被一个因子过高估计,则来自f i的结果参数误差将被相同的因子过高估计。
1.4.2误差矩阵。
Minuit处理器MIGRAD和HESSE通常产生一个误差矩阵。 该矩阵是FCN的二阶导数的矩阵的逆,如果必要,转换成外部坐标空间1,并乘以ERRORDEF的平方根。 因此,基于Minuit误差矩阵的误差考虑了所有参数相关性,但不考虑非线性。 也就是说,从单独的误差矩阵,双标准偏差误差总是正好是一标准偏差误差的两倍。
当已经计算了误差矩阵(例如通过成功执行命令MIGrad或HESse)时,由Minuit打印的参数误差是该矩阵的对角元素的平方根。 命令SHOw COVariance和SHOw CORrelations允许用户也看到off-diagonalelements。 命令SHOw EIGenvalues使Minuitto计算并打印出误差矩阵的特征值,如果矩阵是正定的,则该矩阵应该是正的(参见下面关于Migrad和正定义)。
相关性对各个参数误差的影响可以看作如下。 当参数N被固定时,Minuit反转误差矩阵,去除对应于参数N的行和列,并重新反转结果。 对其它参数的误差的影响通常将使它们更小,因为由于参数N的不确定性而导致的分量现在已经被去除。 (在给定参数与参数N不相关的极限下,当参数N固定时,其误差不会改变。)然而,该过程不可逆,因为Minuit忘记了原始误差矩阵,因此如果参数N是RELeased,则 误差矩阵被认为是未知的,必须用适当的命令重新计算。
1.4.3 MINOS误差。
MinuitprocessorMINOS可能是第一个,并且可能仍然是唯一的,通常可用的计算参数误差的程序,考虑参数相关性和非线性。 MINOS误差间隔通常是不对称的,并且计算可能是昂贵的,特别是如果存在大量自由参数并且问题是非线性的。、
MINOS只能在找到一个好的最小值之后才能操作,并且已经计算了误差矩阵,所以MINOS命令通常遵循MIGRAD命令。 给定参数的MINOS误差被定义为该参数的值的变化,该变化使F 0增加量UP,其中F 0是相对于所有其它自由参数的FCN的最小值,UP是ERRordef 值由用户指定(默认值= 1)。
用于确定参数N的正和负MINOS误差的算法包括改变参数N,每次相对于所有其他NPAR-1可变参数最小化FCN,以数值方式找出参数N的两个值,其中FCN的最小值 取值FMIN UP,其中FMIN是相对于所有NPAR参数的FCN的最小值。 为了使过程尽可能快,MINOS使用误差矩阵来预测在计算过程中必须发现的各个子最小值处的所有参数的值,并且在问题是 接近线性,MINOS的预测将几乎准确,需要非常少的迭代。 另一方面,当问题非常非线性(即FCN远离其参数的二次函数)时,这正是当需要MINOS以指示正确的参数误差时的情况。
1.4.4轮廓图
Minuit目前提供了两种非常不同的FCN轮廓定位程序。 它们将由相应的命令名称标识:CONtour和MNContour。
1.4.4.1 CONtour
此过程是为一个lineprinter或字母数字终端作为输出设备而设计的,并给出FCN的静态图片作为用户指定的两个参数的函数,也就是说,所有其他可变参数(如果有的话)被认为是暂时固定的它们的当前值。首先,默认地选择在两个参数中的每一个的当前最佳值的任一侧上的两个当前标准偏差的范围,并且选择网格尺寸n,默认为每个参数的整个范围的25乘25个位置。轮廓零被定义为当前最佳函数值Fmin(可能是最小值),然后轮廓定义为FCN具有值Fmin *UP。然后该过程简单地在个网格位置(其做出个评估)中的每一个的四个角处评估FCN以确定第个轮廓是否通过它。该方法虽然不是非常有效或精确,但是非常鲁棒,并且能够揭示意想不到的多个谷。
1.4.4.2 MNContour
由MNContour计算的轮廓是动态的,意思是它表示相对于所有其它NPAR-2参数(如果有的话)的FCN的最小值。在统计学意义上,这意味着MNContour考虑了绘制的两个参数和所有其他可变参数之间的相关性,使用类似于MINOS的程序。 (如果不需要此功能,则其他参数必须在调用MNContour之前固定。)MNContour提供轮廓周围点的实际坐标,适合绘图程序或手动绘制。这些点以轮廓周围的逆时针顺序给出。每个命令(或Fortran调用)只计算一个轮廓,级别为Fmin UP。其中UP是由用户指定的ERRordef,或默认情况下为1.0。要计算的点数由用户选择(对于数据驱动模式,默认值为20)。作为副产品,MNContour提供了两个参数的MINOS误差,因为这些只是轮廓的极值点(使用SHOw MINos查看它们)。在命令驱动模式下,给出点的粗略(字母数字,而不是图形)绘图(如果PRIntlevelgt;=0)并打印坐标的数值(如果PRIntlevelgt;=1)。在Fortran可调用模式下,用户通过SUBROUTINE MNCONT获取Fortran访问点坐标的向量。
第2章:Minuit安装。
2.1Minuit发布。
但是这些应用与自1970年以来一直在使用的那些已经使用的旧版本的用户非常相容。熟悉旧版本但尚未使用1989年或以后版本的用户的用户必须阅读本手册,以便适应少数变化以及发现新的 功能和更简单的方式使用旧的功能,如自由字段输入。
2.2 Minuit版本。
该程序特别是标准的便携式Fortran 77,不需要外部子程序,不包括那些定义为Fortran 77标准和一体化功能INTRAC 1的一部分。除了INTRAC之外,不同计算机的版本之间的差异是浮点精度(见下面的标题)。与以前的版本一样,Minuit不使用内存管理器。 这使得易于安装和独立于其他程序,但是具有在编译时固定存储器占用和最大问题大小(参数的数目)的
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[26101],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。