【发布时间】:2017-10-04 18:25:02
【问题描述】:
我需要通过MATLAB实现以下分段定义函数的反函数:
这是高斯函数的近似值。
我已经尝试对每个单独的分段函数使用 finverse 函数,但是结果(0 和 NaN)似乎与我的预期不符。
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)。如果你只在一个点上评估你的函数,你就不能在更多点上对你的函数进行反演。那么,你为什么不在更多的点上评估你的功能呢?例如,在您的兴趣点x1和x2之间的线性间隔矢量linspace(x1,x2)?
标签: matlab math gaussian inverse piecewise