2012-01-28 165 views
2

我有一個數學問題,我有點難住。我需要以非線性的方式將數字從一個範圍映射到另一個範圍。我手動從我正在嘗試實現的一些示例數據中抽取數據。看起來如此。從一個範圍到另一個範圍的非線性映射

源 - 期望的結果

0 - 1

78 - 0.885

363 - 0.625

1429 - 0.3

3404 - 0.155

7524 - 0.075

11604 - 0.05

源編號範圍從0到,理想情況下是一個無限數字,但如果它在數千的數十個位置停止某處,則是開心的。由此產生的數字是從1到0.它需要快速下降然後平穩。理想情況下不會達到零。

我知道從一個範圍映射到另一個範圍的標準方程。

y = ((x * origRange)/newRange) + newRangeOffset 

不幸的是,這並沒有給我想要的結果。有沒有一個優雅的非線性方程可以給我以後的結果?

+1

此問題可能屬於http://math.stackexchange.com – perfectionist 2012-01-28 07:05:37

+0

你的_desired結果_是什麼? – 2012-01-28 07:35:32

+0

@perfectionist下次注意,謝謝。 – 2012-01-28 09:02:44

回答

3

f(x) = 620/(620 + x) 給出了一個答案精確到所有你的價值觀

+0

非常感謝。我很想知道你是如何與620號一起來的? – 2012-01-28 09:06:08

+2

你想要一個函數f(x)趨於0,因爲x =>無窮大。這個建議'f(x)= 1/x。'一個常見的轉換方法是'f(x)= 1 /(x + c)',但是你也需要f(0)= 1, (x)= c /(x + c)'。我想說我在這一點上做了一些巧妙的微積分,但是我真的打開了excel並做了一些試驗和錯誤迭代。順便說一句,617對於c來說是一個更好的值。 – perfectionist 2012-01-28 09:17:12

+1

對曲線'f(x)= c /(x + c)'擬合的數據更爲嚴格的就是將其重寫爲'1/f(x)= 1 + x/c' - 然後您可以至少使用 - 平方線性迴歸(幾乎任何軟件包都可以做到,甚至是Excel)來找到'c'的最佳值。然而,對某些數據盲目擬合曲線幾乎不是一個好主意 - 如果不知道數值代表什麼,就無法確定哪些關係會有意義(例如,這條曲線在'x = -c'處爆炸,並且我們無法知道這是否合適)。 – James 2012-01-28 11:55:37

1

至於建議here的2%以內,則可以使用多項式插值(在多個軟件包存在)。

如果你想試試,我建議你去Wolfram Alpha並選擇Polynomial Interpolation

This是一個使用你的觀點的例子。

相關問題