用牛顿迭代法解方程代码
时间: 2024-10-29 12:19:14 浏览: 21
C语言实现牛顿迭代法解方程详解
牛顿迭代法是一种常用的数值求解根的算法,它通过不断逼近函数的零点来找到方程的近似解。以下是使用Python实现牛顿迭代法的一个简单例子,我们假设我们要解的是一个单变量的一元二次方程 \( f(x) = x^2 - a = 0 \),其中 \( a \) 是已知常数:
```python
def newton_raphson(f, df, x_init, tolerance=1e-6, max_iterations=100):
"""
使用牛顿迭代法求解方程f(x)=0的近似解
参数:
f (function): 目标函数
df (function): f(x)的导数
x_init (float): 初始猜测值
tolerance (float): 迭代停止的标准,即绝对误差小于这个值
max_iterations (int): 最大迭代次数
返回:
float: 方程的近似解
"""
x_next = x_init
for _ in range(max_iterations):
x_prev = x_next
x_next = x_prev - f(x_prev) / df(x_prev)
# 检查是否达到精度要求或迭代次数上限
if abs(x_next - x_prev) < tolerance or _ == max_iterations - 1:
break
return x_next
# 示例方程及其导数
a = 2 # 一元二次方程 a*x^2 - x - a = 0 的系数
f = lambda x: x**2 - a
df = lambda x: 2 * x - 1
# 初始化迭代
initial_guess = 1.0 # 首次猜测根的位置
solution = newton_raphson(f, df, initial_guess)
print(f"方程 {f} 的解大约为: {solution}")
阅读全文