程式 > 範例:求解向量的局部最小值/最大值
  
範例:求解向量的局部最小值/最大值
1. 使用條件語句與迴圈的組合編寫程式,求解數據組的局部最小值:
按一下以複製此運算式
函數 locmin 會掃描輸入向量 v,並比較每個元素及其兩個鄰點。若元素 k 小於前後的兩個元素,即為局部最小值,且其值與索引會加入輸出向量 m
2. 利用以上程式編寫第二個程式,求解相同數據組的最大值:
按一下以複製此運算式
函數 locmax 使用搭配 -v 呼叫 locmin 所收到的結果。-v 的局部最小值是相同索引處局部最大值的鏡像圖像。因此,局部最小值的每個值會乘以 –1。成對的索引值會儲存為輸出向量 M 中的單一元素。
3. 定義函數 f 使用內建函數 dbinom,傳回值 k 的機率密度:
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
4. 繪製以上兩個函數:
按一下以複製此運算式
5. g(k,n) 的元素儲存為陣列,以傳給已定義的程式:
按一下以複製此運算式
6. 使用內建 length 函數查看程式已求得多少 locminlocmax 點數:
按一下以複製此運算式
按一下以複製此運算式
7. 使用程式求解函數的三個局部最小點:
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
8. 使用程式求解函數的兩個局部最大點:
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
9. 繪製函數,並顯示其三個局部最小點與兩個局部最大點:
按一下以複製此運算式
10. 將使用您程式取得的結果,與使用內建函數 localminlocalmax 取得的結果 (必須作為 nx2 矩陣的輸入) 進行比較:
a. 使用 augment 函數建立 nx2 輸入矩陣:
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
b. 使用內建函數取得局部最小點與最大點:
按一下以複製此運算式
按一下以複製此運算式
結果相符。
* 
請務必先檢查內建函數的可用性,再編寫新程式。