>>> import math
#defining first function
>>> def f(a):
return a-math.sin(a)-math.pi/2
#defining second fuction
>>> def df(a):
return 1-math.cos(a)
#defining third function which uses above functions
>>> def alpha(a):
return a-f(a)/df(a)
如何编写一个代码,其中alpha(a)取a = 2的起始值,alpha(2)的解将在下次成为输入。例如:让我们假设alpha(2)变为2.39,因此下一个值将是alpha(2.39)并继续{最多50次迭代}。有人可以帮助我一点。提前谢谢。
答案 0 :(得分:2)
您可以让程序使用for
循环进行迭代,使用变量来存储中间结果:
temp = 2 # set temp to the initial value
for _ in range(50): # a for loop that will iterate 50 times
temp = alpha(temp) # call alpha with the result in temp
# and store the result back in temp
print(temp) # print the result (optional)
print(temp)
将打印中间结果。这不是必需的。它仅演示了在整个过程中如何更新temp
变量。
答案 1 :(得分:0)
你可以将它客观化。
import math
class inout:
def __init__(self, start):
self.value = start
def f(self, a):
return a-math.sin(a)-math.pi/2
def df(self, a):
return 1-math.cos(a)
def alpha(self):
self.value = self.value-self.f(self.value)/self.df(self.value)
return self.value
然后创建一个inout
对象,每次调用其alpha
方法时,它都会给出系列中的下一个值。
demo = inout(2)
print(demo.alpha())