24小时热门版块排行榜    

Znn3bq.jpeg
查看: 913  |  回复: 3

guan0603

新虫 (初入文坛)

[求助] 哪位MATLAB高手能帮忙调试一下程序,不是遇到这问题就是那问题 已有1人参与

function [x,val,k]=frcg(fun,gfun,x0)
% 功能: 用FR共轭梯度法求解无约束问题: min f(x)
%输入: x0是初始点, fun, gfun分别是目标函数和梯度
%function g=gfun(x) g=[400*x(1)*(x(1)^2-x(2))+2*(x(1)-1),-200*(x(1)^2-x(2))]';
%function f=fun(x) f=100*(x(1)^2-x(2))^2+(x(1)-1)^2;
%输出: x, val分别是近似最优点和最优值, k是迭代次数.
maxk=5000; %最大迭代次数
rho=0.6;sigma=0.4;
k=0;epsilon=1e-4;
n=length(x0);
while(k<maxk)
g=feval(gfun,x0); %计算梯du
itern=k-(n+1)*floor(k/(n+1));
itern=itern+1;
%计算搜索方向
if(itern==1)
d=-g;
else
beta=(g'*g)/(g0'*g0);
d=-g+beta*d0; gd=g'*d;
if(gd>=0.0)
d=-g;
end
end
if(norm(g)<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;
val=feval(fun,x0);
g0=g;d0=d;
k=k+1;
end
x=x0;
val=feval(fun,x);
%输入x0=[-1.2 1]';
%[x,val,k]=frcg('fun','gfun',x0)
在命令窗口输入
x0=[-1.2 1]';
>> [x,val,k]=frcg('fun','gfun',x0)
??? Undefined command/function 'frcg'.
怎么回事呢
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wurongjun

专家顾问 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
guan0603: 金币+10, ★★★很有帮助 2014-12-24 11:58:46
简单修改就行,如下:
function [x,val,k]=frcg(fun,gfun,x0)
% 功能: 用FR共轭梯度法求解无约束问题: min f(x)
%输入: x0是初始点, fun, gfun分别是目标函数和梯度
%输出: x, val分别是近似最优点和最优值, k是迭代次数.
maxk=5000; %最大迭代次数
rho=0.6;sigma=0.4;
k=0;epsilon=1e-4;
n=length(x0);
while(k<maxk)
g=feval(gfun,x0); %计算梯du
itern=k-(n+1)*floor(k/(n+1));
itern=itern+1;
%计算搜索方向
if(itern==1)
d=-g;
else
beta=(g'*g)/(g0'*g0);
d=-g+beta*d0; gd=g'*d;
if(gd>=0.0)
d=-g;
end
end
if(norm(g)<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;
val=feval(fun,x0);
g0=g;d0=d;
k=k+1;
end
x=x0;
val=feval(fun,x);
function g=gfun(x)
g=[400*x(1)*(x(1)^2-x(2))+2*(x(1)-1),-200*(x(1)^2-x(2))]';
function f=fun(x)
f=100*(x(1)^2-x(2))^2+(x(1)-1)^2;


下面是运行结果:
>> x0=[-1.2 1]'
x0 =
   -1.2000
    1.0000
>>  [x,val,k]=frcg('fun','gfun',x0)
x =
    0.9999
    0.9999
val =
  2.9396e-009
k =
    44

» 本帖已获得的红花(最新10朵)

善恶到头终有报,人间正道是沧桑.
2楼2014-12-24 11:13:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guan0603

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by wurongjun at 2014-12-24 11:13:16
简单修改就行,如下:
function =frcg(fun,gfun,x0)
% 功能: 用FR共轭梯度法求解无约束问题: min f(x)
%输入: x0是初始点, fun, gfun分别是目标函数和梯度
%输出: x, val分别是近似最优点和最优值, k是迭代次数.
...

>> x0=[-1.2 2]'

x0 =

   -1.2000
    2.0000

>> [x,val,k]=frcg('fun','gfun',x0)
??? Error using ==> frcg
Too many input arguments.
这是怎么回事呢,我刚接触MATLAB,编程基础很差,谢谢帮助
3楼2014-12-24 11:58:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guan0603

新虫 (初入文坛)

送红花一朵
引用回帖:
2楼: Originally posted by wurongjun at 2014-12-24 11:13:16
简单修改就行,如下:
function =frcg(fun,gfun,x0)
% 功能: 用FR共轭梯度法求解无约束问题: min f(x)
%输入: x0是初始点, fun, gfun分别是目标函数和梯度
%输出: x, val分别是近似最优点和最优值, k是迭代次数.
...

出来了,谢谢了
4楼2014-12-24 14:26:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 guan0603 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 271求调剂 +32 2261744733 2026-04-11 33/1650 2026-04-15 22:03 by noqvsozv
[考研] 297,工科调剂? +3 河南农业大学-能 2026-04-14 3/150 2026-04-15 22:02 by noqvsozv
[考研] 291分调剂 +11 上岸小莹加油 2026-04-09 12/600 2026-04-15 21:55 by noqvsozv
[考研] 22408 312求调剂 +20 门路摸摸 2026-04-14 21/1050 2026-04-15 20:39 by cuisz
[考研] 药学求调剂 +11 RussHu 2026-04-12 13/650 2026-04-15 19:07 by zhuwenxu
[考研] 求调剂 +12 何气正 2026-04-13 13/650 2026-04-14 14:47 by zs92450
[考研] 085600材料与化工329分求调剂 +24 叶zilin 2026-04-13 25/1250 2026-04-14 09:20 by 试管破裂
[考研] 332求调剂 +15 蕉蕉123 2026-04-10 15/750 2026-04-13 23:12 by pies112
[考研] 0831一轮调剂失败求助 +10 小熊睿睿_s 2026-04-11 10/500 2026-04-12 22:43 by 长弓傲
[考研] 0831生医工第一轮调剂失败求助 +12 小熊睿睿_s 2026-04-11 16/800 2026-04-12 16:28 by 钰璞
[考研] 291求调剂 +8 关忆北. 2026-04-11 8/400 2026-04-12 09:32 by 逆水乘风
[考研] 085410 273分调剂 +4 X1999 2026-04-09 4/200 2026-04-11 13:05 by pies112
[考研] 0859,337求调剂 +4 研s. 2026-04-10 4/200 2026-04-11 11:34 by caotw2020
[考研] 求调剂 +6 archer.. 2026-04-09 8/400 2026-04-11 10:55 by zhq0425
[考研] 085402通信工程调剂,有4项学科竞赛国奖(电赛国二),硕士研究生调剂自荐信。 +5 m永o不v言o弃m 2026-04-09 5/250 2026-04-11 09:33 by zhq0425
[考研] 263能源动力专硕求调剂 +3 加大号饭盒袋 2026-04-10 3/150 2026-04-10 22:23 by 286640313
[考研] 中科院总分315求调剂 +8 lallalh 2026-04-09 8/400 2026-04-10 19:30 by dick_runner
[考研] 314求调剂 +18 xhhdjdjsjks 2026-04-09 19/950 2026-04-10 18:53 by HPUCZ
[考研] 314求调剂 +14 weltZeng 2026-04-09 14/700 2026-04-09 23:14 by wolf97
[考研] 083200 初试305分 求调剂 暂不考虑跨专业 +15 Claireyyyy 2026-04-09 15/750 2026-04-09 16:11 by zhuimr
信息提示
请填处理意见