Interpolação bilinear inversa?

Tenho quatro pontos 2d, p0 = (x0, y0), p1 = (x1, y1) etc. que formam um quadrilátero. No meu caso, o quad não é retangular, mas deve ser pelo menos convex

  p2 --- p3
  |      |
t |  p   |
  |      |
  p0 --- p1
     s

Estou usando interpolação bilinear. S e T estão dentro de [0..1] e o ponto interpolado é dado por:

bilerp(s,t) = t*(s*p3+(1-s)*p2) + (1-t)*(s*p1+(1-s)*p0)

Aqui está o problema .. Eu tenho um ponto 2d que eu sei que está dentro do quad. Quero encontrar o s, t que me dará esse ponto ao usar a interpolação bilinear.

Existe uma fórmula simples para reverter a interpolação bilinea

Obrigado pelas soluções. Postei minha implementação da solução de Naaff como wiki.

questionAnswers(8)

yourAnswerToTheQuestion