http://community.csdn.net/Expert/topic/3756/3756475.xml?temp=.3623011
已知抛物线上的2点的坐标(x1, y1), (x2, y2)(且2点分别在抛物线的顶点的两测),以及其顶点的纵坐标k,且抛物线开口朝上,即a>0。
求出抛物线的一般式:y = a*X^2 + b*x + c 中的 a,b,c 的值,以及顶点的横坐标h。
这个问题可以这样解决
假定方程的形式为
y = a(x-b)^2 + k
这样就保证最小点在k, x=b的时候数值最小
y1-k = a ( x1-b)^2
y2-k = a ( x2-b}^2
根据楼主的假设
显然 y1和y2都是大于k的,否则就不可能有答案
这就意味着 sqrt ((y1-k)/(y2-k)) 必然是有效数据
开根号后做除法,得到两个方程
sqrt((y1-k)/(y2-k)) = x1-b / x2-b
sqrt((y1-k)/(y2-k)) = -(x1-b / x2-b)
只有后者才是有效的,因为正确答案b是位于x1和x2之间的
于是可以求解b了, 然后带回就求解出来a
然后 把 y = a(x-b)^2 + k
展开成为 y = Ax^2 + Bx + C
的模式,从而获得了A,B,C的数值了
完整的计算就是
m = sqrt( (y1-k) / (y2-k) )
b = (x1+x2*m)/(m+1)
a = (y1-k) /((x1-b)*(x1-b))
A = a;
B = 2*a*b
C = k+b*b
顶点坐标(b,k)
抛物线方程 y = A*x^2 + B*x + C