Constructing cubic spline interpolation polynomials

  • #1
bremenfallturm
45
11
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
  • #2
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
  • #3
Why not start with the acutal expression for a cubic bezier curve with control points [itex]\mathbf{x}_i[/itex], [tex]\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[/tex] which has the properties that [itex]\mathbf{x}(0) = \mathbf{x}_0[/itex], [itex]\mathbf{x}(1) = \mathbf{x}_3[/itex], [itex]\mathbf{x}'(0) = 3(\mathbf{x}_1 - \mathbf{x}_0)[/itex] and [itex]\mathbf{x}'(1) = 3(\mathbf{x}_3 - \mathbf{x}_2).[/itex] 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 [itex]t^3[/itex] each vanish and the coefficients of [itex]t^2[/itex] are equal.
 
  • #4
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
  • #5
pasmith said:
Why not start with the acutal expression for a cubic bezier curve with control points [itex]\mathbf{x}_i[/itex], [tex]\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[/tex] which has the properties that [itex]\mathbf{x}(0) = \mathbf{x}_0[/itex], [itex]\mathbf{x}(1) = \mathbf{x}_3[/itex], [itex]\mathbf{x}'(0) = 3(\mathbf{x}_1 - \mathbf{x}_0)[/itex] and [itex]\mathbf{x}'(1) = 3(\mathbf{x}_3 - \mathbf{x}_2).[/itex] 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 [itex]t^3[/itex] each vanish and the coefficients of [itex]t^2[/itex] 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:)
 

Similar threads

  • Calculus and Beyond Homework Help
Replies
1
Views
584
  • Calculus and Beyond Homework Help
Replies
8
Views
469
  • Calculus and Beyond Homework Help
Replies
11
Views
2K
  • Calculus and Beyond Homework Help
Replies
5
Views
914
  • Calculus and Beyond Homework Help
Replies
4
Views
2K
Replies
4
Views
1K
  • Calculus and Beyond Homework Help
Replies
12
Views
3K
  • Calculus and Beyond Homework Help
Replies
2
Views
721
  • Calculus and Beyond Homework Help
Replies
5
Views
441
  • Advanced Physics Homework Help
2
Replies
36
Views
3K
Back
Top