【问题标题】:Math question in regards to functions in the form (1) / ( b ^ c )关于 (1) / ( b ^ c ) 形式的函数的数学问题
【发布时间】:2010-01-19 11:22:39
【问题描述】:

我发现遵循 1 / bc 模式的函数可以产生很好的曲线,可以很好地与插值函数耦合。

我使用该函数的方式是将“c”视为变化值,即 0 和 1 之间的插值,而将 b 变化为“锐度”。我用它来计算一个介于 0 和 1 之间的插值,所以我使用的函数一般是这样的:

float interpolationvalue = 1 - 1/pow(100,c);
linearinterpolate( val1, val2, interpolationvalue);

到目前为止,我一直在使用破解方法使其“工作”,因为当插值值 = 1 时,该值非常接近但不完全为 0。

所以我想知道,是否有一种形式的函数可以重现与 1 / bc 产生的曲线相似的曲线,其中 c = 0 结果 = 1 和 c = 1 个结果 = 0。

甚至 C = 0, result = 0 和 C = 1 result = 1。

感谢您的帮助!

【问题讨论】:

  • 嗯,这是一个令人困惑的问题。我刚刚花了最后 5 分钟试图解码它。您知道^ 运算符执行按位异或吗? C++ 中没有幂运算符,只有pow 函数。

标签: c++ math interpolation


【解决方案1】:

对于插值,提供最大灵活性的方法是使用splines,在您的情况下,二次样条似乎就足够了。维基百科页面包含大量数学内容,但您可以在 google 上找到经过调整的说明。

【讨论】:

  • 嗯,这很有趣,只是很难在图中对三次插值进行建模。是否有在线工具可以用来直观地创建和修改三次插值图?
  • 我找到了这个vias.org/simulations/simusoft_spline.html。一旦你得到你想要的,将导数和其他值提供给维基百科页面以获得所需的方程。
【解决方案2】:

1 - c ^ bb 值较小?另一种选择是使用三次多项式并将斜率指定为 0 和 1。

【讨论】:

    【解决方案3】:

    您可以使用A - 1 / b^(c + a) 形式的类似曲线,选择Aa 的值来匹配您的约束。所以,对于c = 0, result = 1

    1 = A - 1/b^a   =>   A = 1 + 1/b^a
    

    对于c = 1, result = 0

    0 = A - 1/b^(1+a)  =>  A = 1/b^(1+a)
    

    结合这些,我们可以在b 方面找到a

    1 + 1/b^a = 1/b^(1+a)
    b^(1+a) + b = 1
    b * (b^a - 1) = 1
    b^a = 1/b - 1
    

    所以:

    a = log_b(1/b - 1) = log(1/b - 1) / log(b)
    A = 1 + 1/b^a = 1 / (1-b)
    

    【讨论】:

      【解决方案4】:

      在实数中,数学家使用的那些,你指定的形式的函数永远不会返回 0,除法不能这样做。 (1/x)==0 没有真正的解决方案。在浮点算术中,计算机使用的实际算术的关系很差,你可以写 1/(MAX_FP_VALUE^1) 这将使你尽可能接近 0(实际上,它可能会给你一个 NaN 或IEEE 754 允许的其他奇数返回之一)。

      而且,我相信您已经注意到,1/(b^0) 总是返回 1,因为根据 0 次方的定义,b^0 总是 1。

      因此,c = 0 的任何函数都不会产生 0 的结果。

      对于 c = 1,结果 = 1,设置 b = 1

      但我想这只是部分答案,我不太确定我是否理解你想要做什么。

      问候

      标记

      【讨论】:

      • 现在,阅读其他回复,我确定我误解了这个问题。请有人否决我的答案,我不能。
      • 如果你认为你的答案是错误的,最好删除它而不是让它被否决。
      • 不,我认为公开羞辱是我康复的重要组成部分。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多