我必须在我的iPhone应用程序中实现数学方程。但我不知道如何实现。是否需要为计算目的添加框架?
My formula :0.00005*t^3 + 0.0045*t^2 + 0.7542*t + 23.459 = p还有一个数学问题:我有一个值,从find p t,有人能帮我解这个方程,或者帮我找到t。
发布于 2012-01-23 14:49:41
您需要一个三次方程的根的公式-您可以从wikipedia获得这些公式
发布于 2012-01-25 13:20:30
如果你想简单地计算这个方程,你可以像下面的函数一样来实现:
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;
}您必须提供查找第一个根的起始位置。您应该小心选择它,因为起始位置决定了它收敛到哪个根,以及它是否会收敛。
发布于 2012-01-23 14:48:49
不需要实现额外的框架。
您可以执行以下操作:
double p = 0.00005*pow(t, 3) + 0.0045*pow(t, 2) + 0.7542*t + 23.459;要找到t,您必须求解this链接中给出的三次方程
https://stackoverflow.com/questions/8968056
复制相似问题