JxB*_*JxB 3 wolfram-mathematica
我试图计算一个BezierFunction[]x分量的倒数,例如,定义为
fx[u_] := BezierFunction[{{0, 0}, {1/8, 3/4}, {1, 1}}][u][[1]]
Run Code Online (Sandbox Code Playgroud)
这是下图中的蓝色曲线:

该曲线明显具有0≤u≤1的唯一倒数,例如,通过在坐标处相交的红色虚线所示{0.4,fx[0.4]} == {0.4, 0.22}.
In[1]:= fx[0.4]
Out[1]:= 0.22
In[2]:= fx[0.4] == 0.22
Out[2]:= True
Run Code Online (Sandbox Code Playgroud)
所以我对以下内容感到惊讶:
In[3]:= FindRoot[fx[u] == 0.22, {u,0.4}]
Out[3]:= {u->0.22}
Run Code Online (Sandbox Code Playgroud)
和
In[4]:= InverseFunction[fx][0.22]
Out[4]:= 0.22
Run Code Online (Sandbox Code Playgroud)
我什么也没找到相应文件,相互作用InverseFunction与BezierFunction,或Part.有人知道提取BezierFunction的x分量的逆的方法吗?
你被一个又一次出现的旧问题所困扰.您需要将函数限制为数字参数,或者您正在对未评估的表达式进行部分提取,仅仅是屈服u.
试试这个:
Clear[fx]
fx[u_?NumericQ] :=
BezierFunction[{{0, 0}, {1/8, 3/4}, {1, 1}}][u][[1]]
FindRoot[fx[u] == 0.22, {u, 0.3, 0.5}]
Run Code Online (Sandbox Code Playgroud)
(* Out[]= 0.4 *)
此外,InverseFunction实际上并没有找到函数的逆,而是反函数的符号表示.