【问题标题】:Inverse of this piecewise-defined function这个分段定义函数的逆
【发布时间】:2017-10-04 18:25:02
【问题描述】:

我需要通过MATLAB实现以下分段定义函数的反函数:

这是高斯函数的近似值。

我已经尝试对每个单独的分段函数使用 finverse 函数,但是结果(0NaN)似乎与我的预期不符。

x 是一个可以用数字代替的值,所以我认为以 数字形式 回答我的答案就足够公平了,因为我认为它在象征性的——如果可能的话,我认为以象征性的方式来做会更好。

你能帮我解决这个问题吗?

编辑于 2017 年 5 月 12 日

在这里你可以看到我最初的尝试:

    Q_1 = exp(-0.4527*x^0.86 + 0.0218);
    Q_2 = sqrt(pi/x)*exp(-x/4)*(1-20/(7*x));

    b = 1-(1-lambda)^(j-1);
    if b < 10, r_idle(j) = subs(finverse(Q_1,x),x,b);
    else,      r_idle(j) = subs(finverse(Q_2,x),x,b);

j 只是一个整数(这些结果是向量的参数),lambda 只是一个预先计算的实数。例如,0.4065

【问题讨论】:

  • 您想要符号形式还是数字形式的答案?
  • 如果你对数值逆感兴趣,可以使用this method
  • 抱歉你的回答@freude 我正在编辑问题!
  • @m7913d 感谢您的回答!但是如果我有一个单一的 x 值,我只想获得相应的反函数呢?
  • 如果y = phi(x),那么x = phi^-1(y)。如果你只在一个点上评估你的函数,你就不能在更多点上对你的函数进行反演。那么,你为什么不在更多的点上评估你的功能呢?例如,在您的兴趣点 x1x2 之间的线性间隔矢量 linspace(x1,x2)

标签: matlab math gaussian inverse piecewise


【解决方案1】:

这类似于Computing the inverse of function in MATLAB,但分段部分使它有点不同。

注意:函数在 10, 处不是连续的,跳跃为 0.006 - 可以吗?

  1. 首先,您需要反转限制,这可以通过注意两者都是单调递减函数来分析完成,因此第一张图像(称为 g)在 0 处具有最大值,在 10 处具有最小值,对于第二张图片(称为 h):

    x g(10)=0.038476

    x>=10-> 0

请注意,介于 0.0328633 和 0.038476 之间的任何值都是未定义的,高于 1.02204 和 0 及以下的所有值也是如此。

  1. 第二部分是实际反转函数。 g 是微不足道的,简单地由以下公式给出:

    x=(1/0.4527*(0.0218-log(g))^(1/0.86)

数学:

您可以像普通函数一样直接计算它。 (给定 g,得到 x)。

  1. h(函数的第二部分)在分析上是不可逆的。 使用我在顶部链接到的问题的解决方案来扭转它(请记住,仅限于 0

【讨论】:

  • 图表中的跳跃是正数,而您给出的值应该是负数。
  • @G.J 谢谢,我在剧情上搞错了。
  • 您好@kabanus,非常感谢您的回答。你是如何获得第一个逆的?我试图通过'finverse'函数来做到这一点,但结果是0。我附上了我在原始帖子中尝试过的内容。 BR!!
  • @MisterTellini 笔和纸。见编辑。 finverse 不能适用于所有事情,问题是界限。使用第二部分的链接。
【解决方案2】:

有时使用指标(逻辑)函数和interp1 函数很方便。

phi=@(x) exp(-0.4527*(x.^0.86)+0.0218).*(x < 10)...
    + sqrt(pi./x).*exp(-x./4).*(1-(20./(7*x))).*(x >= 10)

X = (.01:.01:20)';

然后interp1(phi(X),X,xq) 给出相反的结果。

>> interp1(phi(X),X,[0.01 0.05 .1 .2 .3 .4 .5 .6 .7 .8 .9 1])
ans =
   14.4851    9.0773    6.7013    4.4395    3.1844    2.3332    1.7013    1.2081    0.8120    0.4896    0.2284    0.0294

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    相关资源
    最近更新 更多