迭代法python代码
迭代法是一种基本的数值计算方法,常用于求解方程的数值解。
pythondef iteration_method(func, initial_guess, tolerance, max_iterations):
"""
迭代法求解方程的根
Parameters:
func: 函数,表示要求解根的方程
initial_guess: float,初始猜测值
tolerance: float,允许的误差范围
max_iterations: int,最大迭代次数
Returns:
root: float,方程的根
num_iterations: int,实际迭代次数
"""
x = initial_guess
num_iterations = 0
while num_iterations < max_iterations:
# 计算下一个近似值
next_x = func(x)
# 计算误差
error = abs(next_x - x)
# 如果误差在允许范围内,则返回结果
if error < tolerance:
return next_x, num_iterations + 1
x = next_x
num_iterations += 1
# 如果超过最大迭代次数仍未找到满足条件的根,则返回 None
return None, max_iterations
# 示例方程:x^2 - 4 = 0
def example_function(x):
return x - (x**2 - 4) / (2 * x)
# 初始猜测值
initial_guess = 3.0
# 允许的误差范围
tolerance = 1e-5
# 最大迭代次数
max_iterations = 100
# 使用迭代法求解方程的根
root, num_iterations = iteration_method(example_function, initial_guess, tolerance, max_iterations)
if root is not None:
print(f"方程的根为: {root},迭代次数: {num_iterations}")
else:
print("未能找到满足条件的根,请尝试更改初始猜测值或增加最大迭代次数。")
这段代码首先定义了一个迭代法的函数iteration_method
,它接受一个函数 func
,表示要求解根的方程,以及初始猜测值、误差范围和最大迭代次数作为参数。然后,在 example_function
函数中定义了一个示例方程。最后,通过调用 iteration_method
函数,传入示例函数和其他参数,求解方程的根。
iteration_method 函数:该函数实现了迭代法的逻辑。它通过一个 while 循环不断迭代,直到满足指定的条件:达到允许的误差范围或者达到最大迭代次数。在每次迭代中,它根据当前的近似值计算下一个近似值,然后检查是否满足误差范围。如果满足条件,则返回近似根和迭代次数;如果迭代次数达到最大限制仍未找到根,则返回 None。
example_function 函数:这是一个示例函数,它代表了要解决的方程。在这个示例中,我们求解的是方程 的根。在迭代法中,我们需要传入方程的导函数,这里我们手动给出了导函数,即 。
示例参数设置:在示例中,我们给出了初始猜测值 initial_guess
,允许的误差范围 tolerance
和最大迭代次数 max_iterations
。这些参数的选择取决于具体问题和要求,需要根据实际情况进行调整。
求解根:最后,我们调用 iteration_method
函数,并传入示例函数及其他参数。如果成功找到满足条件的根,则打印出根的值和迭代次数;否则,提示未能找到满足条件的根。