java 一元三次方程_一元三次方程盛金公式求解的java实现

今天要通过java求解一元三次方程,其Java实现特记录如下,根不完整,但是能保证准确性。

private static double shengjing(double a,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*C > 0) {

double Y1 = A * b + 3 * a * ((-1.0 * B + Math.sqrt(B * B - 4 * A * C)) / 2.0);

double Y2 = A * b + 3 * a * ((-1.0 * B - Math.sqrt(B * B - 4 * A * C)) / 2.0);

return (-1.0 * b - (((Y1 < 0) ? (-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 {

double T = (2.0*A*b-3.0*a*B)/(2*Math.sqrt(A*A*A));

double o = Math.acos(T);

return (-1.0 * b-2.0*Math.sqrt(A)*Math.cos(o/3.0))/(3.0*a);

}

}

专注 极致 坚持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值