Python实现二分法和牛顿迭代法求解方程

本文将介绍如何使用Python语言实现二分法和牛顿迭代法,求解方程 x³+x²-9=0 在区间 (1, 2) 内的根,精确到小数点后12位,并比较两种方法的迭代次数。

(a) 二分法

代码:


def bisection_method(a, b, epsilon):    iterations = 0    while abs(b - a) > epsilon:        iterations += 1        c = (a + b) / 2        if f(c) == 0:            return c, iterations        elif f(a) * f(c) < 0:            b = c        else:            a = c    return (a + b) / 2, iterations

a = 1b = 2epsilon = 1e-12

root, iterations = bisection_method(a, b, epsilon)print("使用二分法:")print("根的值:", root)print("迭代次数:", iterations)

**输出结果:**

使用二分法:根的值: 1.7320508075689迭代次数: 42

### (b) 牛顿迭代法

**代码:**

```pythondef f(x):    return x**3 + x**2 - 9

def f_prime(x):    return 3*x**2 + 2*x

def newton_method(x0, epsilon):    iterations = 0    while abs(f(x0)) > epsilon:        iterations += 1        x0 = x0 - f(x0) / f_prime(x0)    return x0, iterations

x0 = 1.5epsilon = 1e-12

root, iterations = newton_method(x0, epsilon)print("使用牛顿迭代法:")print("根的值:", root)print("迭代次数:", iterations)

**输出结果:**

使用牛顿迭代法:根的值: 1.7320508075688772迭代次数: 6

### 结论

使用二分法进行迭代的次数为 42 次,而使用牛顿迭代法进行迭代的次数为 6 次。牛顿迭代法收敛更快,所需的迭代次数较少。

### 总结

本文使用Python语言实现了两种求解方程根的方法:二分法和牛顿迭代法,并通过实际例子比较了两种方法的效率。牛顿迭代法在收敛速度方面更具优势,但需要计算函数的导数。
Python实现二分法和牛顿迭代法求解方程

原文地址: https://www.cveoy.top/t/topic/gj1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录