Interpolation Methods Robert A. Dalrymple Johns Hopkins University.

Post on 15-Dec-2015

214 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

Transcript

Interpolation Methods

Robert A. Dalrymple

Johns Hopkins University

Why Interpolation?

• For discrete models of continuous systems, we need the ability to interpolate values in between discrete points.

• Half of the SPH technique involves interpolation of values known at particles (or nodes).

Interpolation

• To find the value of a function between known values.

Consider the two pairs of values (x,y):

(0.0, 1.0), (1.0, 2.0)

What is y at x = 0.5? That is, what’s (0.5, y)?

Linear Interpolation

Given two points, (x1,y1), (x2,y2): Fit a straight line between the points.

y(x) = a x +b

a=(y2-y1)/(x2-x1), b= (y1 x2-y2 x1)/(x2-x1), Use this equation to find y values for any

x1 < x < x2

Polynomial Interpolants

Given N (=4) data points,

Find the interpolating function that goes through the points:

If there were N+1 data points, the function would be

with N+1 unknown values, ai, of the Nth order polynomial

Polynomial InterpolantForce the interpolant through the four points to get four equations:

Rewriting:

The solution is found by inverting p

Example

Data are: (0,2), (1,0.3975), (2, -0.1126), (3, -0.0986).

Fitting a cubic polynomial through the four points gives:

Matlab code for polynomial fitting

% the data to be interpolated (in 1D) x=[-0.2 .44 1.0 1.34 1.98 2.50 2.95 3.62 4.13 4.64 4.94]; y=[2.75 1.80 -1.52 -2.83 -1.62 1.49 2.98 0.81 -2.14 -2.93 -1.81]; plot(x,y,'bo') n=size(x,2)% CUBIC FIT p=[ones(1,n) x x.*x x.*(x.*x)]' a=p\y' %same as a=inv(p)*y' yp=p*a hold on; plot(x,yp,'k*')

Note: linear and quadratic fit: redefine p

Polynomial Fit to Example

Exact: redPolynomial fit: blue

Beware of Extrapolation

An Nth order polynomial has N roots!

Exact: red

Least Squares InterpolantFor N points, we will have a fitting polynomial of order m < (N-1).

The least squares fitting polynomial be similar to the exact fit form:

Now p is N x m matrix. Since we have fewer unknown coefficient as data points, the interpolant cannot go through each point. Define the error as the amount of “miss”

Sum of the (errors)2:

Least Squares InterpolantMinimizing the sum with respect to the coefficients a:

Solving,

This can be rewritten in this form,

which introduces a pseudo-inverse.

Reminder:

for cubic fit

Question

Show that the equation above leads to the following expression for the best fit straight line:

Matlab: Least-Squares Fit

%the data to be interpolated (1d) x=[-0.2 .44 1.0 1.34 1.98 2.50 2.95 3.62 4.13 4.64 4.94]; y=[2.75 1.80 -1.52 -2.83 -1.62 1.49 2.98 0.81 -2.14 -2.93 -1.81]; plot(x,y,'bo') n=size(x,2)% CUBIC FIT p=[ones(1,n) x x.*x x.*(x.*x)]' pinverse=inv(p'*p)*p' a=pinverse*y' yp=p*a plot(x,yp,'k*')

Cubic Least Squares Example

x: -0.2 .44 1.0 1.34 1.98 2.50 2.95 3.62 4.13 4.64 4.94y: 2.75 1.80 -1.52 -2.83 -1.62 1.49 2.98 0.81 -2.14 -2.93 -1.81

Data irregularly spaced

Least Squares InterpolantCubic Least Squares Fit: * is the fitting polynomial o is the given data

Exact

Piecewise Interpolation

Piecewise polynomials: fit all points

Linear: continuity in y+, y- (fit pairs of points)

Quadratic: +continuity in slope

Cubic splines: +continuity in second derivative

RBFAll of the above, but smoother

Radial Basis FunctionsDeveloped to interpolate 2-D data: think bathymetry.Given depths: , interpolate to a rectangular grid.

QuickTime™ and aTIFF (Uncompressed) decompressor

are needed to see this picture.

