Question: Mathematica problems Piecewise Cubic Interpolation without specifying derivatives In this part, you will improve upon the previous part in the following way. The aim is

Mathematica problems

Piecewise Cubic Interpolation without specifying derivatives

In this part, you will improve upon the previous part in the following way. The aim is to construct a continuous piecewise cubic function which is differentiable and interpolates a list of data points where each data point has the form (xi,yi). That is, the list of data will *not* include the derivates that must be interpolated as well; instead you must use the given data to provide reasonable values for those derivatives and then construct the piecewise cubic interpolating function using you work in the previous part. There are two main methods to do this: a naive method and a more sophisticated method. We describe each below. Naive method: The issue is that for each pair (xi,yi) we must assign a number ypi which will be the slope at that point. If (xi,yi) is not an end point, then there is a point before it (call it (xj,yj)) and a point after it (call it (xk,yk)), and then one can define ypi=(yk-yj)/(xk-xj). The slopes at end points can be determined by ypi=(yk-yi)/(xk-xi) or ypi=(yi-yj)/(xi-xj) as appropriate.

Sophisticated method: This method will likely involve more linear algebra to implement, but it is far more standard, and it generally yields a better result because the piecewise cubic function is not just continuous and differentiable, but it is twice differentiable! That is, the second derivative of the interpolating function is continuous (in fact, the second derivative is continuous and piecewise linear). This is achieved in the following manner. Suppose we are given n+1 data points to interpolate through. Then there are n intervals on which to define a cubic polynomial. Each such cubic polynomial gives rise to 4 unknowns. And because each interval has two end points specified (like (x1,y1) and (x2,y2) which will be given) it will generate 2 equations. Thus for each segment, we have 2 equations and 4 unknowns. Taking all the segments together, we then have 2n equations with 4n unknowns. However, because we want the resulting function to be differentiable, we will require that the appropriate derivates match up between segments. That is, we will want the derivative at the right end point of interval i to equal the derivative at the left end point of interval i+1. This yields n-1 more equations. And we can ask the second derivatives to match up as well. This yields another n-1 equations. All together, this yields 4n unknowns and 4n-2 equations. An ad hoc (but fairly standard) additional requirement is for the second derivative of the resulting function to be zero at the outermost end points. This requirement then yields two more equations, for a grand total of 4n equations and 4n unknowns. By solving this linear system, one obtains parameters so that the the resulting function is continuously twice differentiable and interpolates through the given list of data points. Such a result is often called a cubic spline.

Choose one of the above methods to implement on the following data set. Plot your result.

myData = Table[{x, Cos[x]}, {x, 0, 2*N[Pi], 2*N[Pi]/6}]

given code

myCubicInterpolator[x_, myData_] := Module[{x1, y1, yp1, x2, y2, yp2, a, b, c, d}, x1 = myData[[1]][[1]]; y1 = myData[[1]][[2]]; yp1 = myData[[1]][[3]]; x2 = myData[[2]][[1]]; y2 = myData[[2]][[2]]; yp2 = myData[[2]][[3]]; a = -((2 y1 - 2 y2 - x1 yp1 + x2 yp1 - x1 yp2 + x2 yp2)/(x1 - x2)^3); b = -((-3 x1 y1 - 3 x2 y1 + 3 x1 y2 + 3 x2 y2 + x1^2 yp1 + x1 x2 yp1 - 2 x2^2 yp1 + 2 x1^2 yp2 - x1 x2 yp2 - x2^2 yp2)/(x1 - x2)^3); c = -((6 x1 x2 y1 - 6 x1 x2 y2 - 2 x1^2 x2 yp1 + x1 x2^2 yp1 + x2^3 yp1 - x1^3 yp2 - x1^2 x2 yp2 + 2 x1 x2^2 yp2)/(x1 - x2)^3); d = -((-3 x1 x2^2 y1 + x2^3 y1 - x1^3 y2 + 3 x1^2 x2 y2 + x1^2 x2^2 yp1 - x1 x2^3 yp1 + x1^3 x2 yp2 - x1^2 x2^2 yp2)/(x1 - x2)^3); a*x^3 + b*x^2 + c*x + d ]

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Finance Questions!