一元三次方程求解

☒遍历方法

☒近似值法

☒启用库

☑纯代码

☑精确计算法(根式解)

☑判断(if,else)

代码如下:

def sqrt(x):
    return x**(1/2)
def cbrt(x):
    return x**(1/3)
def f3(a,b,c,d): 
    #ax^3 + bx^2 + cx + d = 0
    p = b**2 - 3*a*c
    q = 2*(b**3) - 9*a*b*c + 27*(a**2)*d
    delta = (b*c)**2 - 4*a*(c**3) - 4*(b**3)*d + 18*a*b*c*d - 27*((a*d)**2)
    i = sqrt(-1)
    e1 = cbrt((-q + 3*a*sqrt(3*delta)*i))
    if e1 != 0:
        e2 = p/e1
    else:
        e2 = cbrt((-q - 3*a*sqrt(3*delta)*i))
    r = (-1 + sqrt(3)*i)/2
    s = (-1 - sqrt(3)*i)/2
    x1 = (-b+e1+e2)/(3*a)
    x2 = (-b + r*e1 + s*e2)/(3*a)
    x3 = (-b + s*e1 + r*e2)/(3*a)
    ptint ('x = '+str(x1)+' and '+str(x2)+' and '+str(x3))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值