Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

I am trying to interpolate a function defined over a three-dimensional real space: $$f: R^3\rightarrow R\\(x,y,z)\rightarrow f(x,y,z)$$ Let assume I have $N_1 N_2 N_3$ points in the space which form my grid for this interpolation, and the multivariate series $$F(x,y,z)=\sum_{a=0}^{N_1-1} \sum_{b=0}^{N_2-1} \sum_{c=0}^{N_3-1} C_{abc} x^a y^b z^c$$ is the chosen interpolator. In order to find the coefficients I should form the following sets of equations: $$\sum_{a=0}^{N_1-1} \sum_{b=0}^{N_2-1} \sum_{c=0}^{N_3-1} C_{abc} x_i^a y_i^b z_i^c=f_i=f(x_i,y_i,z_i)\,\mbox{, where, }i=1,\ldots,N_1 N_2 N_3\,,$$ and then solve for the coefficients. However, for this I first need to write the above set of linear equations in the standard form $$A\vec{x}=\vec{b}$$ wherein, $A$ is the matrix of coefficients, $\vec{x}$ is the vector of unknowns, and $b=\{f_i\}_1^{N_1 N_2 N_3}$ is the known vector. For this to be done I would require to expand the multivariate power series in the form of a single variable series, that is, $$\sum_{a=0}^{N_1-1} \sum_{b=0}^{N_2-1} \sum_{c=0}^{N_3-1} C_{abc} x_i^a y_i^b z_i^c=\sum_{m=0}^{(N_1-1)(N_2-1)(N_3-1)} C_m \eta_i^m$$ wherein $\eta_i=\eta_i(x_i,y_i,z_i)$ and probably $m=a b c$. OF course the expansion needs to be nontrivial and useful.

Is it possible at all? Any suggestion to find the coefficients more practically?

Regards, owari


UPDATE.

Maybe it appears that the most natural way for solving this problem is comprised of the following steps:

  1. first solve for the coefficients of $$\sum_{a=0}^{N_1-1} E_a(y,z) x_i^a=f(x_i,y,z)\,\mbox{, where, }i=1,\ldots,N_1\,,$$

  2. then solve for the coefficients of $$\sum_{b=0}^{N_2-1} D_{ab}(z) y_i^b=E_a(y_i,z)\,\mbox{, where, }i=1,\ldots,N_2\,\mbox{, and, }a=0,\ldots,N_1-1$$

  3. and finally solve for the coefficients of $$\sum_{c=0}^{N_2-1} C_{abc} z_i^c=D_{ab}(z_i)\,\mbox{, where, }i=1,\ldots,N_3\,,\,a=0,\ldots,N_1-1\mbox{, and, }b=0,\ldots,N_2-1$$

which gives the coefficients we were looking for. However, this way, the first two steps will be working with function-type coefficients instead of numerical coefficients and that will prevent efficient usage of the available codes in numerical analysis. Solving for each set of coefficients at each step for different grid points would also inevitably increase the number of equations drastically, so any better suggestion to solve for this problem?

share|improve this question

1 Answer 1

Ok, if the function that is to be interpolated can be factorized independently in different variables, like $f(x,y,z)=f_x(x) f_y(y) f_z(z)$, the solution would be easy as the triple sum would be easily written as the multiplication of three sums and the equations can be written in the form that follows: $$\sum_{a=0}^{N_1-1} {C_x}_a x_i^a \sum_{b=0}^{N_2-1} {C_y}_b y_i^b \sum_{c=0}^{N_3-1} {C_z}_c z_i^c=f_i=f_x(x_i) f_y(y_i) f_z(z_i)\,\mbox{, where, }i=1,\ldots,N_1 N_2 N_3\\\Rightarrow\left\lbrace\begin{split}&\sum_{a=0}^{N_1-1} {C_x}_a x_i^a=f_x(x_i)\\&\sum_{b=0}^{N_2-1} {C_y}_b y_i^b=f_y(y_i)\\&\sum_{c=0}^{N_3-1} {C_z}_c z_i^c=f_z(z_i)\end{split}\right.$$ and finally we would have: $C_{abc}={C_x}_a {C_y}_b {C_y}_b$. This is good and efficient, however it works for only a limited class of functions, any idea to extend it to a more general case?

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.