 
 
 
 
 
 
Two dimensional Splines
- To: mathgroup at smc.vnet.net
- Subject: [mg109121] Two dimensional Splines
- From: zosi <zosi at to.infn.it>
- Date: Mon, 19 Apr 2010 04:06:53 -0400 (EDT)
After having sailed into Mathgroup and Help, we still face the
following problem.
Suppose we have a set of 3D points (x_i, y_j, f[x_i,y_j])
with i=1...N, j=1...M and we need to
a) interpolate the surface by **using**
<<Splines`  and SplineFit[...,cubic]
   a.1) plot the interpolating (spline) surface
   a.2) extract the coefficients of the bicubic polynomials
          over each sub-domain
b) calculate the integral of the interpolating spline.
In the following, we show the steps and the difficulties encountered
(* Begin:  Suppose we start with the trivial function *)
f[x_, y_] :=  Sin[x + y]^2
plotfxy =
  Plot3D[f[x, y] , { x, 0 , \[Pi] }, {y, 0, 2 \[Pi] }, PlotPoints -> 50 ]
(* For subsequent comparisons we calculate immediately the integral
    with 20 digits  *)
numintegral  =
   N[Integrate[f[x, y], {x, 0 , \[Pi]} , {y, 0 , 2 \[Pi]} ], 20]
(* Output 9.8696044010893586188 *)
(*  Here we create the grid, very coarse, only 25 points (5x5)
     for 16 sub-domains *)
grid3D =
  Flatten[Table[{x, y, f[x, y]}, {x, 0, \[Pi], \[Pi]/4}, {y, 0, 2 \[Pi], 
\[Pi]/2}], 1]
(* The following use of << Splines` is mandatory *)
<< Splines`
bicubic = SplineFit[grid3D, Cubic];
(* Output: SplineFunction[Cubic, {0., 24.},<>]  *)
First question (a.1): How can we plot the spline interpolating surface ?
Several trials using ParametricPlot3D[bicubic[s],....] have failed.
Second question (a.2): How do we extract the coefficients of the bicubic 
polynomials
                        over each of the 16 sub-domains ?
We have, first
coefpoly = InputForm[bicubic] // N;
Even when we try to extract the first List (containing three Lists),
     probably relevant to the bicubic polynomial  over the
     first (0,\Pi/4) x (0,\Pi/2) sub-domain, for  example:
coefpoly[[1, 4, 1]]
(* Output {{0., 0.00512628, 0., -0.00512628},
                  {0., 1.51953, 0., 0.0512628},
                  {0., 1.72638, 0., -0.726383}}
*)
we are not able to construct the relevant
bicubic(x,y) polynomial  and, obviously, the remaining polynomials.
Final question: Is there a single command to evaluate the integral
                      of  "bicubic"  over the domain [0,\Pi]x[0,2 \Pi] ?
Many thanks for your patience and help.
Gianfranco Zosi
Dip. Fisica Generale
Universita di Torino

