help on interpolation
I would like some advices on bivariate interpolation.
I need to interpolate (and to calculate first derivative) on a non orthogonal structured mesh. The data are given on straight lines (nearly horizontal) passing through the mesh. I've got a lot of data on each line but only a few lines so the typical distance between two consecutive data points in the 2 "directions" is quite big.
I've tried routines found on netlib for "scattered data", but because I have only few data in one direction, I had to take a lot of points to make the interpolation and that cause wiggles in the solution.
What can do ? Make a correspondance between my domain and a square and then use a standard bivariate interpolation valid on rectangular mesh ? Is there a public fortran routine that do that and that I haven't found ?
Thanks for your time,
Re: help on interpolation
You can try to use Radial Basis Functions which give very high accuracy if the function to be interpolated is smooth. Try a search on google first. It is very simple to implement also. You expand the function in terms of radial functions and N unknowns coefficients, where N is the number of data points.
f(x) = Σ <sub>i</sub> A<sub>i</sub> Φ (|x - x<sub>i</sub>| )
f<sub>k</sub> = Σ <sub>i</sub> A<sub>i</sub> Φ (|x<sub>k</sub> - x<sub>i</sub>| ) k=1 to N
You get N equations, whose solution gives the coefficients. Now you can do interpolation or calculate derivatives by differentiation. The points can be scattered any way.
|All times are GMT -4. The time now is 16:46.|