Polynomial and Spline Interpolation

Polynomial and Spline Interpolation:

A Chemical Reaction:

In a chemical reaction the concentration intensity y of the product at time t was measured each half hour. The subsequent results were found:

1970_spline interpolation.jpg

We are able to input this data into Mat lab as

> t1 = 0:.5:2
> y1 = [ 0 .19 .26 .29 .31 ]

and plot the data with:

>plot(t1,y1)

Mat lab automatically connects the data with line segments. This is the simplest type of interpolation meaning fitting a graph (of a function) between data points. What if we desire a smoother graph? Try

>plot(t1,y1,’*’)

which will produce now asterisks at the data points. After that click on Tools then click on the Basic Fitting option. This must produce a small window with several fitting options. Start clicking them one at a time clicking them off before clicking the next. Which ones generate a good looking fit? You must note that the spline the shape-preserving interpolant as well as the 4th degree polynomial produce very good curves. The others don’t. We will confer polynomial interpolation as well as spline interpolation in this lecture.

Polynomial Fitting:

The mainly universal degree n polynomial is:

pn(x) = anxn + an−1xn−1 + . . . + a1x + a0.

If we have precisely n + 1 data points that is enough to exactly determine the n + 1 coefficients of pn(x) (as long as the data doesn’t have repeated x values). If there are more data points that would give us an over determined system (more equations than unknowns) as well as if there is less data the system would be undetermined.

On the other hand if we have n data points then an n−1 degree polynomial has exactly sufficient coefficients to fit the data. This is the case in the instance above there are 5 data points therefore there is exactly one 4th degree polynomial that fits the data.

When we tried to use a 5th or higher degree polynomial Matlab returned a warning that the polynomial is not unique since ‘degree >= number of data points’.

When we tried a lower degree polynomial we didn’t get a warning however we did notice that the resulting curve doesn’t hit all the data points. If there was an in excess of determined system how did Mat lab come up with a pretty good approximation (for cubic)? The respond is the Least Squares Method.

Predicting the future?

Suppose we want to utilize the data to extrapolate into the future. Locate the plot to the 4th degree polynomial. Then click the Edit button as well as select the Axes Properties option. A box must appear that allows you to adjust the domain of the x axes. Modify the upper limit of the x-axis from 2 to 4. On the Basis of 4th degree polynomial what will the chemical reaction do in the future?

Is this reasonable?

After that change from 4th degree polynomial to spline interpolant. As-per to the spline what will the chemical reaction do in the future? Try the shape-preserving interpolant as well.

From our (limited) knowledge of chemical reactions what must be the behaviour as time goes on? It must reach a limiting value (chemical equilibrium). Could we utilize the data to predict this equilibrium value? Of course we could along with it is done all the time in many different contexts although to do so we need to know that there is equilibrium to predict. This requires that we recognize the chemistry of the problem. Therefore we have the following principle: To extrapolate beyond the data one must have a few knowledge of the process.

More data:

In general one would think that more data is better. Input the subsequent data vectors

> t2 = [ 0 .1 .4 .5 .6 1.0 1.4 1.5 1.6 1.9 2.0]
> y2 = [ 0 .06 .17 .19 .21 .26 .29 .29 .30 .31 .31]

There are 11 data points therefore a 10-th degree polynomial will fit the data. However, this does not give a good graph. Thus: A polynomial fit is better for small data sets.

Ultimately we note that every data point (xi, yi) gives an equation:

pn(xi) = a0 + a1xi + a2x2i + • • • + anxni = yi.

The unknowns are the coefficients a0, . . . , an. This equation is linear in these unknowns, so determining a polynomial fit requires solving a linear system of equations. This makes polynomial fits speedy to calculate since solving linear systems is what computers do best.

A challenging data set:

Input the subsequent data set:

> x = -4:1:5
> y = [ 0 0 0 1 1 1 0 0 0 0]

and plot it:

>plot(x,y,’*’)

There are 10 data points therefore there is a unique 9 degree polynomial that fits the data. Under Tools as well as Basic Fitting select the 9th degree polynomial fit. How does it appear? De-select the 9th degree polynomial as well as select the spline interpolant. This must produce a much more satisfactory graph and the shape-preserving spline must be even better. In this section we study what a spline is.

The idea of a spline:

The general idea of a spline is these on every interval between data points represent the graph with a simple function. The simplest spline is something extremely familiar to you it is acquired by connecting the data with lines. Since linear is the main simple function of all linear interpolation is the simplest form of spline. The subsequent simplest function is quadratic. If we put a quadratic function on every interval then we should be able to make the graph a lot smoother. If we were actually careful then we should be able to make the curve smooth at the data points themselves by matching up the derivatives. This is able to be done and the result is called a quadratic spline. Utilizing cubic functions or 4th degree functions should be smoother still. Therefore where should we stop? There is an approximately universal consensus that cubic is the optimal degree for splines as well as so we focus the rest of the lecture on cubic splines.

Cubic spline:

Once more the essential idea of the cubic spline is that we represent the function by a different cubic function on every interval between data points. Specifically if there are n data points then the spline S(x) is the function

532_cubic spline.jpg

where every Ci is a cubic function. The generally general cubic function has the form

Ci(x) = ai+ bix + cix2 + dix3.

To determine the spline we should determine the coefficients, ai, bi, ci, and di for each i. Since there are n intervals, there are 4n coefficients to determine. First we require that the spline be exact at the data:

Ci(xi−1) = yi−1 and Ci(xi) = yi,

at every data point. In other words,

ai+ bixi−1 + cix2i −1 + dix3i−1 = yi−1 and ai+ bixi+ cix2i + dix3i = yi.

Note that there are 2n of these conditions. Then to make S(x) as smooth as probable we require:

C′i(xi) = C′i+1(xi)
C′′i(xi) = C′′ i+1(xi),

at each the internal points, i.e. x1, x2, x3, . . . , xn−1. In terms of the points these conditions are able to be written as:
bi+ 2cixi+ 3dix2i = bi+1 + 2ci+1xi+ 3di+1x2i

2ci+ 6dixi= 2ci+1 + 6di+1xi.

There are 2(n − 1) of these conditions. Since each Ciis cubic there are a total of 4n coefficients in the formula for S(x). Therefore far we have 4n − 2 equations thus we are 2 equations short of being able to determine all the coefficients. At the present we have to make a choice. The typical choice is to require

C′′1 (x0) = C′′n(xn) = 0.

These are called natural or else simple boundary conditions. The other common alternative is called clamped boundary conditions:

C′1(x0) = C′n(xn) = 0.

The terminology used here is observably parallel to that used for beams. That isn’t the only parallel between beams and cubic splines. It is an interesting statement that a cubic spline is exactly the shape of a (linear) beam restrained to match the data by simple supports.

Note that the equations above are every linear equations with respect to the unknowns (coefficients). This feature makes splines simple to calculate since solving linear systems is what computers do best.

Latest technology based Matlab Programming Online Tutoring Assistance

Tutors, at the www.tutorsglobe.com, take pledge to provide full satisfaction and assurance in Matlab Programming help via online tutoring. Students are getting 100% satisfaction by online tutors across the globe. Here you can get homework help for Matlab Programming, project ideas and tutorials. We provide email based Matlab Programming help. You can join us to ask queries 24x7 with live, experienced and qualified online tutors specialized in Matlab Programming. Through Online Tutoring, you would be able to complete your homework or assignments at your home. Tutors at the TutorsGlobe are committed to provide the best quality online tutoring assistance for Matlab Programming Homework help and assignment help services. They use their experience, as they have solved thousands of the Matlab Programming assignments, which may help you to solve your complex issues of Matlab Programming. TutorsGlobe assure for the best quality compliance to your homework. Compromise with quality is not in our dictionary. If we feel that we are not able to provide the homework help as per the deadline or given instruction by the student, we refund the money of the student without any delay.