問題。 初始值是10000,而解正在向10000收斂,而不是實際的解1.
。問題。 初始值是10000,解決方案正在收斂到10000,而不是實際的解決方案1。
import numpy.linalg as nl
x_ini=10000
def obj(x)。
f = x**2 - 2 *x 3
return f
def grad(x)。
df = 2*x - 2: df = 2*x
return df
n_iter=1000
lr=0.001
x_old = x_ini
for _ in range(True) 。
x_new = x_old - lr*(grad(x_old))
x_old = x_new
if(nl.norm(grad(x_old))<=1e-03) 。
break。
x_new = x_old
print(x_new)
uj5u.com熱心網友回復:
while True:
x_new = x_old - lr*(grad(x_old))
x_old = x_new
y = nl.norm(grad(x_old))
if(y<=1e-03) 。
breakprint(x_new)
你可以將for改為while
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/329803.html
標籤:
上一篇:使Azure門戶上的Web應用程式僅在一周內可用幾個小時
下一篇:Haskellmonad。無法匹配預期型別。(EitherCErrora,[String])與實際型別匹配。錯了,A0B0
