2016-07-27 46 views
0

我需要實現一個查找的彈道軌跡的功能,我有三點 - 起源目的地最大高度點。二次方程從點

我需要找到包含這些點的正確二次函數。

我很難搞清楚該怎麼做。我應該從哪裏開始?

+0

http://mathworld.wolfram.com/LagrangeInterpolatingPolynomial.html特別注意方程4。 – user31415

+0

插值或樣條是您正在查找的關鍵字 –

+0

使用拋物線的一般公式,即axx + bx + c = y,並用三個點的(x,y)座標替代。這給了你一個3個線性方程組(每個點一個)在3個變量('a','b','c')上的系統,這可以通過標準方法來解決,比如減少行數。 – pyon

回答

-1

假設您在y軸上有origindestination,即x1x2。如果不是的話,你可以稍後轉移。現在

a*x*x + b*x + c = 0//equation 
x1*x2=(c/a); 
c = (x1*x2)*a; 
x1+x2=(-b/a); 
b = (x1+x2)/(-a); 
a*((x1+x2)/2)^2 + b*((x1+x2)/2) + c = h//max height 
let X=(x1+x2)/2; 
a*X*X + ((2*X)/(-a))*X + (x1*x2)*a - h = 0; 

您可以通過a=0直到你把所有的值Xx1x2h上面的公式是真實的迭代。

double eqn = (-h),a=0;//a=0.Assuming you have declared x1,x2 and X already 
while(eqn!=0) 
{ 
    a++; 
    eqn = a*X*X + ((2*X)/(-a))*X + (x1*x2)*a - h; 
} 
b = (x1+x2)/(-a); 
c = (x1*x2)*a; 

因此,你得到了所有的coeffecients。

+0

循環永遠不會退出。循環內部是否正確?但感謝您的幫助,我現在有堅實的基礎。 – Sangratura

+0

@Sangratura,我從來沒有打算編寫代碼/測試它....我給你一個關於如何在程序中繼續的粗略想法。你能發佈你的代碼嗎?實際上不需要存在整數。例如,如果a = PI(3.14 ...),那麼該循環將永遠不會退出,因爲沒有整數倍的PI整數倍。 – yobro97

+0

@Sangratura ......所以這取決於你的等式。如果coeffecients不合理,則不存在整數,因此循環不會退出。我希望你明白我的觀點。 – yobro97