二分法python程序解方程
时间: 2024-09-22 11:05:09 浏览: 39
非线性方程求根——二分法python
二分法是一种用于在有序区间内查找特定元素(例如方程根)的搜索算法,也叫做折半查找。在Python中,我们可以编写一个函数来应用二分法寻找一元二次方程的实数解,前提是方程的形式为f(x) = ax^2 + bx + c = 0。以下是简单的二分法求解过程的一个示例:
```python
def bisection_method(f, a, b, epsilon=1e-6):
"""
使用二分法求解一元二次方程的实数根
:param f: 方程函数 f(x)
:param a: 区间左端点
:param b: 区间右端点
:param epsilon: 精度阈值,默认为1e-6
:return: 根部近似值
"""
if f(a) * f(b) >= 0: # 如果区间端点的函数值同号,则无解
return None
while b - a > epsilon:
mid = (a + b) / 2
if f(mid) == 0: # 如果找到根,直接返回
return mid
elif f(a) * f(mid) < 0: # 否则更新区间的边界
b = mid
else:
a = mid
return (a + b) / 2 # 当精确到指定精度时,返回平均值作为近似解
# 示例方程:f(x) = x**2 - 4
def quadratic_function(x):
return x**2 - 4
root = bisection_method(quadratic_function, -10, 10)
print("Root is approximately:", root)
阅读全文