2015-02-24 48 views
0

我使用的是梅勒的,我在这个环节上已经找到了方法程序:变化对公式的参数,使用穆勒的方法

http://adorio-research.org/wordpress/?p=297

在程序结束时它计算的任何根机能的研究,你输入:

if __name__ == "__main__": 
    def f(z): 
     return z**3 +1 
xinit = 0.0 
ztol = 1.0e-5 
ftol = 1.0e-5 
maxiter = 100 
wantreal = False 
nroots = 3 

print zermuller(f, xinit, ztol, ftol, maxiter, wantreal, nroots) 

不过,我想计算的公式一样

z**3 +w 

其中w会以0.1或类似的步骤从1到2变化。所以,我曾尝试在表单中添加一个命令时:

w = 8 
while w < 9 : 
    w += 0.01 # Same as a = a + 1 
if __name__ == "__main__": 
    def f(z): 
     return z**3 +w 
xinit = 0.0 
ztol = 1.0e-5 
ftol = 1.0e-5 
maxiter = 100 
wantreal = False 
nroots = 2 

print zermuller(f, xinit, ztol, ftol, maxiter, wantreal, nroots) 

但它不会做任何事情,只计算的w的第一个值,没有任何一个知道我可以做它的工作,或者是什么在我的while命令中会出错。

+1

'蟒蛇没有按” t似乎喜欢它,“没有帮助。你可以请更具体吗? – thefourtheye 2015-02-24 13:35:19

+0

你走了! “但它什么都不做,只计算w的第一个值” – Mac 2015-02-24 13:37:11

回答

0

您的代码

w = 8 
while w < 9 : 
    w += 0.01 # Same as a = a + 1 

只是一个精巧(近似)的替代

w = 9.01 

你应该调用函数循环

def f(z): 
    return z**3 + w 

xinit = 0.0 
ztol = 1.0e-5 
ftol = 1.0e-5 
maxiter = 100 
wantreal = False 
nroots = 3 

for i in range(11): 
    w = 8.0 + i/10.0 
    print zermuller(f, xinit, ztol, ftol, maxiter, wantreal, nroots)