Wolfram mathematica 如何计算Bezier函数[]的x分量的逆?

Wolfram mathematica 如何计算Bezier函数[]的x分量的逆?,wolfram-mathematica,Wolfram Mathematica,我试图计算BezierFunction[]的x分量的倒数,例如,由 fx[u_] := BezierFunction[{{0, 0}, {1/8, 3/4}, {1, 1}}][u][[1]] 这是下图中的蓝色曲线: 这条曲线显然有一个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 因此

我试图计算
BezierFunction[]
的x分量的倒数,例如,由

fx[u_] := BezierFunction[{{0, 0}, {1/8, 3/4}, {1, 1}}][u][[1]]
这是下图中的蓝色曲线:

这条曲线显然有一个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
因此,我对以下几点感到惊讶:

In[3]:= FindRoot[fx[u] == 0.22, {u,0.4}]
Out[3]:= {u->0.22}


我在文档中没有找到关于
InverseFunction
BezierFunction
部分的交互的任何内容。有人知道提取Bezier函数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}]
(*Out[]=0.4*)

另外,
InverseFunction
实际上并没有找到函数的逆函数,而是逆函数的符号表示。

Oops,我在Bezier函数点中有一个输入错误。修正如上:中间点应为{1/8,3/4},以匹配绘图和给出的示例。谢谢@Mr.I将把?NumericQ概念记在记忆中。
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}]
(* Out[]= 0.4 *)