一个通过迭代求解convex function最小值的方法: Gradient descent(梯度下降法)
http://en.wikipedia.org/wiki/Gradient_descent
这里给出一个python的代码:
The gradient descent algorithm is applied to find a local minimum of the function f(x)=x4-3x3+2 , with derivative f'(x)=4x3-9x2. Here is an implementation in the Python programming language.
#
From calculation, we expect that the local minimum occurs at x=9/4
xOld
=
0
xNew
=
6
#
The algorithm starts at x=6
eps
=
0.01
#
step size
precision
=
0.00001
def
f_prime(x):
return
4
*
x
**
3
-
9
*
x
**
2
while
abs(xNew
-
xOld)
>
precision:
xOld
=
xNew
xNew
=
xOld
-
eps
*
f_prime(xNew)
print
(
"
Local minimum occurs at
"
, xNew)