迭代法差分法计算n次方根(差分法自己写的算法)

在这里插入图片描述
在这里插入图片描述
上面第一个是二分法计算n次方根,下面是差分法计算n次方根,不知道如何寻找任意数字n?

import time
import math
n,X,A,B,C,i,a,b=0,0,0,0,0,0,0,0
print("这是一个计算根号的代码,请输入被开数和次数")#提示
X=float(input())#输入被开方数
n=int(input())#输入次数
A=B=pow(10,int(math.log10(X)/2))#计算特征数
C=pow(X,1/n)#利用系统的计算
time_start=time.time()
for i in range(0,1000000):
  A=(A+X/(A**(n-1)))*0.5#二分法
  a=a+1#计算次数
  if A==C:#如果迭代的结果和系统结果一样
    break#跳出
for i in range(0,10000):
  B=(X-B**n)/((B+1)**n-B**n)+B#自己的方法
  b=b+1#计算次数
  if B==C:#如果迭代的结果和系统结果一样
    break#跳出
time_end=time.time()
print('totally cost',time_end-time_start)#计时
print("%.40f"%A,a)#二分法结果,迭代次数
print("%.40f"%B,b)#自己方法结果,迭代次数
print("%.40f"%C)#系统计算的结果





猜你喜欢

转载自blog.csdn.net/shanyoufengfu/article/details/102754753
今日推荐