Finding quadratic function from two points and known max value
|
08-31-2017, 12:57 PM
Post: #1
|
|||
|
|||
Finding quadratic function from two points and known max value
I need to work this into a C# program for generating points along an arc, and the math is making me cross-eyed.
Essentially, I know two points on the parabola, I know the y value of the maximum (but not x), and I know that the second derivative is negative, i.e. the coefficient of x^2 is negative. All the typical approaches of treating it as a system of 3 linear equations seem to rely on having three known points, but I've got two, plus an additional equation 2*a*x_3+b=0 where x_3 is unknown. Is there a straight-forward way of tackling this without pulling a bunch of numeric and matrix libraries into the program? |
|||
08-31-2017, 01:03 PM
Post: #2
|
|||
|
|||
RE: Finding quadratic function from two points and known max value
Short answer: nope.
Just like a linear function can be defined with 2 points, a quadratic function needs 3 points to be defined. The best you can get is a family of functions that pass through the two points you know and have the known maximum. In the more general case, a polynomial of order n (ax^n+bx^(n-1)+cx^(n-2)...) requires n+1 points and you end up solving a system of n+1 simultaneous equations to get your coefficients. |
|||
08-31-2017, 01:09 PM
Post: #3
|
|||
|
|||
RE: Finding quadratic function from two points and known max value
Well, I've got two points, plus a known maximum value. Intuitively, I think that uniquely defines a parabola, though I could be wrong.
|
|||
08-31-2017, 02:46 PM
Post: #4
|
|||
|
|||
RE: Finding quadratic function from two points and known max value
I think that there are two possible solutions, but I could be wrong too!
Let the maximum y-value be \(c\) and let this occur at \(x=b\), where \(b\) is as yet unknown. Then the parabola's equation can be written as $$y=c-a(x-b)^2,$$ where \(a\) is another unknown. We know two points \((x_1, y_1)\) and \((x_2, y_2)\) on the curve. Substituting these into the equation above gives $$\eqalign{y_1=c-a(x_1-b)^2\cr y_2=c-a(x_2-b)^2\cr}.$$ Rearranging gives $${x_1-b\over x_2-b}=\pm\sqrt{c-y_1\over c-y_2}.$$ The value of \(b\) is between \(x_1\) and \(x_2\) if the right-hand side is negative and outside this range otherwise; this is where the ambiguity comes in. Since \(c\), \(y_1\), and \(y_2\) are known the right hand side can be computed and a sign chosen; this means that \(b\) can be found, and then either of the previous equations can be used to give \(a\). Is this what you are looking for? Nigel (UK) |
|||
08-31-2017, 05:02 PM
Post: #5
|
|||
|
|||
RE: Finding quadratic function from two points and known max value
Oh yes, I see what you mean. In the cases I'm dealing with, the x value of the vertex will always lie between the two known points, so that narrows it down to a single possible function.
|
|||
08-31-2017, 05:31 PM
Post: #6
|
|||
|
|||
RE: Finding quadratic function from two points and known max value
Yup, right on the money. Just find b with "b = (x2 * sqrt((c - y1)/(c - y2)) + x1) / (sqrt((c - y1)/(c - y2)) + 1)", then find a with "a = (c - y1)/(x1 - b)^2". Then you've got your a, b, and c for the vertex form, and you can calculate y values. Thanks Nigel.
|
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 3 Guest(s)