我正在攻击的功能如下所示:
y(a) = pi/2 + arctan(np.sqrt(a/((2*R)-a))) - arccos(1-(a/R))
在此处可视化:https://www.desmos.com/calculator/pf39xc033q
Eq1
以弧度为单位,Eq2
我将度量放入以使函数更易于查看。
我有y(a)
,但我希望得到a(y)
,而我似乎无法做任何事情。如果有人能指出我正确的方向,我会非常感激。
答案 0 :(得分:2)
请注意
y == Pi/2+ArcTan[Sqrt[a/((2*R)-a)]]-ArcCos[1-a/R] && 0<=a<2 R
完全等同于
y == Pi/2-1/2 ArcCos[1-a/R] && 0<=a<2 R
因此
a == R(1-Cos[2 y-Pi]) && 0<=y<=Pi/2 && 0<R
并将其简化为
a == 2 R Cos[y]^2 && 0<=y<=Pi/2 && 0<R
所有这些都使用Mathematica表示法编写,因为有一个Wolfram-Mathematica标记。
仔细检查以确保没有错误。
答案 1 :(得分:0)
如果您对分析解决方案没有好运,那么近似。
形状不增加,因此您可以使用二进制搜索。如果不是这种情况,您仍然可以使用Approximation search或任何其他近似或优化方法。
您还可以将多项式参数曲线拟合到您的函数中,并通过分析计算其逆。或者您可以将图形反转曲线直接拟合为多项式。请注意,某些功能无法非常准确地适应多项式。
对于非常难的功能,使用 LUT 及其反 LUT 参见