Using Polynomial equations in C#
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.
Generating Cubic Curves for C#
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
a = | -2(ymax - ymin) |
(xmax - xmin)3 |
b = -3/2a(xmax + xmin)
c = 3axmaxxmin
&
d = ymax + a/2(xmax -
3axmin)xmax2