Python中的卡尔达诺公式

青葱年少 python 423

原文标题Cardano’s Formula in Python

我需要有人检查我在 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)

原文链接:https://stackoverflow.com//questions/71508008/cardanos-formula-in-python

回复

我来回复
  • balu的头像
    balu 评论

    您可以将根代回方程中,看看是否为零。

    def verify(a,b,c,d,x):
        return (a*(x**3) + b*(x**2) + c*x + d)
    
    
    roots = solve(a,b,c,d)
    
    for x in roots:
        print(verify(a,b,c,d,x))
    
    2年前 0条评论