を経由して関数を最小化することは本当に簡単です:のPython:私のコードがループ
import numpy
def f(x):
return x**2 +1
f_min=10
for x in numpy.arange(-1,10,0.1):
if f(x)<f_min :
f_min=f(x)
x_min=x
else:
print (x_min)
それは私に正しい結果(X - > 0)を与えるだけでなく、一度しかし、時代のたくさん。それはなぜですか、どうすればそのようにすることができますか?
yes else節はすべての反復で最初の反復の後にループ内で実行されるためです。それを字下げしないでください。 @ JimFasarakis-Hilliardが言ったように –
が言った。 forループでの印刷を停止します。あなたが最小値を更新するのに失敗するたびに、あなたは最小値が何であるかを表示します。 'else:print(x_min)' – piRSquared
@ JimFasarakis-Hilliardを削除するか、 'else'を削除して' print'を0字下げのレベルにしてください。ここでは 'for'ループのためにあいまいな' else'機能を有効にする必要はありません:) –