我必须在 AMPL 中使用一个本身没有的错误函数,所以我按照一篇博客文章使用 .dll 来完成它。
但是当我输入“display myerf(1.96)”时,窗口会给出错误“不能调用不可用的函数 myerf”。
我不知道如何处理这个问题,因为我已经将 .dll 文件放在了 AMPL 文件夹中。有谁知道如何获得这项工作?
错误消息can't invoke unavailable function myerf
意味着加载的函数库都没有提供该myerf
函数。这很可能是因为您的库名称不同,因此没有自动加载,或者它不在动态库搜索路径上。通常 AMPL 会自动加载 amplfunc.dll,但您可以使用以下命令从任何位置手动加载任何名称的库:
load path/to/amplfunc.dll;
wherepath/to/amplfunc.dll
是函数库的路径。您可以使用以下命令获取当前加载的库集:
display _LIBS;
有关 AMPL 库的更多详细信息,请参阅http://www.ampl.com/NEW/libload.html
更新:
请注意,AMPLGSL是一个提供对 GNU 科学库 (GSL) 函数的访问的 AMPL 函数库,它已经具有错误函数。有关更多详细信息,请参阅AMPLGSL 文档。