NAG R 程序包 23 版安装与使用说明
我们在本文中,将以 NAG R 程序包预览版与 R 2.13.2 Windows 32 位版本,进行安装与使用说明,文中将会以详细的步骤一步一步的带领您明了安装到编译的所有过程。 NAG R 程序包需要使用 NAG Fortran DLL 算法库 (FLDLL234M),您需要先行 下载安装, 并向我们 申请试用授权。
下载安装程序
请参考 NAG R 程序包 说明页面,或直接 下载安装程序 (NAGFWrappers_23.0.zip)。
安装 R 程序包
最简便的方式是在 R 的 GUI 环境中加载程序包。于主画面 | 程序程序包 | 用本地 zip 文件安装程序包...
接下来在对话框中选择刚刚下载的程序包程序 (NAGFWrappers_23.0.zip),若成功安装后会有如以下的讯息:
载入 NAG 程序包
透过 library("NAGFWrappers") 命令,可将程序包加载。
图中所看到的警告讯息 " DLL试图把FPU控制词从8001f改成9001f",这是一个常见的问题。此讯息表示 R 调用了一个使用 Visual Studio 编译的文件。 由于我们的 NAG Fortran DLL 是以 Visual Studio 所编译的,所以会出现这样的讯息,您可以忽略。
简单测试
您可以直接执行 a00ad 函数,此函数会传回所使用到的 Fortran 算法库底层,如下图显示。
请注意,最后输出的文字为 [1] TRUE,才表示您有安装了正确的 License 授权。
您也可以透过 exmaple 命令执行 E04 中各函数的示例,例如调用 E04UC 函数示例:
您可以透过 help 命令来查询 NAG 函数说明:
使用 R 调用 NAG 函数
我们使用 E04ABF 文件中的示例,求解 F(x) = sinx / x 在 x = [3.5, 5.0] 区间中的最小值。
程序中输入 e04ab_funct 目标函数,并指定区间 (a, b)、相对与绝对误差 (e1, e0) 及目标函数求解次数上限 (maxcal)。 接着调用 e04ab 函数就能求解此优化问题。
License 问题
若您并没有 NAG Fortran 算法库的授权,您在执行以上程序时会出现以下的错误讯息:
In e04ab(e04ab_funct, e1, e2, a, b, maxcal) :
ABNORMAL EXIT from NAG library routine E04ABF, : IFAIL = -399