曲线方程求拐点坐标
RT 曲线拟合后得到一个方程
y = (0.000116176242636361) * x * x * x + (-0.0369042410603229) * x * x + (3.18057383667107) * x + (-14.7459220790877)
先要求其拐点坐标。【最好能把每两个拐点之间的距离和圆心坐标也求出来】,先奉上100分,求各位大神帮帮忙,小弟感激不尽! 曲线 拐点
[解决办法]
它的一阶导数是
y' = 3 * (0.000116176242636361) * x * x + 2 * (-0.0369042410603229) * x + (3.18057383667107)
将 y' = 0代入,用一元二次方程的那个公式即可求拐点。
[解决办法]
void Calc(double a, double b, double c, double d)
{
double a1 = 3 * a;
double b1 = 2 * b;
double c1 = c;
double tmp = b1 * b1 - 4 * a1 * c1;
if (tmp < 0)
{
Console.WriteLine("无解");
return;
}
double x1 = (-b1 + Math.Sqrt(tmp)) / (2 * a1);
double x2 = (-b1 - Math.Sqrt(tmp)) / (2 * a1);
double y1 = a * Math.Pow(x1, 3) + b * Math.Pow(x1, 2) + c * x1 + d;
double y2 = a * Math.Pow(x2, 3) + b * Math.Pow(x2, 2) + c * x2 + d;
Console.WriteLine("坐标1:{0},{1},坐标2:{2},{3}", x1, y1, x2, y2);
double distance = Math.Sqrt(Math.Pow(x1 - x2, 2) + Math.Pow(y1 - y2, 2));
Console.WriteLine("两点间距离:" + distance);
}
//Calc(0.000116176242636361, -0.0369042410603229, 3.18057383667107, -14.7459220790877)
//结果:
//坐标1:151.559488381255,24.0512749955817,坐标2:60.2120994687416,68.3280259388061
//两点间距离:101.512443253141