2011-11-06 3 views
3

난의 역수를 계산하려고 오전 BezierFunction[]의 X 성분은 다음 플롯 파란색 곡선BezierFunction []의 x- 성분의 역함수를 계산하는 방법?

fx[u_] := BezierFunction[{{0, 0}, {1/8, 3/4}, {1, 1}}][u][[1]] 

, 예를 들면, 정의 :

fx(u) from BezierFunction

은 이 곡선은 예를 들어 {0.4,fx[0.4]} == {0.4, 0.22} 좌표에서 교차하는 적색 파선으로 도시 된 바와 같이, 0 ≤ u ≤ 1에 대한 고유 한 역함을 명확히 갖는다.

In[1]:= fx[0.4] 
Out[1]:= 0.22 

In[2]:= fx[0.4] == 0.22 
Out[2]:= True 

그래서 나는 다음에 의해 놀랜다 :

In[4]:= InverseFunction[fx][0.22] 
Out[4]:= 0.22 

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

내가 BezierFunction, 또는 Part으로 InverseFunction의 상호 작용에 대한 설명서에서 아무것도 찾을 수 없습니다. 누구든지 BezierFunction의 x- 구성 요소의 역함수를 추출하는 방법을 알고 있습니까?

+2

죄송합니다. BezierFunction 포인트에 오타가 있습니다. 위의 고정 : 중간 지점은 줄거리와 예제를 일치시키기 위해 {1/8,3/4}이어야합니다. – JxB

답변

5

몇 번이고 반복되는 오래된 문제에 물린 것입니다. 함수를 숫자 인수로 제한해야하거나 계산되지 않은 표현식에서 부분 추출을 수행하면 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 실제로 함수의 역을 찾을 수없는, 오히려 역의 상징적 인 표현입니다 :

이보십시오.

+0

감사합니다. 나는 NumericQ 개념을 메모리에 적용 할 것이다. – JxB

관련 문제