今天,用java求解一元三次方程,其java实现记录如下,虽然根据不完全,但可以保证正确性。
privatestaticdoubleshengjing (doublea、double b、double c、double d ) {
double A=b*b -3.0*a*c;
double B=b*c - 9.0*a*d;
double C=c*c - 3.0*b*d;
if(B*B-4.0*A*C0 ) {
double y1=a* B3 * a* (((-1.0 * b math.sqrt ) b*B-4*a*c ) ) )/2.0 );
double y2=a* B3 * a* (((-1.0 * B- math.sqrt ) B*B-4*a*C ) ) )/2.0 );
return(-1.0*B ) ) ) ) ) y10? (1.0 (: ) 1.0 ) math.pow (math.ABS (y1 ),1.0/3.0 ) ) ) ) ) ) ) ) )。
(Y2 0 )? (-1.0 ) : ) 1.0 ) math.pow ) math.ABS(y2 )、1.0/3.0 ) ) ) ) )3) a );
}else {
doublet=(2.0*a*B-3.0*a*B )/)2*math.sqrt ) a*a ) );
doubleo=math.ACOS(t;
return(-1.0*B-2.0*math.sqrt ) a ) math.cos(o/3.0 ) )/)/(3.0*a );
}
}
集中精力坚持到底