Radial Basis Functions 2-D data:

For each position, there is an associated value:

Radial basis function (located at each point):

where is the distance from xj

The radial basis function interpolant is:

RBF

To find the unknown coefficients i, force the interpolant to go through the data points:

where

This gives N equations for the N unknown coefficients.

RBF

Morse et al., 2001

Multiquadric RBF

MQ:

RMQ:

Hardy, 1971; Kansa, 1990

RBF Example11 (x,y) pairs: (0.2, 3.00), (0.38, 2.10), (1.07, -1.86), (1.29, -2.71), (1.84, -2.29), (2.31, 0.39), (3.12, 2.91), (3.46, 1.73), (4.12, -2.11), (4.32, -2.79), (4.84, -2.25) SAME AS BEFORE

RBF ErrorsLog10 [sqrt (mean squared errors)] versus c: Multiquadric

RBF ErrorsLog10 [ sqrt (mean squared errors)] versus c: Reciprocal Multiquadric

ConsistencyConsistency is the ability of an interpolating polynomial to reproduce a polynomial of a given order.

The simplest consistency is constant consistency: reproduce unity.

where, again,

If gj(0) = 1, then a constraint results:

Note: Not all RBFs have gj(0) = 1

RBFs and PDEsSolve a boundary value problem:

The RBF interpolant is:

N is the number of arbitrarily spaced points; thej are unknown coefficients to be found.

RBFs and PDEs

Introduce the interpolant into the governing equation andboundary conditions:

These are N equations for the N unknown constants, j

RBFs and PDEs (3)

Problem with many RBF is that the N x N matrix thathas to be inverted is fully populated.

RBFs with small ‘footprints’ (Wendland, 2005)

1D:

3D:

His notation:

Advantages: matrix is sparse, but still N x N

Wendland 1-D RBF with Compact Support

h=1Max=1

Moving Least Squares Interpolant

are monomials in x for 1D (1, x, x2, x3)x,y in 2D, e.g. (1, x, y, x2, xy, y2 ….)

Note aj are functions of x

Moving Least Squares Interpolant

Define a weighted mean-squared error:

where W(x-xi) is a weighting function that decayswith increasing x-xi.

Same as previous least squares approach, except for W(x-xi)

Weighting Function

q=x/h

Moving Least Squares InterpolantMinimizing the weighted squared errors for the coefficients:

,, ,

Moving Least Squares InterpolantSolving

The final locally valid interpolant is:

Moving Least Squares (1)

% generate the data to be interpolated (1d) x=[-0.2 .44 1.0 1.34 1.98 2.50 2.95 3.62 4.13 4.64 4.94]; y=[2.75 1.80 -1.52 -2.83 -1.62 1.49 2.98 0.81 -2.14 -2.93 -1.81]; plot(x,y,'bo') n=size(x,2)% QUADRATIC FIT p=[ones(1,n) x x.*x]' xfit=0.30; sum=0.0 % compute msq error for it=1:18, % fiting at 18 points xfit=xfit+0.25; d=abs(xfit-x) for ic=1:n q=d(1,ic)/.51;% note 0.3 works for linear fit; 0.51 for quadratic if q <= 1. Wd(1,ic)=0.66*(1-1.5*q*q+0.75*q^3); elseif q <= 2. Wd(1,ic)=0.66*0.25*(2-q)^3; else Wd(1,ic)=0.0; end end

MLS (2)

Warray=diag(Wd); A=p'*(Warray*p) B=p'*Warray acoef=(inv(A)*B)*y' % QUADRATIC FIT yfit=acoef'*[1 xfit xfit*xfit]' hold on; plot(xfit, yfit,'k*') sum=sum+(3.*cos(2.*pi*xfit/3.0)-yfit)^2; end

MLS Fit to (Same) Irregular Data

Given data: circles; MLS: *; exact: line

h=0.51

.3

.5

1.0

1.5

Varying h Values

Conclusions

There are a variety of interpolation techniques for irregularly spaced data:

Polynomial Fits

Best Fit Polynomials

Piecewise Polynomials

Radial Basis Functions

Moving Least Squares

top related