在matlab中实现梯度下降法
梯度下降法的原理,本文不再描述,请参阅其它资料。
梯度下降法函数function [k ender]=steepest(f,x,e),需要三个参数f、x和e,其中f为目标函数,x为初始点,e为终止误差。输出也为两个参数,k表示迭代的次数,ender表示找到的最低点。
steepest.m:
按 Ctrl+C 复制代码
按 Ctrl+C 复制代码
调用示例1:
syms x1 x2; f=(x1-2)^2+2*(x2-1)^2; x=[1;3]; e=10^(-20);
[k ender]=steepest(f,x,e)
结果:
k =27
Undefined function 'norm' for input arguments of
type 'sym'.
Error in steepest (line 10)
nor=norm(d_temp); %范数