This commit is contained in:
lwj
2025-05-15 12:22:42 +08:00
parent af50496fdc
commit fda76d99f7
3 changed files with 32 additions and 46 deletions

View File

@@ -1,43 +1,40 @@
def fd1(x):
def f1(x):
return 1+1/x**2
def fd2(x):
return 1/(x-1)**0.5
def f2(x):
return 1/((x-1)**0.5)
def Renew(x,fd,err):
def diedai(x,fd,err):
count=0
i = 0
try:
while True:
xk = fd(x)
if abs(i) < (xk-x):
count += 1
else:
count = 0
if count > 10:
print("不收敛")
break
if abs(xk-x) < err:
return xk
i = xk-x
x = xk
except Exception as e:
print(f"发生错误: {e}")
return None
while True:
xk = fd(x)
if complex(xk).imag != 0:
break
if (i) < abs(xk-x):
count += 1
else:
count = 0
if count > 10:
break
if abs(xk-x) < err:
return xk
i = abs(xk-x)
x = xk
return None
if __name__ == "__main__":
x0 = 1.5
result = Renew(x0, fd1, 1e-5)
result = diedai(x0, f1, 1e-5)
if result is not None:
print(f"1式收敛 解为: {result:.5f}")
print(f"(1)收敛 解为: {result:.5f}")
else:
print("1式不收敛")
print("(1)不收敛")
result = Renew(x0, fd2, 1e-5)
result = diedai(x0, f2, 1e-5)
if result is not None:
print(f"2式收敛 解为: {result:.5f}")
print(f"(2)收敛 解为: {result:.5f}")
else:
print("2式不收敛")
print("(2)不收敛")