I'm a software engineer with math classes through differential equations about 15 years in my past, and I've gotten stuck trying to invert an equation.
The equation: $y = x + (0.022 - x)^{1.414}$.
In Mathematica form:
sapcClamp[y] := y + ((22 / 100) - y) ^ (1414 / 100);
Solve[sapcClamp[y] == x, y]
Note:
0 <= x < 0.022
- Phyiscally relevant x/y values range from 0.0 to 1.0.
This hangs Mathematica indefinitely until the kernel is quit and restart, which indicates strongly there's no easy solution here.
Messing around on paper, with Reduce, FindRoot, Googling, Youtube, on paper has gotten me ~nowhere. Yet this doesn't feel complicated enough to me that there's simply no way to solve it.
Any tips?
1414/1000
=707/500
is in effect a degree-707 polynomial. That means it's simple enough for there to be a way to solve it (but not in terms of the usual elementary functions); but it has 707 (complex) solutions. The following returns 707:Solve[(y-x)^500 == (11/500-x)^707, x]
. If1.414
represents an approximate real number, then things are more complicated. (Do you know that solutions to polynomial equations of degree 5 and up cannot be expressed in terms of n-th roots, except in special cases? Your problem is not simple.) $\endgroup$FoxH
-function: The roots of general trinomial equation $z^n-z-t=0$ are given byroots = Exp[(2 \[Pi] I)/(n - 1)]^-j + t/(n - 1)FoxH[{{{0, 1}, {0, n/(n - 1)}}, {}}, {{{0, 1}}, {{-1, 1}, {0, 1/(n - 1)}}}, t Exp[(2 \[Pi] I)/(n - 1)]^j];
In your case $z=0.022-x$, $y= t- 0.022$ and $n=1.414$. So, you needFoxH
$\endgroup$Solve[]
(based on the exponent 1414/1000 given in the OP) is probably real. It takes up about 1.1MB, and the first time I evaluated it at 32-digit precision, it ran out of precision (I think) after several minutes. I gave up, since it's a silly way to go anyway. $\endgroup$sapcClamp[]
? You can use the line through the end points to give a good starting point, since your function is almost straight anyway. $\endgroup$