| 学习榜样 | 古今学习模式与中外人才培养 | 基础学习 | 语言学习 | 人间美文 | 学习能力 | 学习工具 | 学习理论 | 科研美图 |
您当前的位置:首页 > 快乐学习 > 语言学习

Frank-Wolfe算法 matlab程序

时间:2014-05-21 23:00:06  来源:  作者:

X0=input('请输入一个可行域顶点向量:X0=');
e=input('请输入要求的误差:e=');
X=X0;
syms x1 x2 lamida;
f=4*x1^2+(x2-2)^2;
df_dx1=diff(f,x1);
df_dx2=diff(f,x2);
g_f1=subs(df_dx1,{x1,x2},X);
g_f2=subs(df_dx2,{x1,x2},X);
g_f=[double(g_f1);double(g_f2)];
[x,feval]=linprog(g_f,[],[],[],[],[-2;-1],[2;1]);
while(abs(g_f'*(x-X))>e)
f0=subs(f,{x1,x2},X+lamida*(x-X));
f1=inline(char(f0));
[lamida,fval]=fminbnd(f1,0,1);
X=X+lamida*(x-X);
g_f1=subs(df_dx1,{x1,x2},X);
g_f2=subs(df_dx2,{x1,x2},X);
g_f=[g_f1;g_f2];
g_f=double(g_f);
[x,feval]=linprog(g_f,[],[],[],[],[-2;-1],[2;1]);
clear lamida;
syms lamida;
end
X
subs(f,{x1,x2},X)

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
栏目更新
栏目热门