| 5 | 1/1 | 返回列表 |
| 查看: 890 | 回復: 3 | ||||
| 當前只顯示滿足指定條件的回帖,點擊這里查看本話題的所有回帖 | ||||
[求助]
哪位MATLAB高手能幫忙調(diào)試一下程序,不是遇到這問題就是那問題 已有1人參與
|
||||
|
function [x,val,k]=frcg(fun,gfun,x0) % 功能: 用FR共軛梯度法求解無約束問題: min f(x) %輸入: x0是初始點, fun, gfun分別是目標函數(shù)和梯度 %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分別是近似最優(yōu)點和最優(yōu)值, k是迭代次數(shù). maxk=5000; %最大迭代次數(shù) 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'. 怎么回事呢 |
專家顧問 (職業(yè)作家)
![]() |
專家經(jīng)驗: +831 |
|
簡單修改就行,如下: function [x,val,k]=frcg(fun,gfun,x0) % 功能: 用FR共軛梯度法求解無約束問題: min f(x) %輸入: x0是初始點, fun, gfun分別是目標函數(shù)和梯度 %輸出: x, val分別是近似最優(yōu)點和最優(yōu)值, k是迭代次數(shù). maxk=5000; %最大迭代次數(shù) 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 |

| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 352分 化工與材料 +5 | 海納百川Ly 2026-03-27 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 一志愿南昌大學324求調(diào)劑 +3 | hanamiko 2026-03-27 | 3/150 |
|
|
[考博] 26申博 +3 | 加油沖。 2026-03-26 | 3/150 |
|
|
[考研] 279 分 求調(diào)劑 +4 | 睡個好覺_16 2026-03-24 | 4/200 |
|
|
[考研] 315調(diào)劑 +4 | 0860求調(diào)劑 2026-03-26 | 5/250 |
|
|
[考研] 考研調(diào)劑 +9 | 小蠟新筆 2026-03-26 | 9/450 |
|
|
[考研] 341求調(diào)劑 +7 | 青檸檬1 2026-03-26 | 7/350 |
|
|
[考研] 一志愿鄭州大學,080500學碩,總分317分求調(diào)劑 +4 | 舉個栗子oi 2026-03-24 | 5/250 |
|
|
[考研] 349求調(diào)劑 +4 | 李木子啊哈哈 2026-03-25 | 4/200 |
|
|
[考研] 325求調(diào)劑 +3 | Aoyijiang 2026-03-23 | 3/150 |
|
|
[考研] 281求調(diào)劑 +3 | 亞克西good 2026-03-26 | 5/250 |
|
|
[考研] 285求調(diào)劑 +3 | AZMK 2026-03-24 | 3/150 |
|
|
[考研] 0703化學調(diào)劑,求導師收 +7 | 天天好運來上岸?/a> 2026-03-24 | 7/350 |
|
|
[考研] 一志愿北化315 求調(diào)劑 +3 | akrrain 2026-03-24 | 3/150 |
|
|
[考研] 求調(diào)劑 +6 | 研研,接電話 2026-03-24 | 7/350 |
|
|
[考研] 291求調(diào)劑 +3 | HanBeiNingZC 2026-03-24 | 3/150 |
|
|
[考研] 269求調(diào)劑 +4 | 我想讀研11 2026-03-23 | 4/200 |
|
|
[考研] 336化工調(diào)劑 +4 | 王大坦1 2026-03-23 | 5/250 |
|
|
[考研] 求調(diào)劑院校信息 +6 | CX 330 2026-03-21 | 6/300 |
|
|
[考研] 一志愿南大,0703化學,分數(shù)336,求調(diào)劑 +3 | 收到VS 2026-03-21 | 3/150 |
|