Python实现斯蒂芬森迭代自动计算

 Python实现斯蒂芬森迭代自动计算

构建不动点函数,并将函数代入公式中,即可得到答案。

这里以不动点函数为(x^2+1)^(1/3)为例

  1. 改写fun1(x)的返回值;
  2. 赋予初值x=1.5;k=0;
  3. 设置误差限;
  4. 运行即可得到答案。
def fun1(x):     # 不动点函数
    return (x**2+1)**(1/3)

x = 1.5        # 初值
k = 0
while True:
    a = x
    b = fun1(x)
    c = fun1(fun1(x))
    x = x-((b-x)**2)/(c-2*b+a)
    k += 1
    b = fun1(x)                       # 去掉这两行就能得到第0次迭代的b c结果
    c = fun1(fun1(x))               # 去掉这两行就能得到第0次迭代的b c结果
    print('第{}次迭代的结果为{} {} {}'.format(k, x, b, c))
    if (abs(x-a)<(1e-5)):  # abs()函数返回绝对值,1e-5为10的负5次方
        break
print("方程的解为:")
print(x)

答案如图所示:

猜你喜欢

转载自blog.csdn.net/wushaoji321/article/details/106800017