cancel
Showing results for 
Search instead for 
Did you mean: 
Security Alert Log4j Security Vulnerability. Click here to know more.
cancel
Showing results for 
Search instead for 
Did you mean: 

How to interpolate (best-fit) a cloud of 3D points with a smooth 3D Surface?

boykomet
1-Newbie

How to interpolate (best-fit) a cloud of 3D points with a smooth 3D Surface?


It looks like Mathcad cannot do it.

4 REPLIES 4
Werner_E
24-Ruby IV
(To:boykomet)

There are no built-in commands like expfit, logfit or genfit which you may know from the 2D case, but you sure can make a fitting surface of a specific type using a solveblock with minnerr().

BTW interpolation is not fitting.

Hi Warner, Thank you for your help. In fact it is not a real clod of points. The points are series each one in a separate X-plane. In other words first each X-series point could be represent by a spline curve in YZ-plane (similar to spline-connected 2D plots in YZ-plane) and then those spline curves can be connected to represent a smooth 3D surface ( each XY-coordinate has a unique Z-coordinate on the surface ). Is that possible with Mathcad?

BTW do you use "fitting" in graph terminology when the points belong to the surface (line in 2D)? - If so, then fitting is the right term for what I want to do.

Thanks again

Please also note, that while the points are in X-plane series, they do not have Y-plane series (each point has its unique Y-coordinate). If they do, I can use Excel to plot the surface. In other words it is a similar to Excel 3D surface that I need, but each point is with unique Y-coordinate and they cannot form XY matrix which is necessary for Excel 3D plot.

Werner_E
24-Ruby IV
(To:boykomet)

Please also note, that while the points are in X-plane series, they do not have Y-plane series (each point has its unique Y-coordinate).

That would it make much more difficult if you are after some sort of interpolation and as you mentioned interpolation and splines in your posts I guess this is what you are after. One way to deal with that could be to 2D-interpolate in every yz-plane and use that interpolation to create an equally spaced y-grid. This of course would mean that the surface is not exactly containing all points but will only be close.

Searching a best fit, as your topic also says, would be something comparable to what linfit, polyfit, logfit. genfit, etc. do in the 2D case. You should know or suspect a specific type of underlying equation like f(x,y)=a*sin(b*x+c)*exp(e*y)+g and you are searching the parameters a,b,..g which makes this surface best fit the cloud of points. Usually you would try to use minerr() or minimize() to minimize the sum of squared errors (SSE) in z-direction to do so.

Announcements
Check out the latest
Mathcad Tip
"PTC Mathcad 15 / Prime 1-6 Update."