迭代法python代码

迭代法是一种基本的数值计算方法,常用于求解方程的数值解。

python
def 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 函数:这是一个示例函数,它代表了要解决的方程。在这个示例中,我们求解的是方程 x24=0x^2 - 4 = 0 的根。在迭代法中,我们需要传入方程的导函数,这里我们手动给出了导函数,即 f(x)=12x2f'(x) = 1 - \frac{{2x}}{{2}}

示例参数设置:在示例中,我们给出了初始猜测值 initial_guess,允许的误差范围 tolerance 和最大迭代次数 max_iterations。这些参数的选择取决于具体问题和要求,需要根据实际情况进行调整。

求解根:最后,我们调用 iteration_method 函数,并传入示例函数及其他参数。如果成功找到满足条件的根,则打印出根的值和迭代次数;否则,提示未能找到满足条件的根。