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