将HyperMath定义函数导入HyperStudy并调用

将HyperMath定义函数导入HyperStudy并调用

将HyperMath定义函数导入HyperStudy并调用的图1第一步,定义RosenBrock函数

(1)      打开HyperMath,在文本输入区内输入如下

function ros_eval(x,y) {

f = 100.*(y-x^2)^2 + (1-x)^2

return(f)

}

(2)另存为rosenbrock_function.hml。退出并关闭HyperMath。

第二步,将定义函数添加至首选项文件Preference File

(1)新建文本文档,输入如下

*Id("HyperStudy v12.0")

  *BeginDefaults()

     *BeginPlotDefaults()

     *RegisterHMATHFunction("ros_eval", "<path>/rosenbrock_function.hml", 2)

  *EndPlotDefaults()

*EndDefaults()

将<path>替换为rosenbrock_function.hml所在的路径。

(2)保存文本文档为rosenbrock_prefs.mvw,退出并关闭。

第三步,HyperStudy求解

(1)启动HyperStudy,依次菜单栏“file-Use Preference File- rosenbrock_prefs.mvw file”,此时完成了首选项文件Preference File的导入。

(2)利用HyperStudy新建Model,类型为Internal Math

(3)定义变量X和Y,如下

34.jpg

将HyperMath定义函数导入HyperStudy并调用的图3

(4)执行Nominal Run

(5)创建并定义输出响应,调用上述定义的RosenBrock函数。

点击“Add Output Response”-Response 1 的Expression栏,点击该栏后方的“…”,弹出对话框,选择Functions选项卡,从函数列表中选择ros_eval,单击Insert Varname,将ros_eval函数插入到文本输入框。

选择Input Variables选项卡,依次将X和Y变量插入到ros_eval函数中,如下图

35.jpg

将HyperMath定义函数导入HyperStudy并调用的图5

单击Evaluation Expression,显示值为404(解释,因为设置的X和Y的初始值均为-1)

第四步,优化分析

(1)在Explorer中,新建Optimization

(2)进入Select Output Responses分析步,增加Response 1,设置Objectives为Minimize。

(3)选择Specifications 为ARSM。

(4)按步骤进入Evaluate Tasks,完成优化求解。

将HyperMath定义函数导入HyperStudy并调用的图6

 

36.jpg
登录后免费查看全文
立即登录
App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP

1
1