英语原文共 13 页,剩余内容已隐藏,支付完成后下载完整资料
第四章 Minuit命令
在数据驱动模式下,Minuit接受以下格式的命令:
命令 lt;arg1gt; arg2]等。
下面是众多命令中一个,
lt;argigt;必需参数的数值 (如果有的话。。
[argi]可选 参数的数值,如果有的话。
参数(如果有的话)彼此分开,并通过一个或多个空格或逗号与命令分开。 命令可以以大写或小写的形式给出,并且可以缩写,通常缩写为3字符。 最短的识别缩写由命令的大写部分表示。有效命令的示例列出如下:
SET INPUT |
21 |
|
migrad |
||
mig 500 |
||
SET LIMITS |
14 |
-1.0,1.0 |
contours 1 |
2 |
|
MINOS 500 |
1,3,5,21,22 |
在Fortran-callable模式下,所有相同的命令(如上所示的例外)都可以
通过在 CALL MNEXCM语句中将命令字符串和参数传递给Minuit来执行。
Minuit命令列表:
CALl fcn lt;iflaggt;
Minuit 使用IFLAG = lt;iflaggt;这个命令来调用子程序FCN。被调用的子程序的实际名称是用户在致Minuit或MNEXCM时给出的;这个名字命令未被使用)。如果lt;iflaggt; gt; 5,则Minuit就会定义新问题,并且它会无视了函数,协方差矩阵等的先前的最佳值。这个命令可用于指定用户函数读取新输入数据,重新计算常量或以其他方式来修改函数的计算。
CLEar
将所有参数名称和值重置为undefined(特殊值,变量尚未赋值的意思)。通常必须后跟PARameters命令或等效命令才能定义参数值。
CONtour lt;par1gt; lt;par2gt; [devs] [ngrid]
Minuit将根据lt;par1gt;和lt;par2gt;这两个参数来确定轮廓线。函数的其他可
变参数(如果有)将在轮廓跟踪期间将其值固定为当前值。可选参数[devs](默认值2)给出每个参数中应完全位于绘图区域内的标准偏差数。可选参数[ngrid](默认值25,除非页面尺寸太小)确定绘图的分辨率,即将评估函数的网格的行数和列数。 [另见MNContour]
END
表示数据块的结尾(即拟合的结束),并暗示执行应该继续,因为接下来是另一个数据块。数据块是一组Minuit数据,包括(1标题,(2)一个或多个参数定义,(3)空行,以及(4)一组Minuit命令。当多个数据块与同一个FCN功能一起使用时,使用END命令。 END命令首先使Minuit发出一个IFLAG = 3的CALLFCN,以允许FCN执行与最终拟合参数值相关的任何计算,除非已在当前FCN值执行了CALLFCN3命令。过时的命令ENDRETurn与RETURN命令相同。
EXIT
表示执行结束。 EXIT命令首先使Minuit发出一个IFLAG = 3的CALLFCN,以允许FCN执行与最终拟合参数值相关的任何计算,除非已在当前FCN值执行了CALL FCN 3命令。然后这项命令它会执行,停止Fortran。
FIX lt;parnogt; [parno] ... [parno]
这个命令会导致参数lt;parnogt;从变量参数列表中删除,并且它们的值在后续最小化等期间将保持不变,直到另一个命令更改其值或状态。
HELP [SET] [SHOw] [command]
如果HELP后面没有参数,则会让Minuit列出可用命令。如果指定了参数SET或SHOW,则显示已识别的SET和SHOW命令列表。如果指定了命令名称作为参数,则会给出命令语法的简短说明。
HESse [maxcalls]
这个命令会让Minuit通过有限差分计算黑塞矩阵或误差矩阵。也就是说,它计算关于当前可变参数的函数的二阶导数的完整矩阵,并反转它,打印出所得到的误差矩阵。可选参数[maxcalls]指定计算将停止之后的(近似)最大函数调用数。
IMProve [maxcalls]
如果先前的最小化已经收敛,并且参数的当前值因此对应于函数的局部最小值,则该命令会请求搜索另外的不同的局部最小值。可选参数[maxcalls] 将指定计算停止之后的(近似)最大函数调用数。
MIGrad [maxcalls] [tolerance]
通过Migrad命令使函数最小化,这是一种最有效和最完整的单一方法,推荐用于一般函数(另外那些特殊的请参见MINImize)。最小化产生参数的误差矩阵作为副产品,除非产生警告消息,否则通常是可靠的。可选参数[maxcalls]指定(近似)函数调用的最大数量,在此之后计算将停止,即使它尚未收敛。可选参数[tolerance]指定函数值所需的最小公差。默认公差为0.1,当估计的最小垂直距离(EDM)小于0.001时,最小化将停止* [tolerance] * UP(参见SETERR)。
MINImize [maxcalls] [tolerance]
和MIGrad命令一样,通过Migrad方法使函数最小化。但如果Migrad无法收敛,则切换到SIMplex方法。它的Arguments与MIGrad一样。请注意,此命令需要四个字符。
MINOs [maxcalls] [parno] [parno]
这项命令会导致对指定数字[parno]的参数执行Minos误差分析。如果未指定参数,则计算所有变量参数的Minos误差。 Minos误差的计算成本可能很高,但非常可靠,因为它们考虑了问题的非线性以及参数相关性,并且通常是不对称的。可选参数[maxcalls]指定每个请求的参数的(近似)最大函数调用次数,之后将为该参数停止计算。
MNContour lt;par1gt; lt;par2gt; [npts]
根据参数par1和par2计算FCN的一个函数轮廓,最小化FCN始终与所有其他NPAR-2变量参数(如果有)相关。 Minuit将尝试在轮廓上找到npts点(npts默认为20)。如果此时只有两个参数是可变的,则无需指定其编号。要计算多个轮廓,必须将ERR设置为适当的值,并为所需计算的每个轮廓使用MNContour命令。
RELease lt;parnogt; [parno] ... [parno]
如果lt;parnogt;是由命令修复的先前可变参数的编号:执行FIX lt;parnogt;命令,然后该参数将返回变量状态。否则会打印一条警告消息,并且命令被忽略。请注意,此命令仅对一次性变量且已FIX过的参数起作用。它不能使常数参数变量;必须使用PARameters命令重新定义参数。[另见: REStore]
REStore [code]
如果未指定[code],则此命令将所有先前的FIX过的参数恢复为变量状态。如果[code] = 1,则只有最后一个FIX过参数的恢复到变量状态。如果代码既不是零也不是一个,则忽略该命令。 [另见: RELease]
RETurn
这个命令是数据块结尾的标志,并指示Minuit返回调用它的程序。该命令首先使Minuit以IFLAG = 3 调用 FCN,以允许FCN执行与最终拟合参数值相关的任何计算,除非已在当前FCN值执行了CALL FCN 3命令。然后它执行Fortran RETURN命令。
SAVe
使当前参数值以这样的格式保存在文件中,以便可以再次将其读入。如果存在协方差矩阵,则也以这种格式输出。单位编号默认为7,或用户在调用MINTIO或 MNINIT时指定的单位编号。用户负责在发出SAVE命令之前打开文件(除非可以交互式完成)。
SCAn [parno] [numpts] [from] [to]
通过改变参数编号[parno]来扫描用户函数的值,将所有其他参数固定为当前值。如果未指定[parno],则按顺序扫描所有变量参数。默认情况下,扫描中的点数[numpts]为40,不能超过100.扫描范围默认为当前最佳值的每侧2个标准偏差,但可以指定为[from]到[to]。每次扫描后,如果找到新的最小值,则保留最佳参数值作为将来扫描或最小化的起始值。每次扫描得到的曲线都绘制在输出单元上,以显示函数的近似行为。此命令不用于最小化,但有时用于调试用户功能或找到合理的启动点。
SEEk [maxcalls] [devs]
通过选择变量参数的随机值,使函数进行蒙特卡洛最小化,在以当前最佳值为中心的超立方体上均匀选择。区域大小默认为每侧3个标准偏差,但可以通过指定[devs]的值来更改。
SET BATch
通知Minuit它正在批处理模式运行。
SET EPSmachine lt;accuracygt;
通知 Minuit相对浮点算术精度为 lt;accuracygt;。 Minuit确定标称精度本身,但是当用户知道FCNfunction值未计算到标称机器精度时, SETEPS命令可用于覆盖Minuit本身的决定。 lt;accuracygt;的典型值在105和1014之间。
SET ERRordef lt;upgt;
设置UP(默认值= 1)的值,定义参数误差。 Minuit将参数误差定义为通过UP更改功能值所需的参数值的变化。通常,对于chisquared拟合UP = 1,对于negative log likelihood, UP = 0.5。
SET GRAdient [force]
通知Minuit,用户准备计算其自己的一阶导数,并当IFLAG = 2时(参见函数FCN的规范),在数组GRAD中返回它们的值。如果未指定[force], Minuit将通过当前点的有限差分计算FCN导数,并与该点的用户计算的值进行比较,仅在他们同意的情况下接受用户的值。如果[force] = 1,则Minuit不会进行自己的导数计算,并使用在FCN中计算的导数。
SET INPut [unitno] [filename]
这项命令会使Minuit仅在数据驱动模式下从不同的输入文件中读取后续命令(或参数定义或标题)。如果未指定[unitno],则读取上一个输入文件(如果存在一个的话)。如果指定了[unitno],并且尚未打开该单元,则Minuit会在指定名称时尝试打开文件[filename]。如果以交互模式运行并且未指定[filename]且未打开[unitno],则Minuit会提示用户输入文件名。如果将REWIND一词添加到命令中(注意: INPUT和REWIND之间没有空格),则在读取之前将文件重读。请注意,此命令仅仅在标准Fortran 77中实现,命令结果可能取决于操作系统;例如,如果在VM / CMS下给出文件名,则必须在斜杠之前。
SET INTeractive
通知Minuit它以交互方式运行。
SET LIMits [parno] [lolim] [uplim]
允许用户更改一个或所有参数的限制。如果未指定参数,则从所有参数中删除所有限制。如果指定参数[parno],则从参数[parno]中删除限制。如果指定了所有参数,则参数[parno]将在[lolim]和[uplim]之间进行限制。可以按任意顺序指定限制, Minuit将采用较小值[lolim],并采用较大值[uplim]。但是,如果[lolim]等于[uplim],则会出现误差情况。
SET LINesperpage
设置Minuit适合一页输出的行数。交互模式的默认值为24,批处理的默认值为56.
SET NOGradient
Set GRAdient(梯度)的相反命令,这项命令会让Minuit不使用用户在FCN计算的一阶导数。
SET NOWarnings
拒绝Minuit发出警告信息。 SET WARnings(允许Minuit警告信息)是默认值。
SET OUTputfile lt;unitnogt;
指示Minuit将进一步的输出写入单元lt;unitnogt;。
SET PAGethrow lt;int
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[18276],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。