x0 = int(raw_input('What is your x0: '))
n = int(raw_input('How many times do you want to iterate: '))
def secant(x0,x1,n):
for i in range(n):
if f(x1)-f(x0) == 0:
return x1
r = ((x1-((f(x1)*(x1-x0))))/(f(x1)-f(x0)))*1.0
x0=x1
x1=r
return x1
G = 6.674*(10**-11) ; M = 5.974*(10**24) ; m = 7.348*(10**22) ; R= 7.348*(10**22) ; w = 2.662*(10**-6)
def f(r) :
return r+((G*M)/((R**2)-(r**2))*(w**2))-((G*M)/(R**2)*(w**2))
print r
这是我在割线方法上的代码。似乎没有语法错误,但我认为我没有正确编写,因为它没有给我任何答案。如果有人可以帮助解决错误并告诉我我做错了什么以及如何解决这个问题会很好。
答案 0 :(得分:1)
这是完整的代码吗?如果是这样,那么你就不会得到任何答案'因为你还没有运行任何功能。您的所有代码都是获取输入并定义两个函数。如果你想要割线实际运行,你需要调用它。只需添加以下行:
secant(x0,x1,n)
但首先要确保给x1一个值。