Interpolar coordenadas 3D entre intervalos de tempo ausentes conhecidos

Os dados são um caminho no espaço. Eu tenho dados de localização 3D (x, y, z) e a hora em que o ponto de localização foi gravado.

As coordenadas x, ye z são os locais dos pontos de algo viajando pelo espaço 3D. Os valores de tempo são o tempo (começando em 0) em que cada ponto foi registrado.

x     y    z    time(s)
0.1   2.2  3.3  0
2.4   2.4  4.2  0.3
4.5   2.5  1.8  0.6

Acabarei perdendo alguns eventos de gravação. (isso é conhecido e aceito como verdadeiro) E o fluxo de dados continuará em um intervalo de tempo diferente:

x     y    z    time(s)
0.1   2.2  3.3  0
2.4   2.4  4.2  0.3
//missing x,y,z data point at time 0.6
//missing x,y,z data point at time 0.9
4.5   2.5  1.8  1.2
...
...

Observe que os dados foram simplificados. Meu objetivo é interpolar os pontos 3D ausentes nos horários ausentes. Analisei várias técnicas de interpolação, mas não tenho certeza de qual método de interpolação é adequado para o meu problema.

1) Alguém pode explicar sucintamente que tipo de problema é esse? Minha matemática é extremamente enferrujada e não sei como descrevê-la adequadamente, o que me leva a investigar técnicas de interpolação que podem não ser adequadas.

2)Atualização 1 A interpolação tricúbica não deve ser aplicada aqui, pois não estou trabalhando com uma grade no espaço 3D. Eu estou trabalhando com uma trajetória. Eu encontrei umImplementação de interpolação tricúbica no commons Apache math3, no entanto, não tenho certeza se é disso que preciso. Se você examinar os argumentos necessários, será necessária uma matriz fval dupla [] [] [] da qual não tenho certeza.

3) Se não for o mais adequado para Java, qual é a melhor ferramenta para interpolar esses dados?

Atualização 2 - Pergunta sobre a solução do Spectre

Na sua edição, você fornece a seguinte dica sobre "correspondência das primeiras derivações de pontos conjuntos":

vamos definir nossat=<-2,+2>&nbsp;e amostrar o ponto de controle como este (realmente não importa como isso afetará apenas a magnitude dos coeficientes e incluindo-1,0,1&nbsp;facilitará muito as equações):

p(-2) = p0
p(-1) = p1
p( 0) = p2
p( 1) = p3

Agora vamos supor que queremos interpolar todos os pontos no intervalot=<0,1>&nbsp;então todos os pontos entrep2&nbsp;ep3. E queremos uma curva contínua por partes, para que as primeiras derivações nos pontos conjuntos sejam iguais. Temos mais um ponto de controle no lado esquerdo para que a segunda derivação também possa corresponder:

p'(0) = 0.5*((p3-p2)+(p2-p1)) = 0.5*(p3-p1)
p'(1) = 0.5*((p4-p3)+(p3-p2)) = 0.5*(p4-p2)
p''(0)= 0.5*(((p2-p1)-(p1-p0))+((p4-p3)-(p3-p2)))
      = 0.5*((p2-2*p1+p0)+(p4-2*p3+p2))
      = 0.5*(p0+p4)-p1+p2-p3

Espero não ter cometido nenhum erro bobo na segunda derivação. Agora basta substituirp(t)&nbsp;com pontos de controle conhecidos e formar sistema de equações e calculara0,a1,a2,a3,a4&nbsp;algebricamente dep0,p1,p2,p3,p4.

1) O que você quer dizer comjoint points?

2) Onde

p'(0) = 0.5*((p3-p2)+(p2-p1)) = 0.5*(p3-p1)
p'(1) = 0.5*((p4-p3)+(p3-p2)) = 0.5*(p4-p2)

vem de onde? Eles de alguma forma se relacionam comp(0) = p2&nbsp;ep(1) = p3&nbsp;? Eles podem ser qualquer coisa que você escolheu?

Pode ser reescrito comop'(0) = 0.5*((p(3)-p(0)) + (p(0)-p(-1))&nbsp;corrigir? Não está claro para mim por que isso está sendo feito. Ou mesmo por quepode&nbsp;ser feito

2b) Pergunta semelhante para

p''(0)= 0.5*(((p2-p1)-(p1-p0))+((p4-p3)-(p3-p2)))
      = 0.5*((p2-2*p1+p0)+(p4-2*p3+p2))
      = 0.5*(p0+p4)-p1+p2-p3

mas suponho que a pergunta esclarecedora 2) alivie minha ambiguidade em 2b) porque também não tenho idéia de onde a equação veio.

O que se segue é bastante direto, então são apenas sistemas de equações