解題指令群 > 範例:最佳化函數
範例:最佳化函數
搭配估值使用 maximizeminimize 函數,求解輸入函數為最大值或最小值時的點。此估值會通報求解器函數在局部最大值或最小值上收斂,而不是在其他可能的最大點或最小點上收斂。當您在解題指令群內使用求解器函數時,您可以提供條件約束,將搜尋演算法限制在特定領域或繪圖的特定區域中。
使用無條件約束的估值
1. 使用 sin 函數定義遞增的正弦函數。
按一下以複製此運算式
2. 使用 maximizeminimize 函數求解給定估值的局部最大值與最小值。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
3. 繪製函數並使用垂直標記顯示局部最大值與最小值。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
函數會傳回最接近估值的局部最大值和最小值。
搭配使用估值與無限制性條件約束
1. 若要在 maximizeminimize 函數設置條件約束,請使用其自己解題指令群內的每個函數。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
2. 使用此簡短的程式反白在繪圖上的條件約束區域。
按一下以複製此運算式
3. 將反白區域的開始值設定為條件約束的值,然後產生著色向量。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
4. 顯示著色的條件約束區域、新的估值以及新的局部最大值和最小值。將 Y1 繪線的 「線條樣式」 設定為 (無)。
按一下以複製此運算式
傳回的最小值與最大值滿足 x>7 的條件約束值。
搭配使用估值與限制性條件約束
1. 若要針對 maximizeminimize 函數設置更嚴格的條件約束,請指定該條件約束的下限與上限。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
2. 將反白區域的開始值設定為條件約束的值,然後產生著色向量。
按一下以複製此運算式
按一下以複製此運算式
3. 顯示著色的條件約束區域、估值與局部最大值和最小值。
按一下以複製此運算式
傳回的最小值與最大值滿足 0<x<10 的條件約束範圍。
小心使用條件約束
當使用條件約束時,建議核對傳回的最小值或最大值不等於條件約束值。
1. 指定窄限制條件約束,然後重新計算最小值與最大值。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
2. 將反白區域的起點與終點設定為條件約束的上下限,然後產生著色向量。
按一下以複製此運算式
按一下以複製此運算式
3. 顯示著色的條件約束區域、估值與局部最大值和最小值。
按一下以複製此運算式
傳回的最大值保持不變,但傳回的最小值現在等於條件約束的上限。傳回的最小值滿足條件約束,但不屬於函數的其中一個最小點。這意味著 minimize 和 maximize 函數傳回滿足條件約束的最小值和最大值,但不一定是函數的最小值或最大值。
在此情況下,建議使用者鬆弛條件約束,直到傳回的值滿足指定的條件約束且遠離其限制。
4. 「算式格式」標籤的「結果」群組中,將「結果格式」設定為「(小數)」,並確保在計算傳回值的輸入函數的導數時會傳回零,以檢查傳回的最小值與最大值的有效性。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
這會顯示所有解題指令群計算的最大值和最小值會穿過函數曲線上的正確最大點和最小點,但最小點 sblo3 除外。
5. 鬆弛條件約束的上限,然後重新計算最小點與最大點。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
最小值現在也落在條件約束區域內。
按一下以複製此運算式
這是否有幫助?