300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 微信小程序JS编写一元三次方程盛金公式解法代码片段

微信小程序JS编写一元三次方程盛金公式解法代码片段

时间:2020-06-08 03:19:45

相关推荐

微信小程序JS编写一元三次方程盛金公式解法代码片段

话不多说,直接上代码!(只是片段,参数请自行撮合)

var a, b, c, ld, rd,x1, x2, x3, x2_real, x2_virtual, x3_real, x3_virtual //ax^3 + bx^2 + cx + ld = rd//盛金公式threecalculation: function() {var d = ld - rd; //移项使得右边为零var A = b * b - 3 * a * c;var B = b * c - 9 * a * d;var C = c * c - 3 * b * d; //三个重根判别式var detal = B * B - 4 * A * C; //总判别式if (A == 0 && B == 0) {x1 = -c / b;x2 = -b / (3 * a);x3 = -3 * d / c;} else if (detal > 0) {var X1 = A * b + 3 * a * (1 / 2 * (-B + Math.sqrt(delta)));var X2 = A * b + 3 * a * (1 / 2 * (-B - Math.sqrt(delta)));//负数开立方会返回Null,所以要做一下操作if (X1 >= 0) {var Y1 = Math.pow(X1, 1 / 3);} else {var Y1 = - Math.pow(-X1, 1 / 3);}if (X2 >= 0) {var Y2 = Math.pow(X2, 1 / 3);} else {var Y2 = - Math.pow(-X2, 1 / 3);}x1 = (-b - Y1 - Y2) / (3 * a);x2_real = (-2 * b + Y1 + Y2) / (6 * a);x3_real = x2_real;x2_virtual = Math.sqrt(3) * (Y1 - Y2) / (6 * a);x3_virtual = -x2_virtual;} else if (detal == 0) {x1 = -b / a + B / A;x2 = -B / (2 * A);x3 = x2;} else {var T = (2 * A * b - 3 * a * B) / (2 * Math.sqrt(A * A * A));var Xita = Math.acos(T);x1 = (-b - 2 * Math.sqrt(A) * Math.cos(Xita / 3)) / (3 * a);x2 = (-b + Math.sqrt(A) * (Math.cos(Xita / 3) + Math.sin(Xita / 3) * Math.sqrt(3))) / (3 * a);x3 = (-b + Math.sqrt(A) * (Math.cos(Xita / 3) - Math.sin(Xita / 3) * Math.sqrt(3))) / (3 * a);}},

附上盛金公式详解的网址:/view/998fd70616fc700abb68fcbf.html

如果帮到您,点个赞呗,有任何疑问也欢迎留言噢~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。