我正在使用教授给我的一些代码,但不知道如何解决。 我收到错误消息:
26 err=(x0-2.)
---> 27 rate_est=abs(err[1:-1]/err[0:-2])
28 print('The estimate of our convergence rate is:', rate_est)
TypeError: 'float' object is not subscriptable
如果对您有用,请参见以下其他相关代码:
import matplotlib.pyplot as plt
import numpy as np
def g(S,x):
g=(1/2)*((S/x)+x)
return g;
x0=1
S=2
tol=pow(10.0,-10)
stopCrit=1.0
deltaX=1.0
nIter=0
xn=x0
print(x0)
while((stopCrit>tol) and (nIter<50)):
nIter=nIter+1
x1=g(S,x0)
xn=np.append(xn,x1)
print(x1)
deltaX=np.abs(x1-x0)
stopCrit=deltaX/np.abs(x1)
x0=x1
xn=np.array(xn)
err=(x0-2.)
rate_est=abs(err[1:-1]/err[0:-2])
print('The estimate of our convergence rate is:', rate_est)
答案 0 :(得分:0)
您的err=(x0-2.)
是浮点数。在下面的语句中,您将其视为列表或元组或其他内容:err[1:-1]/err[0:-2]
,这没有任何意义。