cyanyoshi wrote:Thanks for the suggestion! I'm not sure how to get around the fact that x and y are in vector spaces of different dimension, though. I know that invertible transformations do exist, but I couldn't even begin to figure out how to construct T(t) which is invertible for t>0, but approaches something linear at t=0.

I already gave you an example of T. Just write the matrix down using “t” as a variable, calculate its inverse, and solve your original problem. If that solution has a limit as t→0, then you are basically done.

The dimensionality difference is the entire point of using a continuous family of transforms. The lower-dimensional space embeds within the higher-dimensional space, as a subspace orthogonal to the direction of the projection. The projection squashes space flat, but nearby transformations still have full rank. So we can perturb the flattening projection very slightly and see what happens when it is “nearly flat”.

The specific example of T that I posted, namely T(t) = t·I + (1−t)·C, is the natural “flattening” action that you would see in an animation of how C affects space. As you squash space flatter and flatter, everything moves directly toward the flat destination subspace. As long as you haven’t gotten all the way to complete flatness, all the dimensions are still present and you can solve the problem as you described.

And since you are doing the squashing in a continuous manner, you can take the limit as you approach full flatness. Does that make sense?

• • •

This may not work, if it makes everything blow up to infinity. I haven’t actually tried it, it just seemed like perturbation might be tractable.