Finding quadratic function from two points and known max value

08312017, 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 crosseyed.
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 straightforward way of tackling this without pulling a bunch of numeric and matrix libraries into the program? 

08312017, 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^(n1)+cx^(n2)...) requires n+1 points and you end up solving a system of n+1 simultaneous equations to get your coefficients. 

08312017, 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.


08312017, 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 yvalue 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=ca(xb)^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=ca(x_1b)^2\cr y_2=ca(x_2b)^2\cr}.$$ Rearranging gives $${x_1b\over x_2b}=\pm\sqrt{cy_1\over cy_2}.$$ The value of \(b\) is between \(x_1\) and \(x_2\) if the righthand 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) 

08312017, 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.


08312017, 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: 1 Guest(s)