whlie循环语句只循环了一次
<g=lambda x:x*x+x-6a=float(input('请输入a:'))
b=float(input('请输入b:'))
if g(a)*g(b)>0:
print("函数解不在a,b之间")
if g(a)*g(b)==0:
if g(a)==0:
print("解为:",a)
else:
print("解为:",b)
else:
while(float(b-a)>0.00000001):
X=(a+b)/2
if g(a)*g(X)<0:
b=X
if g(a)*g(X)==0:
break
else:
a=X
X=(a+b)/2
print('解为',X)
>
为何我的二分法只能循环一次就终止了 跟你输入的数有关 BngThea 发表于 2017-11-20 12:27
跟你输入的数有关
如果想要循环多次求出最合适的数该怎么改
小于俄方氛围发 发表于 2017-11-20 12:45
如果想要循环多次求出最合适的数该怎么改
仔细看了一下,原来是你的while循环内部的if用错了,应该把第二个if改成elif:
while(float(b-a)>0.00000001):
X=(a+b)/2
if g(a)*g(X)<0:
b=X
elif g(a)*g(X)==0:
break
else:
a=X
页:
[1]