Как рассчитать инверсию x-компонента функции Безье []? - PullRequest
3 голосов
/ 06 ноября 2011

Я пытаюсь вычислить инверсию x-компонента BezierFunction[], определенного, например,

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

- синяя кривая на следующем графике:

fx(u) from BezierFunction

Эта кривая явно имеет уникальную обратную величину для 0 & le; u & le; 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}

и

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

В документации по взаимодействию InverseFunction с BezierFunction или Part я ничего не нашел. Кто-нибудь знает способ извлечения инверсии x-компонента BezierFunction?

1 Ответ

5 голосов
/ 06 ноября 2011

Вас укусила старая проблема, которая возникает снова и снова.Вам нужно ограничить функцию числовыми аргументами, или вы выполняете извлечение части для неоцененного выражения, получая просто u.

Попробуйте:1008 * Кроме того, InverseFunction на самом деле не находит инверсию функции, а скорее является символическим представлением инверсии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...