添加数量应取决于当前值

时间:2010-06-28 17:19:36

标签: php math

我想在var中添加一个数字。当var小时,这个数字应该更大,当var大时,这个数字应该更小。我已经计算出最佳值:当var = 1时,函数应该加125.当var = 50时,函数应该加上420.我正在考虑sin函数,但我不知道如何“个性化”这个函数来使用它。 (我正在使用php)

3 个答案:

答案 0 :(得分:0)

正弦函数是周期性的,可能不适合该任务。

你的例子不清楚:你说当var变小时加上'较大的数字,当var变大时加上较小的数字',但是加上125比1和420比50,这与文本相矛盾。

一种可能性是互惠功能 - 它符合您规定的要求,但不符合您的示例要求。

只给出2个数据点,我们可以推导出线性关系:

y = 125 + (420 - 125) / (50 - 1) * (x - 1)

大约是:

y = 119 + 6x

检查:

x =  1; y = 125
x = 50; y = 419

近似因子6是6.0204081632的舍入...这是小数部分的一个有趣的序列。

答案 1 :(得分:0)

尝试进行线性方程投影。

VarAdd = Var * Slop + Start;方程[1]

125 = 1 * Slop + Start --- 1

420 = 50 * Slop + Start -2

解决Slop和Start然后随时应用eq [1]。

答案 2 :(得分:0)

对于具有以下形式的函数:

f[x_] := x + Sin[y*x + z]

受限制

f[1] == 1 + 125 && f[50] == 50 + 420

你有

{{y -> 1/49 (-ArcSin[125] + ArcSin[420]), 
  z -> 1/49 (50 ArcSin[125] - ArcSin[420])}}

大约是

{{y -> 0. - 0.0247338 I, z -> 1.5708 - 5.49671 I}}

在0到70之间,这给出了:

Graph

仅使用实际值的近似函数是:

f(x) = x + 121.94629730754633 cosh(0.02473378688005212 x) + 
 121.94219707312345 sinh(0.02473378688005212 x)