Constructing cubic spline interpolation polynomials

  • Thread starter Thread starter bremenfallturm
  • Start date Start date
  • Tags Tags
    Cubic Interpolation
bremenfallturm
Messages
81
Reaction score
13
Homework Statement
Given the following points:
(-5,1.561), (-4,2) and (-3, 2.56).
Construct cubic spline interpolation polynomials between them.
Relevant Equations
General equations for a third-degree / cubic polynomial:
##y=ax^3+bx^2+cx+d##
##\frac{dy}{dx}=3ax^2+2bx+c##
##\frac{d^2y}{dx^2}=6ax+2b##
My attempt at a solution: We have three points, hence we will have two polynomials ##p_1(x)## for ##x\in [-5,-4]## and ##p_2(x)## for ##x\in [-4,-3]##. Define: ##p_1(x)=c_1x^3+c_2x^2+c_3x+c_4## and ##p_2(x)=c_5x^3+c_6x^2+c_7x+c_8## where the ##c_n## stuff are coefficients for the polynomial.

I came up with the following equations:
  1. For ##p_1##, it must pass through the first two points:
    1. ##1,5610=c_1(-5)^3+c_2(-5)^2+c_3(-5)+c_4##
    2. ##2=c_1(-4)^3+c_2(-4)^2+c_3(-4)+c_4##
  2. For ##p_2##, it must pass through the middle point and the last point:
    1. ##2=c_5(-4)^3+c_6(-4)^2+c_7(-4)+c_8##
    2. ##2,56=c_1(-3)^3+c_2(-3)^2+c_3(-3)+c_8##
  3. 1st and 2nd order derivatives of the polynomials should be equal at the middle point, i.e. ##(-4,2)##
    1. ##3\cdot (-4^2)c_1+2\dot(-4)c_2+c_3-3\cdot (-4^2)c_5-2\cdot (-4)c_6-c_7=0##
    2. ##6c_1\cdot (-4)+2c_2-6c_5\cdot (-4)-2c_6=0##
  4. Finally I make the decision that the 2nd derivatives should be equal to 0 at the endpoints.
    1. ##6c_1\cdot (-5)+2c_2=0##
    2. ##6c_5\cdot (-3)+2_6 =0##
I turned all equations into matrix form and plugged it into an online matrix calculator. The matrix form is this:
1721069081633.png

The matrix calculator gave me the following solutions:
1721069140654.png

If I try to plot it, it looks *almost* right but it's certainly not what I expected.
I assume it's a calculation problem, maybe it's even trival but I can not find it.
The plots look like below by the way, and you can find them using this link.
1721069233425.png

Many thanks for help!
 
Physics news on Phys.org
bremenfallturm said:
Many thanks for help!
Check your arithmetic.
Here's the 8x8 matrix I get in Mathematica using your method of solution:
1721080804473.png

Using this to solve your system results in the cubic-spline plot:
1721081424709.png

This looks correct to me.
 
  • Like
Likes bremenfallturm and FactChecker
Why not start with the acutal expression for a cubic bezier curve with control points \mathbf{x}_i, \mathbf{x}(t) = (1-t)^3\mathbf{x}_0 + 3(1-t)^2 \mathbf{x}_1 + 3(1-t)t\mathbf{x_2} + t^3\mathbf{x}_3 which has the properties that \mathbf{x}(0) = \mathbf{x}_0, \mathbf{x}(1) = \mathbf{x}_3, \mathbf{x}'(0) = 3(\mathbf{x}_1 - \mathbf{x}_0) and \mathbf{x}'(1) = 3(\mathbf{x}_3 - \mathbf{x}_2). Fitting two of these to the curve in question gives you eight unknowns; fixing the end points immediately determines four of them. Continuity of the derivative gives you a fifth equation. For the other three, we have only three points so we should fit them with a quadratic. The conditions therefore are that the coefficients of t^3 each vanish and the coefficients of t^2 are equal.
 
renormalize said:
Check your arithmetic.
Here's the 8x8 matrix I get in Mathematica using your method of solution:
View attachment 348354
Using this to solve your system results in the cubic-spline plot:
View attachment 348355
This looks correct to me.
Haha what I silly mistake I made, I forgot a parenthesis when feeding the equations into the matrix calculator. All worked out now, thank you!
 
  • Like
Likes renormalize
pasmith said:
Why not start with the acutal expression for a cubic bezier curve with control points \mathbf{x}_i, \mathbf{x}(t) = (1-t)^3\mathbf{x}_0 + 3(1-t)^2 \mathbf{x}_1 + 3(1-t)t\mathbf{x_2} + t^3\mathbf{x}_3 which has the properties that \mathbf{x}(0) = \mathbf{x}_0, \mathbf{x}(1) = \mathbf{x}_3, \mathbf{x}'(0) = 3(\mathbf{x}_1 - \mathbf{x}_0) and \mathbf{x}'(1) = 3(\mathbf{x}_3 - \mathbf{x}_2). Fitting two of these to the curve in question gives you eight unknowns; fixing the end points immediately determines four of them. Continuity of the derivative gives you a fifth equation. For the other three, we have only three points so we should fit them with a quadratic. The conditions therefore are that the coefficients of t^3 each vanish and the coefficients of t^2 are equal.
The reason I didn't start with that is because I didn't learn about it yet 😁 I am currently looking into more math regarding curve fitting so hopefully I will get there soon:)
 
There are two things I don't understand about this problem. First, when finding the nth root of a number, there should in theory be n solutions. However, the formula produces n+1 roots. Here is how. The first root is simply ##\left(r\right)^{\left(\frac{1}{n}\right)}##. Then you multiply this first root by n additional expressions given by the formula, as you go through k=0,1,...n-1. So you end up with n+1 roots, which cannot be correct. Let me illustrate what I mean. For this...
Back
Top