Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

share|cite|improve this question

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.

share|cite|improve this answer
Sorry I dont think you understood my question. I edited it. I hope its clear now. Any suggestion? – ths1104 May 30 '12 at 10:44
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. – Chris Taylor May 30 '12 at 10:55

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: in the section labelled "Solving equations")

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.