坐标上升算法

坐标上升的伪代码如下:

1、首先给定一个初始点,如 x
2、对于函数的的每一个自变量
               (1)  固定xi;(把xi看成变量,其它为常数,然后另其偏导等于0)
                     (2)  更新x
                     (3)  更新f(x)的值
3、循环执行步骤2,直到f的值不再变化。

其实还是很好理解的,比如f(x1,x2,x3,x4,...xn)

  • 首先给一个初始点x=[第一个分量初始值,第二个分量初始值,...第n个分量初始值]

  • 固定x1,其它看成常数,求其偏导等于0
    得到: x1=q1(x2,x3,x4,...xn)
    更新 x的第一个分量

  • 固定x2,其它看成常数,求其求其偏导等于0
    得到: x2=q2(x1,x3,x4,...xn)
    更新x的第二个分量
    ...
    ...

  • 固定xn,其它看成常数,求其求其偏导等于0
    得到: xn=qn(x1,x2,x3,x4,...xn-1)
    更新x的第n个分量

  • 用更新过的x计算f(x)

  • 迭代上述过程,直至f(x)不再变化

你可能感兴趣的:(坐标上升算法)