How to interpolate between curves of constant value?

Suppose I have a 2D graph containing multiple curves of constant value (like Fig. 4 here). What I’d like to do is, given a point (x,y), interpolate to find the third value (i.e. on a curve not shown).

(More precisely, I have a set of points defining those curves. In general, none of the x and y values are equal, but assume that any point to be interpolated is inside a region defined by four points. Is there a common approach to this sort of problem?

Interpolation is hard in general, because the approach depends on what you’re handed. For that particular graph, having all the curves come together at a single point will make interpolating difficult there. If I had to interpolate that data, I’d try to come up with some transformation that spread those curves near (0,0). Below V[sub]ds[/sub] = 1, the curves are very roughly related to the angle about (0,0), so I’d try to find some functional form that smoothly varied from V proportional to theta for V[sub]ds[/sub] small, to V proportional to I for V > 1. (IIRC, the rough division between the two regions is parabolic. It looks by eye like I = 2 V[sub]ds[/sub][sup]2[/sup].)

If you can find a function so that the ratio of the true values to the function is slowly varying, you can interpolate that instead, and that function combined with the function will get you an interpolation scheme.

Good luck.

I would just take a vertical slice through that graph, and then do a simple 1-d interpolation on that slice.

The OP says that in general, none of the X and Y values are equal.

But you can still use the points for each curve to form a spline interpolation of that curve, and use those curve to get a y position for any x you want on every curve.

In the absence of any particular knowledge of the physical system being modeled, I’d probably do something even simpler than that – forget that the points form curves at all, find the three closest points to the point I want and interpolate using the plane that intersects those three points. More importantly, I’d probably use a bunch of different interpolation schemes to verify that whatever I’m doing with the data doesn’t depend strongly on the specific interpolation method used.

Thanks for the help. To clarify, I’m not working with something like those transistor curves; that was just an example. (By the way quadratic is a decent model, Zenbeam, though it gets better with a few higher terms mixed in for varying voltage along the channel). My data, at least in the region of interest, is fairly well-separated. After linking to it, I looked at that page, and it did give me an idea.
The plan would be to connect the points with straight lines, and assume the ‘top’ and ‘bottom’ edges to be equal, forming a panel in 3D space. Then find the intersection with a normal line from the x,y point.
Which is basically the one leahcim gave. Since accuracy is not all that critical, and the curves are not too wild, I think this will work. I will do some sanity checks to make sure I’m getting decent numbers.

What if you did a curvilinear regression on the data points for each curve. that should give you a formula for each one and then you just have to plug in the x value.

edit, by which I mean, then you can take the vertical slice Chronos referred to.