2016-09-29 18 views
0

我想找到最少y = mx + b這樣y > f(x)如何找到比我所有數據點都大的最小線性函數?

基本上,我已經得到了數據的藍,我想找到的功能在紅:

my data and the end result

效率,而不是完全準確,是很重要的。我試過線性迴歸,但是它給出了一個與數據相交的值。

此外,我使用的是Java,但問題應該足夠普遍,因爲這沒關係。

紅色函數會被調用什麼,以及什麼是計算它的有效方法?

+0

如果你可以對「最少線」做更精確的描述,這可能會有所幫助。例如,假設你的數據在中間有一個最大值。然後,通過最大值的水平線將高於您的所有數據,但您可以將其旋轉一下以獲得最大值,並且stil在數據上方有一行。其中哪一個是最低的? – dmuir

回答

1

這可以通過例如用一種稱爲「約束優化BY線性近似(COBYLA)」的方法。 Scipy有一個FORTRAN實現的python包裝器。您可以指定任意數量的約束函數,例如強制該擬合始終大於數據。

相關問題