【发布时间】:2022-09-24 04:56:28
【问题描述】:
我需要有人检查我在 Python 中使用 Cardano 公式的尝试。我正在尝试求解三次方程的根,我想知道到目前为止我所做的是否正确(或错误)。 TYIA
def solve(a,b,c,d):
Q = (3*a*c - (b**2)) / (9*(a**2))
R = (9*a*b*c - 27*(a**2)*d - 2*(b**3)) / (54*(a**3))
D = (Q**3) + (R**2)
S = (R + (D**(1/2)))**(1/3)
T = (R - (D**(1/2)))**(1/3)
x1 = S + T - (b/(3*a))
x2 = -((S + T)/2) - (b/(3*a)) + 0.5j * (3**(1/2)) * (S - T)
x3 = -((S + T)/2) - (b/(3*a)) - 0.5j * (3**(1/2)) * (S - T)
return (x1,x2,x3)
-
只需在几个测试用例上使用它。一般来说,对于这种编程,使用测试驱动开发是一种很好的方法。
-
那将是学习测试的好机会!
-
\"我需要有人检查\": 这不是本站的目的。这个想法是你测试你的代码,如果有问题,你把问题集中在那个上面。
-
其他错误:您正在添加
b/(3*a)而不是为第二个和第三个根减去它。 -
@RobertDodier:这个想法是OP在问这里之前至少做了最少的测试。测试不能替代了解您在做什么。