在matlab中实现梯度下降法1

		

随笔- 145 
文章- 0 
评论- 1099 

		

在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

ender =

 2
 1
复制代码


调用示例2:

syms x1 x2;
f=x1-x2+2*x1^2+2*x1*x2+x2^2;
x=[0;0];
e=10^(-20);
[k ender]=steepest(f,x,e)

结果:

复制代码
k =
58

ender =

-1.0000
1.5000

复制代码


调用示例3:

syms x1 x2;
f=3/2*x1^2+1/2*x2^2-x1*x2-2*x1;
x=[0;0];
e=10^(-2);
[k ender]=steepest(f,x,e)


结果:

复制代码
k =
 9

ender =

0.9959
0.9877
复制代码

 

分类: matlab
标签: matlab, 梯度下降法, 快速下降法
好文要顶 关注我 收藏该文
denny402
关注 - 3
粉丝 - 1122
+加关注
2
0
« 上一篇: 在matlab中实现PCA算法
» 下一篇: 在matlab中实现线性回归和logistic回归
	
posted @ 2014-10-15 00:06 denny402 阅读(12786) 评论(2) 编辑 收藏

	
  
#1楼 2015-05-19 21:02 | Daniel.Tsang  
运行提示错误:

Undefined function 'norm' for input arguments of
type 'sym'.

Error in steepest (line 10)
nor=norm(d_temp); %范数
  
#2楼 2017-08-06 15:32 | ∮Lakers  
很实用,最喜欢这种可以直接找到代码的了,代码去运行了一遍很不错的。
刷新评论 刷新页面 返回顶部
【推荐】超50万VC++源码: 大型组态工控、电力仿真CAD与GIS源码库!
【推荐】华为云11.11普惠季 血拼风暴 一促即发
【工具】SpreadJS纯前端表格控件,可嵌入应用开发的在线Excel
【腾讯云】拼团福利,AMD云服务器8元/月
腾讯云1105
相关博文:
· 求解方法之梯度下降法
· 梯度下降
· 拉格朗日乘数法
· 线性回归——梯度下降法
· 牛顿迭代法