public double findFS(double a, double b, double c, double d) {
double FS = 0;
double A, B, C, delta;
double x1, x2, x3;
A = b * b - 3 * a * c;
B = b * c - 9 * a * d;
C = c * c - 3 * b * d;
delta = B * B - 4 * A * C;
if (A == 0 && B == 0) {
x1 = x2 = x3 = -c / b;
}
/*
* Shengjin’s Distinguishing Means ①:当A=B=0时,方程有一个三重实根;
* ②:当Δ=B^2-4AC>0时,方程有一个实根和一对共轭虚根; ③:当Δ=B^2-4AC=0时,方程有三个实根,其中有一个两重根;
* ④:当Δ=B^2-4AC<0时,方程有三个不相等的实根。
*/
if (delta > 0) {
double y1 = A * b + 3 * a * (-B + Math.pow(B * B - 4 * A * C, 0.5))
* 0.5;
double y2 = A * b + 3 *