2012-01-23 85 views
0

我必須在我的iPhone應用程序中實現數學公式。但我不知道如何實施。是否需要爲計算目的添加框架?對於數學如何實現數學公式

My formula :0.00005*t^3 + 0.0045*t^2 + 0.7542*t + 23.459 = p 

一個問題:我有p價值,從找到t任何一個可以幫助我解決這個方程,或者幫助我如何找到噸。

+0

您可以使用[Wolfram Alpha](http://www.wolframalpha.com/input/?i=0.00005*t%5E3+%2B+0.0045*t%5E2+%2B+0.7542*t+%2B+23.459+ %3D + p)以p的形式求解t –

回答

-1

無需執行額外的框架。

你可以做如下:

double p = 0.00005*pow(t, 3) + 0.0045*pow(t, 2) + 0.7542*t + 23.459; 

,並找到了t,你要解決的三次方程作爲this鏈接給

+0

如果你讀到這個問題,他有p值並且想要解決t –

1

您想爲三次方程的根的公式 - 你可以從wikipedia

+0

更一般地說,OP正在尋找的是尋找方程根的方法。這可能會在這裏略微偏離主題。 –

+0

在OP中提供的公式是一個立方體,並且鏈接頁面包含幾種查找所述根的方法 - 因此,我相信這是正確的主題? –

+0

確實如此。我只是指出他的*特定問題可以通過指向一個更普遍適用的概念而變得更有用。但是,將他指向三次方程的根是恰當的。 –

0

如果你正在尋找簡單的評估方程,你可以實現如下功能:

double f(double t) 
{ 
    return 0.00005 * (t * t * t) + 0.0045 * (t * t) + 0.7542 * t + 23.459; 
} 

如果你想找到方程的根,你有兩個選擇:分析解決方案和數值。在分析上,只能找到一小組多項式的根(Linear,Quadratic,CubicQuartic)。一般來說,大多數多項式如果不是找不到分析解決方案,也很困難。

我爲三次方程提供的鏈接向您展示瞭如何求解方程的根。我不會在這裏重複,因爲它很容易實現。如果你想要一個「簡單」的方法來找到方程的根,你可以使用所謂的牛頓法。

你可以寫你的功能爲f(t, p) = 0.00005 * t^3 + 0.0045 * t^2 + 0.7542 * t + 23.459 - p。既然你知道公式,可以計算出它的衍生物和使用Newton's Method解決的根源一個

double FindRoot(double t0, double p) 
{ 
    double eps = 1E-6; // The accuracy of the found root 
    double t; 
    do 
    { 
     t = t0; 
     double f = 0.00005 * t * t * t + 0.0045 * t * t + 0.7542 * t + 23.459 - p; 
     double fp = 0.00015 * t * t + 0.009 * t + 0.7542; 
     t0 = t - f/fp; 
    } while(abs(t - t0) > eps); 

    return t0; 
} 

您必須提供到哪裏尋找第一根起始位置。你應該小心選擇它,因爲起始位置決定了它收斂到哪個根,以及它是否收斂。