求解线性方程的简单迭代法:
例1: 使用简单迭代法求方程$$f(x) = x - 10^x + 2 = 0$$在区间[0,1]内的实根,计算结果保留4位有效数字.# -*- coding: utf-8 -*-
"""
使用简单迭代法求方程f(x) = x - 10**x + 2 = 0在区间[0,1]内的实根,计算结果保留4位有效数字.
@author: morxio
"""
import numpy as np
def Phi(x, scheme):
'''迭代函数(格式)'''
if scheme == 1:
#收敛
return np.log10(x + 2.0)
if scheme == 2:
#发散
return ( 10**x - 2 )
def SimpleIterationScheme(scheme):
'''简单迭代法: 参数1或2表示迭代函数'''
x = np.array([1.0]) #x0
x = np.append( x, Phi(x[0], scheme) ) #x1
print(f"x[0] = {x[0]:.8f}")
print(f"x[1] = {x[1]:.8f}, 误差为{np.abs(x[1]-x[0]):.8f}")