surface_fit

<< Click to Display Table of Contents >>

Navigation:  Sample Problems > Applications > Misc >

surface_fit

Previous pageReturn to chapter overviewNext page

{ SURFACE_FIT.PDE  

 

 This problem illustrates the use of FlexPDE in a data fitting

 application.

 

 THE NUMERICAL SOLUTION OF THE BIHARMONIC EQUATION WITH A DISCONTINUOUS

 LINEAR SOURCE TERM USING FlexPDE.

 

 STATEMENT OF THE PROBLEM:

 

 Find the solution U of the fourth order elliptic PDE

 

       (dxx + dyy)(dxx + dyy) (U) = -beta*(U - C)      in O,       (1)

 

 where in the usual FlexPDE notation, dxx indicates 2nd partial derivative

 with respect to x, and where O is a given connected domain.  Equation (1)

 arises from the minimization of the strain energy function of a thin plate

 which is constrained to nearly pass thru a given set of discrete set of

 points specified by C and beta.    Namely,  a given  set of n data values

 [C(i)] is assigned at locations [(x(i), y(i))], i=1,..n ,

 and the factor beta has its support only at the locations (x(i), y(i)).

 

 Along with equation (1), we must prescribe a set of boundary conditions

 involving U and its derivatives which must be satisfied everywhere on the

 domain boundary.

 

}  

 

title " The Biharmonic Equation in Surface Fitting Designs and Visualization"  

 

variables  

   U  

   V  

 

definitions  

   eps = .001  

   beta0 = 1.e7  

   beta = 0.0  

   a = 1/sqrt(2.)  

   two = 2.5  

   b = two*a  

 

   xbox = array (0, 1, -1, 0,  0, a, -a, a, -a,  two, -two, 0, 0, b, -b, b, -b )  

   ybox = array (0, 0,  0, 1, -1, a, -a, -a, a,  0, 0, two, -two, b, -b, -b, b )  

 

   xi = .05   eta = .05  

   r0 =  x*x + y*y  

   C = exp(-r0/1.)*sin(pi*((x^2-y^2)/64.))  

 

initial values  

   U =  0  

   V =  .001  

 

equations  

   U:  del2(U) = V  

   V:  del2(V) = -beta*(U-C)  

 

boundaries  

  region 1  

    start (-4,0)  

    value(U) = C   value(V) = 0.  

    arc(center=0.,0.)     angle -360     to close  

 

  region 2  beta = beta0  

    repeat i=1 to 17  

        start (xbox[i]-xi,ybox[i]-eta)  

        line to (xbox[i]+xi,ybox[i]-eta)  

        to (xbox[i]+xi,ybox[i]+eta)  

        to (xbox[i]-xi,ybox[i]+eta) to close  

    endrepeat  

 

monitors  

  contour(U)  

  contour(C)  

  contour(C-U)   as "Error C - U"  

 

plots  

  contour (U) as "Potential"  

  surface(U) as "Potential"  

  surface(C)   as " Expected Surface"  

  contour(beta)  

  surface(beta)  

  surface(U-C)  

 

end