我必須在我的iPhone應用程序中實現數學公式。但我不知道如何實施。是否需要爲計算目的添加框架?對於數學如何實現數學公式
My formula :0.00005*t^3 + 0.0045*t^2 + 0.7542*t + 23.459 = p
一個問題:我有p
價值,從找到t
任何一個可以幫助我解決這個方程,或者幫助我如何找到噸。
我必須在我的iPhone應用程序中實現數學公式。但我不知道如何實施。是否需要爲計算目的添加框架?對於數學如何實現數學公式
My formula :0.00005*t^3 + 0.0045*t^2 + 0.7542*t + 23.459 = p
一個問題:我有p
價值,從找到t
任何一個可以幫助我解決這個方程,或者幫助我如何找到噸。
無需執行額外的框架。
你可以做如下:
double p = 0.00005*pow(t, 3) + 0.0045*pow(t, 2) + 0.7542*t + 23.459;
,並找到了t
,你要解決的三次方程作爲this鏈接給
如果你讀到這個問題,他有p值並且想要解決t –
您想爲三次方程的根的公式 - 你可以從wikipedia
更一般地說,OP正在尋找的是尋找方程根的方法。這可能會在這裏略微偏離主題。 –
在OP中提供的公式是一個立方體,並且鏈接頁面包含幾種查找所述根的方法 - 因此,我相信這是正確的主題? –
確實如此。我只是指出他的*特定問題可以通過指向一個更普遍適用的概念而變得更有用。但是,將他指向三次方程的根是恰當的。 –
如果你正在尋找簡單的評估方程,你可以實現如下功能:
double f(double t)
{
return 0.00005 * (t * t * t) + 0.0045 * (t * t) + 0.7542 * t + 23.459;
}
如果你想找到方程的根,你有兩個選擇:分析解決方案和數值。在分析上,只能找到一小組多項式的根(Linear,Quadratic,Cubic和Quartic)。一般來說,大多數多項式如果不是找不到分析解決方案,也很困難。
我爲三次方程提供的鏈接向您展示瞭如何求解方程的根。我不會在這裏重複,因爲它很容易實現。如果你想要一個「簡單」的方法來找到方程的根,你可以使用所謂的牛頓法。
你可以寫你的功能爲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;
}
您必須提供到哪裏尋找第一根起始位置。你應該小心選擇它,因爲起始位置決定了它收斂到哪個根,以及它是否收斂。
您可以使用[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 –