(translator=Young, ChineseSource=Young-20020720-20\fminbnd.html, EnglishSource=c:\matlabr12\help\techdoc\ref\fminbnd.html)
MATLAB Function Reference    
fminbnd

最小化在固定區間中只有一個變數的函數

Syntax

Description

fminbnd 尋找 在固定區間中只有一個變數函數的最小值。

x = fminbnd(fun,x1,x2) 傳回 fun 描述函數函數在區間 x1 < x < x2 中的局部最小者(minimizer) x 值。

x = fminbnd(fun,x1,x2,options) 以定義在結構 options 中的最佳參數做最小化。你可以用 optimset 函數定義這些參數。fminbnd 使用以下這些 options 結構欄位:

Display
顯示的等級。'off' 不顯示輸入;'iter' 在每次重複(iteration)時顯示輸出;'final' 只顯示最後結果;'notify' (預設) 只在函數不收斂時顯示輸出。
MaxFunEvals
允許函數求值的最多次數。
MaxIter
允許重複(iteration)的最多次數。
TolX
x 的終結容忍度。

x = fminbnd(fun,x1,x2,options,P1,P2,...) 提供傳到目標函數的額外參數,P1P2、etc.,fun(x,P1,P2,...)。如果沒有設定選項,用 options=[] 當作欄位保留。

[x,fval] = fminbnd(...) 傳回目標函數 funx 計算的值。

[x,fval,exitflag] = fminbnd(...) 傳回描述 fminbnd 跳出狀態的值 exitflag

>0
表示函數收斂到解答 x
0
表示到達函數計算次數的最大值。
<0
表示函數沒有收斂。

[x,fval,exitflag,output] = fminbnd(...) 傳回一個包含最佳化資訊的結構 output

output.algorithm
使用的演算法
output.funcCount
函數計算的次數
output.iterations
重複(iteration)的次數

Arguments

fun 是要最小化的函數。fun 接受一個純量 x 然後傳回一個純量 f,目標函數在 x 做計算。函數 fun 可以當作函數處理定義。

其中 myfun 是一個 MATLAB 函數,就像

fun 也可以是一個 inline 物件。

其他參數都在之前敘述過了。

Examples

x = fminbnd(@cos,3,4) 以幾個十進位位數計算 ,在結束時給一個訊息。

計算 到十進位 12 位數,隱藏結果,傳回在 x 的函數值和值為 1 的 exitflag

參數 fun 也可以是 inline 函數。找函數 在區間 (0,2) 中的最小值,產生一個 inline 物件 f

使用 fminbnd

答案是

函數最小值是

Algorithm

這個演算法是以 Golden Section search 和 parabolic interpolation 為基礎。一個以同樣的演算法實作的 Fortran 程式可以在[1] 得到。

Limitations

要最小化的函數必須是連續的。fminbnd 可能只給局部的解答。

fminbnd 當解釋在區間的臨界時,通常會收斂的較慢。

fminbnd 只處理實數的變數。

See Also

fminsearch, fzero, optimset, function_handle (@), inline

References

Forsythe, G. E., M. A. Malcolm, and C. B. Moler, Computer Methods for Mathematical Computations, Prentice-Hall, 1976.


 fmin fmins