Constructing cubic spline interpolation polynomials

  • Thread starter Thread starter bremenfallturm
  • Start date Start date
  • Tags Tags
    Cubic Interpolation
Click For Summary

Homework Help Overview

The discussion revolves around constructing cubic spline interpolation polynomials based on given points. The original poster outlines their approach to defining two cubic polynomials that interpolate through specified points and discusses the conditions for continuity and derivatives at those points.

Discussion Character

  • Exploratory, Mathematical reasoning, Assumption checking

Approaches and Questions Raised

  • The original poster attempts to formulate cubic polynomials for interpolation and sets up equations based on the conditions of the spline. Some participants suggest checking arithmetic and offer alternative methods, such as using cubic Bezier curves, to approach the problem.

Discussion Status

The discussion includes attempts to solve the system of equations derived from the polynomial definitions. Some participants provide feedback on the calculations, while others explore different methods for fitting curves. There is acknowledgment of mistakes in the arithmetic, leading to a resolution for the original poster.

Contextual Notes

Participants note the importance of continuity in derivatives and the conditions required for cubic spline interpolation. The original poster mentions their current level of understanding and ongoing learning about curve fitting techniques.

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   Reactions: 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   Reactions: 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:)
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
Replies
12
Views
4K
Replies
8
Views
1K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 5 ·
Replies
5
Views
1K