usingMaths.com
Demonstrating and showing pupils and students one application of Mathematics.







<< PreviousNext >>

Code to Animate an Image Body through a Polynomial Curve in Python



Using Polynomial equations in Python

The equation of a cubic curve has the general form y = ax3 + bx2 + cx + d;
where a, b, c, d are constants. The curve (graph) of any 3rd degree polynomial has a maximum point and minimum point.

Quadratic Curve

Generating Cubic Curves for Python

To generate a cubic equation, all we will need are the maximum and minimum points of the curve.

y = ax3 + bx2 + cx + d  ----- (eqn 0)

dy/dx = yI = 3ax2 + 2bx + c
At maximum point, yI = 0
yI|(x = xmax) = 0
3axmax2 + 2bxmax + c = 0  ----- (eqn 1)
At minimum point, yI = 0
yI|(x = xmin) = 0  ----- (eqn 2)
3axmin2 + 2bxmin + c = 0
Subtracting both derived equations
yI|(x = xmax) - yI|(x = xmin)
⇒ 3a(xmax2 - xmin2) + 2b(xmax - xmin) = 0
2b(xmax - xmin) = -3a(xmax2 - xmin2)

b   =    -3a(xmax - xmin)(xmax + xmin)
2(xmax - xmin)

b = -3/2a(xmax + xmin)

Substituting b in (eqn 1)
3axmax2 + 2bxmax + c = 0
3axmax2 + 2(-3a/2)(xmax + xmin)xmax + c = 0
3axmax2 - 3axmax(xmax + xmin) + c = 0
3axmax2 - 3axmax2 - 3axmaxxmin + c = 0
c = 3axmaxxmin

From the general equation(eqn 0)
y = ax3 + bx2 + cx + d
ymax = axmax3 + bxmax2 + cxmax + d
Substituting for b & c
⇒ ymax = axmax3 - 3/2a(xmax + xmin)xmax2 + 3axmaxxminxmax + d
ymax = axmax3 - 3/2axmax3 - 3/2axmax2xmin + 3axmax2xmin + d
ymax = 1/2[2axmax3 - 3axmax3 - 3axmax2xmin + 6axmax2xmin + 2d]
ymax = 1/2[ -axmax3 + 3axmax2xmin + 2d]
2ymax = -a(xmax - 3axmin)xmax2 + 2d
2d = 2ymax + a(xmax - 3axmin)xmax2
d = ymax + a/2(xmax - 3axmin)xmax2


From the general equation(eqn 0)
y = ax3 + bx2 + cx + d
ymax = axmax3 + bxmax2 + cxmax + d
ymin = axmin3 + bxmin2 + cxmin + d
Subtracting both derived equations
ymax - ymin = a(xmax3 - xmin3) + b(xmax2 - xmin2) + c(xmax - xmin)
ymax - ymin = (xmax - xmin)[a(xmax2 + xmaxxmin + xmin2) + b(xmax + xmin) + c]
Substituting for b & c
ymax - ymin = (xmax - xmin)[a(xmax2 + xmaxxmin + xmin2) - 3a/2(xmax + xmin)2 + 3axmaxxmin]
ymax - ymin = a(xmax - xmin)[xmax2 + xmaxxmin + xmin2 - 3/2(xmax2 + 2xmaxxmin + xmin2) + 3xmaxxmin]
2(ymax - ymin) = a(xmax - xmin)[2xmax2 + 2xmaxxmin + 2xmin2 - 3(xmax2 + 2xmaxxmin + xmin2) + 6xmaxxmin]
2(ymax - ymin) = a(xmax - xmin)(2xmax2 + 2xmaxxmin + 2xmin2 - 3xmax2 - 6xmaxxmin - 6xmin2 + 6xmaxxmin)
2(ymax - ymin) = a(xmax - xmin)(-xmax2 + 2xmaxxmin - xmin2)
2(ymax - ymin) = -a(xmax - xmin)(xmax2 - 2xmaxxmin + xmin2)
2(ymax - ymin) = -a(xmax - xmin)(xmax - xmin)2
2(ymax - ymin) = -a(xmax - xmin)3

Hence:
a   =    -2(ymax - ymin)
(xmax - xmin)3

b = -3/2a(xmax + xmin)
c = 3axmaxxmin
        &
d = ymax + a/2(xmax - 3axmin)xmax2


Code to Make a Graphic Object Animate through a Cubic Curve in Python

To make a graphic (dot) travel by the equation of a cubic curve, continuously increment x by some interval, and use the equation to get the corresponding y value.
.

Create a new file; File, New File.
Call it and CubicPath.py.
Type out the adjoining Python / Turtle code for animating an image body through the path of a cubic / polynomial curve.









<< PreviousNext >>