我正在嘗試使用Python的對分方法,當我嘗試運行它時,什麼也沒有發生。 下面是我使用的代碼:Python:我輸入的代碼沒有做任何事
import math
a=0
b=1
def f(x):
return math.sqrt(x)-math.cos(x)
while b-a>0.0001:
c=(a+b)/2
if f(a)*f(c)>0:
a=c
else:
b=c
print(c)
我正在嘗試使用Python的對分方法,當我嘗試運行它時,什麼也沒有發生。 下面是我使用的代碼:Python:我輸入的代碼沒有做任何事
import math
a=0
b=1
def f(x):
return math.sqrt(x)-math.cos(x)
while b-a>0.0001:
c=(a+b)/2
if f(a)*f(c)>0:
a=c
else:
b=c
print(c)
我會補充說,在while中定義的'c'不是一個問題,實際上它只是'a'或'b',應該在每次迭代時修改(此時,'c'被「重新定義」 )。在這種情況下,'c'在while循環中的位置被定義(即沒有'NameError')。但是,#1和#3肯定是**問題。 – localhost
「推低C值」是什麼意思? –
請修復您的縮進。我試圖糾正它。回滾並編輯它 –
它正在做一件好事...永遠。使用調試器來找出什麼。 –
我建議在你的'a = b'和'b = c'之後添加打印語句以排除*實際正在看到的*值。 – localhost