【问题标题】:Blending two functions, where one is inverse混合两个函数,其中一个是逆函数
【发布时间】:2011-08-25 20:37:54
【问题描述】:

让我先解释一下这个想法。实际的数学问题在屏幕截图下方。 出于音乐目的,我正在构建一个凹槽算法,其中事件位置由数学函数 F(X) 转换。这些位置在凹槽范围内进行了归一化,所以我基本上处理的是零到一之间的值(这使得凹槽曲线更容易成型——唯一的限制是 x'>=0)。 这种凹槽算法接受任何事件位置,并且还通过从数据结构(如时间线音符轨道)中过滤静态音符来工作。为了过滤一定范围内的事件(音频块大小),我需要逆凹槽功能来定位音轨中的音符并将它们转换到凹槽空间中。到现在为止还挺好。有效!

简而言之:我使用反函数是因为它镜像到 (y=x)。所以我可以插入一个值 x 并得到一个 y。这个 y 显然可以插入反函数来再次获得第一个 x。

问题:我现在希望能够将凹槽混合到另一个凹槽中,但是通常的线性(提示提示)混合代码的行为不像我预期的那样。为了方便起见,我首先尝试混合到 y=x。

B(x)=alpha*F(x) + (1-alpha)*x;
iB(x)=alpha*iF(x) + (1-alpha)*x;

对于 alpha=1,我们得到完整的曲线。对于 alpha=0,我们得到直线。但是对于 0 到 1 之间的 alpha,B(x) 和 iB(x) 不再镜像(接近,但还不够),F(x) 和 iF(x) 仍然是镜像的。

是否有解决方案(除了将曲线量化为线段)?有什么我应该关注的主题吗?

【问题讨论】:

  • 等等……你是建立音调矩阵的 Andre Michelle 吗?如果是这样,那么感谢您制作了如此出色的应用!
  • 嗯,是的,谢谢。我想解决方案是切换 x,y 的方程的近似值。我希望数学更可靠。
  • 我已内联添加图像。您能否在不依赖诸如“groove”和“blend”之类的术语的情况下进行更多解释(这是否意味着插值?)?也许通过评论图像?听起来你有两个来自 [0,1]->[0,1] 的函数,你以线性方式组合它们,你想要相反的吗?
  • groove 我的意思是任何翻译事件的函数。 blend 我的意思是从函数 A 插入到函数 B。
  • 让我们看看我是否理解正确:你有两个“凹槽函数”F(x)G(x)x 介于 0 和 1 之间时,它们的值都在 0 和 1 之间,反之亦然其中有iF(x)iG(x)。现在您构造了一个新函数B(x) = alpha*F(x) + (1-alpha)*G(x),您需要根据iF(x)iG(x) 找到该函数的逆函数?如果是这样,我想你可能想在math site 上问这个问题,也许与这里的这个问题并行。他们可以告诉您是否有有用的数学程序。

标签: function math blending inverse


【解决方案1】:

您正在组合两个函数 f(x) 和 g(x),因此 y = a f(x) + (1-a) g(x)。给定一些 y、a、f 和 g,你想找到 x。至少,我是这么理解的。

我一般不知道如何做到这一点(虽然我没有非常努力 - 我的意思是,值得问别人),但我怀疑对于“漂亮”的形状功能,就像你似乎正在使用,牛顿的方法会相当快。

你想找到 x 使得 y = a f(x) + (1-a) g(x)。也就是说,当 0 = a f(x) + (1-a) g(x) - y 时。

所以让我们定义 r(x) = a f(x) + (1-a) g(x) - y 并找到其中的“零”。从中间的猜测开始,x_0 = 0.5。计算 x_1 = x_0 - r(x_0) / r'(x_0)。重复。如果幸运的话,这将迅速收敛(如果没有,您可能会考虑定义与 y=x 相关的函数,您似乎已经在这样做,然后再试一次)。

wikipedia

【讨论】:

    【解决方案2】:

    一般来说,这个问题不能用代数来解决。

    例如考虑

    y = 2e^x(逆x = log 0.5y

    y = 2x(逆x = 0.5y)。

    将这些与权重 0.5 混合在一起得到 y = e^x+x,众所周知,这里仅使用基本函数无法求解 x,即使每个部分的逆很容易找到。

    您将需要使用数值方法来近似逆,正如上面 andrew 所讨论的那样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      • 2014-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多