不动点迭代法(Fixed Point Iteration)迭代求根的python程序 |
您所在的位置:网站首页 › 用python求根 › 不动点迭代法(Fixed Point Iteration)迭代求根的python程序 |
迭代法的作用
许多复杂的求解问题,都可以转换成方程f(x)=0的求解问题。这一系列的解叫做方程的根。对于非线性方程的求解,在自变量范围内往往有多个解,我们将此变化区域分为多个小的子区间,对每个区间进行分别求解。我们在求解过程中,选取一个近似值或者近似区间,然后运用迭代方法逐步逼近真实解。 方程求根的常用迭代法有:二分法、不动点迭代、牛顿法、弦截法。 不动点迭代法简单迭代法或基本迭代法又称不动点迭代法 1、不动点(FixedPoint) 首先来看一下什么是不动点: 求方程式:x3 - 0.165 × x2 + 3.993 × 10-4 = 0在(0,0.11)上的根 先看看不用迭代法计算的结果 from sympy import * from sympy.abc import x def func(x): return x**3 - 0.165*x**2 + 3.993*10**(-4) result = solveset(func(x), x, Interval(0, 0.11)) print(result)结果: FiniteSet(0.0623775815137495) 约定一个误差,当误差小于某个数值的时候,迭代停止代码: xl = 0 #区间下限 xu = 0.11 #区间上限 x = (xl+xu)/2 #迭代初始值 x_list = [x] i = 0 while True: x = x ** 3 - 0.165 * x ** 2 + 3.993 * 10 ** (-4) + x x_list.append(x) if len(x_list) > 1: i += 1 error = abs((x_list[-1] - x_list[-2]) / x_list[-1]) if error |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |