matlab程式设计入门篇一般数学函数的处理与分析-mirlab.pptVIP

  • 9
  • 0
  • 约1.23万字
  • 约 57页
  • 2018-04-08 发布于天津
  • 举报

matlab程式设计入门篇一般数学函数的处理与分析-mirlab.ppt

matlab程式设计入门篇一般数学函数的处理与分析-mirlab

雙重積分 (3) 範例:dblquad01.m 一般的情況下dblquad 會呼叫 quad 計算定積分。若須呼叫更為精確的 quadl,可執行下列指令 result = dblquad(@integrand, xMin, xMax, yMin, yMax, quadl) result = -9.8696 xMin = pi; xMax = 2*pi; yMin = 0; yMax = pi; result = dblquad(@integrand, xMin, xMax, yMin, yMax) result = -9.8698 函數的優化 MATLAB 提供了數個基本指令來進行數學函數的優化,本節將介紹: 單變數函數的最小化: fminbnd 多變數函數的最小化: fminsearch 設定最佳化的選項 若讀者有興趣使用較複雜的方法,可以使用「最佳化工具箱」(Optimization Toolbox) 單變函數的最小化 fminbnd 指令 尋求 humps 在 [0.3, 1] 中的最小值 範例:fminbnd01.m 最小值發生在 x = 0.637,且最小值為 11.2528 [x, minValue] = fminbnd(@humps, 0.3, 1) x = 0.6370 minValue = 11.2528 尋求最小值的中間過程 (1) 尋求最小值的中間過程 使用 optimset 指令來設定顯示選項 再將 optimset 傳回結構變數送入 fminbnd 範例8-15:fminbnd02.m opt = optimset(disp, iter); % 顯示每個步驟的結果 [x, minValue] = fminbnd(@humps, 0.3, 1, opt) 尋求最小值的中間過程 (2) 左表列出x值的變化及相對的函數值 f(x) 最後一欄位列出求極小值的方法,包含 黃金分割搜尋 (Golden Section Search) 拋物線內插法 (Parabolic Interpolation) x 值誤差小於 10^-4 Func-count x f(x) Procedure 1 0.567376 12.9098 initial 2 0.732624 13.7746 golden 3 0.465248 25.1714 golden 4 0.644416 11.2693 parabolic 5 0.6413 11.2583 parabolic 6 0.637618 11.2529 parabolic 7 0.636985 11.2528 parabolic 8 0.637019 11.2528 parabolic 9 0.637052 11.2528 parabolic Optimization terminated successfully: the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-004 x = 0.6370 minValue = 11.2528 放鬆誤差管制 (1) 放鬆誤差管制 使 fminbnd 提早傳回計算結果 由 optimset 達成 下例將 x 的誤差範圍提高為 0.1 範例8-16:fminbnd03.m opt = optimset( disp, iter, TolX, 0.1); [x, minValue] = fminbnd(@humps, 0.3, 1, opt) 放鬆誤差管制 (2) Func-count x f(x) Procedure 1 0.567376 12.9098 initial 2 0.732624 13.7746 golden 3 0.465248 25.1714 golden 4 0.644416 11.2693

文档评论(0)

1亿VIP精品文档

相关文档