Python· 求解一元二次方程实根的函数

在Python中,求解一元二次方程 ( ax^2 + bx + c = 0 ) 的实根可以通过使用math模块中的sqrt函数来实现。这里提供一个简单的函数,它接受三个参数a、b和c,然后返回方程的实根。

python 复制代码
import math

def solve_quadratic(a, b, c):
    # 计算判别式的值
    discriminant = b**2 - 4*a*c
    
    # 检查判别式的值
    if discriminant < 0:
        return None  # 没有实数解
    elif discriminant == 0:
        # 一个实数解
        return -b / (2 * a)
    else:
        # 两个实数解
        root1 = (-b + math.sqrt(discriminant)) / (2 * a)
        root2 = (-b - math.sqrt(discriminant)) / (2 * a)
        return root1, root2

# 使用函数
a = 1
b = -3
c = 2
roots = solve_quadratic(a, b, c)
if roots is None:
    print("No real roots.")
else:
    if isinstance(roots, tuple):
        print(f"The roots are {roots[0]} and {roots[1]}.")
    else:
        print(f"The root is {roots}.")

这个函数首先计算判别式Δ = b^2 - 4ac。根据判别式的值,可以确定方程的根:

  • 如果判别式小于0,方程没有实数解。
  • 如果判别式等于0,方程有一个实数解(重根)。
  • 如果判别式大于0,方程有两个不同的实数解。

请注意,这个函数返回的是一个实数或者一个包含两个实数的元组。如果方程没有实数解,函数返回None。

相关推荐
jnrjian11 小时前
delete file shell 让 AI 写脚本
服务器·开发语言
傅科摆 _ py12 小时前
DP,贪心,堆和栈,二分力扣复习
开发语言·python·算法
kiracrimson12 小时前
栈与队列容器:适配器、deque 与 priority_queue
开发语言·c++·适配器模式
北冥you鱼12 小时前
Go 语言 CRUD 实战:从接口设计到真实业务场景
开发语言·后端·golang
吴名氏.12 小时前
Java转AI Agent教程(第一周)让模型先跑起来
人工智能·python·ai·ai agent
Shaoshing12 小时前
LeetCode100 42.接雨水
java·算法·leetcode
郭小李12 小时前
springmvc 拦截器
java·开发语言·前端
web打印社区12 小时前
Chrome-kiosk-printing能上生产吗
开发语言·前端·javascript·chrome·websocket
域限奇点访客12 小时前
用AI生成问卷的网站怎么选?看题目录入结构、题型映射和生成后的校验
算法
大风起兮云飞扬丶12 小时前
Java——日期类
java·开发语言