help on interpolation
Hello,
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, Jean-François |
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 15:01. |