| 查看: 2267 | 回复: 10 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
[求助]
新手matlab求助,谢谢各位
|
||
|
最优控制中的最速下降法,若是求不出函数几乎函数梯度的解析表达式,最速下降法的程序该怎么样处理呢? 以下是我们平时用的最速下降法程序 function [x,val,k]=grad(fun,gfun,x0) %功能: 用最速下降法求解无约束问题: min f(x) %输入: x0是初始点, fun, gfun分别是目标函数和梯度 %输出: x, val分别是近似最优点和最优值, k是迭代次数. maxk=5000; %最大迭代次数 rho=0.5;sigma=0.4; k=0; epsilon=1e-5; while(k¡maxk) g=feval(gfun,x0); %计算梯度 d=-g; %计算搜索方向 if(norm(d)¡epsilon), break; end m=0; mk=0; while(m¡20) %Armijo搜索 if(feval(fun,x0+rho^m*d)¡feval(fun,x0)+sigma*rho^m*g’*d) mk=m; break; end m=m+1; end x0=x0+rho^mk*d; k=k+1; end x=x0; val=feval(fun,x0); %这里的fun是函数,f是函数,g是f函数的梯度,这里的f和g都有解析的表达式 function f=fun(x) f=100*(x(1)^2-x(2))^2+(x(1)-1)^2; function g=gfun(x) g=[400*x(1)*(x(1)^2-x(2))+2*(x(1)-1), -200*(x(1)^2-x(2))]’; |
» 猜你喜欢
退学或坚持读
已经有25人回复
遇见不省心的家人很难过
已经有13人回复
博士延得我,科研能力直往上蹿
已经有4人回复
免疫学博士有名额,速联系
已经有14人回复
面上基金申报没有其他的参与者成吗
已经有4人回复
多组分精馏求助
已经有6人回复
11楼2013-09-29 16:18:11
buhely
银虫 (小有名气)
- 应助: 2 (幼儿园)
- 金币: 1108.5
- 散金: 151
- 红花: 2
- 帖子: 52
- 在线: 70.3小时
- 虫号: 932783
- 注册: 2009-12-24
- 专业: 控制理论与方法
2楼2013-09-26 10:00:19
3楼2013-09-26 10:23:53
virtualzx
木虫 (著名写手)
- 应助: 263 (大学生)
- 金币: 7161.3
- 红花: 54
- 帖子: 1605
- 在线: 317.6小时
- 虫号: 2069080
- 注册: 2012-10-18
- 性别: GG
- 专业: 理论和计算化学
4楼2013-09-26 11:24:25













回复此楼