我有一些功能(例如,雙功能(雙值)),和一些範圍(例如,從A到B)。我需要在這個範圍內計算函數的最大值。有沒有圖書館?請給我建議。如何計算範圍內功能的最大值?
回答
如果函數需要處理浮點值,你將不得不使用像Golden section search。請注意,對於此特定方法,可以處理的功能有很大的限制(具體而言,它必須是unimodal)。有一些adjustments你可以使算法擴展到更多的功能,特別是這些修改將允許它工作的連續功能。
這是一個連續函數,還是一組離散值?如果是離散值,則可以遍歷所有值,並將最大/最小標誌設置爲808sound建議的值,或者可以將所有值加載到數組中。
如果它是一個連續函數,那麼您可以在離散輸入處填充函數值的數組,然後找到上述最大值,或者如果它是可微分的,那麼您可以使用基本微積分來查找df (x)/ dx是0.後者的情況稍微抽象一些,可能比你想要的更復雜,但是?
一個快速谷歌搜索使我這個: http://code.google.com/p/javacalculus/
但我從來沒有使用過它自己,所以我不知道如果實現所需的功能。儘管它有微分方程,所以我認爲他們會有像基本差異這樣的「寶貝東西」。
我不知道Java中是否有針對您的問題的庫。 但我知道你可以很容易地用MatLab(或開放源代碼的Octave)做到這一點。
如果你不具備的功能,內部工作是什麼任何跡象(即函數是一個黑盒子,它接受輸入,併產生一個輸出),沒有「簡單」的方式找到全球最大。
對於您的輸入(技術上)有無限的選擇點,所以「迭代所有可能的輸入」在數學上是不可行的。
有多種算法,會給你估計最大值INA功能是這樣的:
的hill climbing algorithm,和firefly algorithm是兩個,但還有更多。這是一個相當有據可查的/研究過的計算機科學問題,網上有很多材料可供您查看。我建議先從爬山算法開始,並可能擴展到其他全局優化算法。
注:這些算法不保證其結果是最大的,但提供其價值的估計值。 *
- 1. 計算相對日期範圍內的值的最大值
- 2. 計算特定範圍內的行數,最大值後
- 3. Azure搜索:價格範圍 - 最小值和最大值計算
- 4. 計算範圍內出現的值
- 5. 如何計算SQL中時間範圍的最大行數?
- 6. 計算日期範圍內的Python Pandas數據框的最大值
- 7. Sumif在計算範圍內
- 8. 擴大功能範圍
- 9. 如何計算任意範圍內的中間值
- 10. 如何計算一個範圍內的平均值psql
- 11. 如何計算IP範圍
- 12. 計算不同值範圍
- 13. 範圍內的最低值
- 14. 當達到最大值時總結範圍內的範圍和阻塞範圍
- 15. 內從功能上$範圍
- 16. $範圍不內功能
- 17. 如何返回範圍內最大值的相應索引?
- 18. gnuplot:範圍內的最大值和最小值
- 19. 使用Matlab,如何在一定範圍內找到最大值?
- 20. 最大範圍
- 21. 最佳算法從範圍計算輪值
- 22. 計算日期範圍內的天數
- 23. 計算時間範圍內的天數?
- 24. 計算日期範圍內的天數
- 25. 計算範圍內的數字
- 26. 角rzslider:最大值和最小值,最大值;範圍滑塊
- 27. 我該如何做100萬次最大值計算,每個100行範圍內的結果寫入新列?
- 28. 如何計算一個範圍內子集的最大值並將所有單元設置爲它?
- 29. 如何計算任何範圍的UISlider值到一個範圍0-1.0
- 30. 功能範圍
不清楚的問題。請添加一個好問題stmt。 – Arpit 2013-02-20 15:53:58
你需要更多關於'function'的具體信息。例如,如果它是一個隨機數生成器,由'value'植入呢?那麼,有什麼細節可以保證嗎? – Dancrumb 2013-02-20 15:56:32
如果函數本質上是一個「黑盒子」,那麼唯一的辦法就是檢查每一個可能的double值。現在有很多獲得估計最大值的技術,例如爬山,各種遺傳算法等。 – NominSim 2013-02-20 15:56:44