0
$\begingroup$

I have a function of several variables defined by k different couples. I want to invert it. I guess this is an inverse problem. But I don't know what to look for to solve it. Here is a more formal explanation of my problem:

Let f be a bijective function from $R^n$ to $R^n$. f is characterized by k different couples $[{(x1,x2,...xn),(y1,y2,...yn)}]_k$ verifying $f(x1,x2,...xn)=(y1,y2,...yn)$. For a given (y1,y2,...yn), calculate $f^{-1}(y1,y2,...n)$.

I calculate many couples $[{(x1,x2,...xn),(y1,y2,...yn)}]_k$ with finite element method. So I can only determine y from x. But I know this is a bijection. Then I stock this couples in a table. But I want to invert the table to obtain x from y.

What kind of method can be applied here ? Thank you.

$\endgroup$

2 Answers 2

2
$\begingroup$

Step one is to rephrase your problem as "I have a function of several variables defined by $k$ couples$, characterised by

$$(x_1,\dots,x_n) = g(y_1,\dots,y_n)$$

and I want to evaluate $g$ at arbitrary inputs." The fact that $g$ is the inverse of another function $f$ is irrelevant.

Now depending on what assumptions you want to make about $g$, there are several routes you could go down. If you know that the relations between the $x$'s and $y$'s are exact (ie there is no noise) and you have sufficient resolution, you can look at interpolation methods. The simplest method would be linear interpolation. If you want a smoother interpolation, you could consider bicubic interpolation ($n=2$) or tricubic interpolation ($n=3$) or their higher dimensional variants, but be aware that you will do more `smoothing out' in higher dimensions.

Alternatively, if there is noise in your data you could pick a functional form for $g$ (eg perhaps you have reason to think that it's linear, or gaussian, or...) and fit the parameters in order to minimize eg the least-squares error at the points you have data for.

If you give some more info about the specific problem you're trying to solve, I will be able to give a more helpful answer.

$\endgroup$
2
  • $\begingroup$ Sorry I dont think you understood my question. I edited it. I hope its clear now. Any suggestion? $\endgroup$
    – ths1104
    Commented May 30, 2012 at 10:44
  • 1
    $\begingroup$ If you know that you have a bijection, then your best bet (assuming that you have sufficiently many data points) is some kind of interpolation, as I mentioned in my second paragraph. $\endgroup$ Commented May 30, 2012 at 10:55
0
$\begingroup$

You can rewrite this as a system of equations where:

$g_i(y_1, y_2, ... y_n) - x_i = 0$

If each of these $g_i$'s is a polynomial, you can directly solve this problem using Buchberger's algorithm/Grobner basis. (See the wiki page: http://en.wikipedia.org/wiki/Gr%C3%B6bner_basis in the section labelled "Solving equations")

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .