Given a set of points $(X, Y, Z)$ obtained from the experimental data that can be considered as a 3D surface.
What is the common approach to get an approximating function Z=f(x,y) that describes the surface in the best way (with specified precision)?
An example i'm dealing with is shown above. Need to approximate only the growing up surface, without projection.

The projection on XY plane of a surface is shown separately here:
.
Well, there are many approaches to solve that problem. It depends on what you want, i.e. on the desired properties of the function $f(x,y)$. I can explain it better with a function $f$ of a single variable, but the principles are the same for two variables. So, let us assume that you have a set of points that describe a curve in the plane, and you want to approximate that curve by a function $f(x)$. You have several options:
You want your function $f(x)$ to pass exactly through each point. In that case you could take $f$ as an interpolating polynomial (e.g. Lagrange's). If you have $n+1$ points, they uniquely determine a polynomial $f$ of degree $n$. The disadvantage is that $f$ will have too many "bends", and it may take unexpected twists outside the interval determined by the points.
If it is not strictly necessary that $f(x)$ passes exactly through each point, then you can choose $f$ as a polynomial with degree smaller than $n$, say 2 or 3. This polynomial will behave more smoothly, but it will not pass exactly through every point. In this case you want the polynomial that better approximates the set of points, and that is usually done by least squares.
A compromise is to use a spline, i.e. a function $f$ defined by "pieces". A spline consists of several polynomial functions of low degree, that join seamlessly and smoothly at the control points. A spline is both smooth and passes through every point.
There are other functions with nice properties, such as Bézier curves.