將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