| 24小時(shí)熱門(mén)版塊排行榜 |
| 5 | 1/1 | 返回列表 |
| 查看: 885 | 回復(fù): 3 | ||||
| 當(dāng)前只顯示滿(mǎn)足指定條件的回帖,點(diǎn)擊這里查看本話(huà)題的所有回帖 | ||||
guan0603新蟲(chóng) (初入文壇)
|
[求助]
哪位MATLAB高手能幫忙調(diào)試一下程序,不是遇到這問(wèn)題就是那問(wèn)題 已有1人參與
|
|||
|
function [x,val,k]=frcg(fun,gfun,x0) % 功能: 用FR共軛梯度法求解無(wú)約束問(wèn)題: min f(x) %輸入: x0是初始點(diǎn), fun, gfun分別是目標(biāo)函數(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)點(diǎn)和最優(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); %計(jì)算梯du itern=k-(n+1)*floor(k/(n+1)); itern=itern+1; %計(jì)算搜索方向 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 %檢驗(yàn)終止條件 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'. 怎么回事呢 |
新蟲(chóng) (初入文壇)
專(zhuān)家顧問(wèn) (職業(yè)作家)
![]() |
專(zhuān)家經(jīng)驗(yàn): +831 |
|
簡(jiǎn)單修改就行,如下: function [x,val,k]=frcg(fun,gfun,x0) % 功能: 用FR共軛梯度法求解無(wú)約束問(wèn)題: min f(x) %輸入: x0是初始點(diǎn), fun, gfun分別是目標(biāo)函數(shù)和梯度 %輸出: x, val分別是近似最優(yōu)點(diǎn)和最優(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); %計(jì)算梯du itern=k-(n+1)*floor(k/(n+1)); itern=itern+1; %計(jì)算搜索方向 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 %檢驗(yàn)終止條件 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; 下面是運(yùn)行結(jié)果: >> 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 |

新蟲(chóng) (初入文壇)
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 求調(diào)劑323材料與化工 +3 | 1124361 2026-03-24 | 3/150 |
|
|---|---|---|---|---|
|
[考研] 求調(diào)劑一志愿武漢理工大學(xué)材料工程(085601) +5 | WW.' 2026-03-23 | 7/350 |
|
|
[考研] 293求調(diào)劑 +6 | 加一一九 2026-03-24 | 6/300 |
|
|
[考研] 求材料,環(huán)境專(zhuān)業(yè)調(diào)劑 +3 | 18567500178 2026-03-18 | 3/150 |
|
|
[考研] 335求調(diào)劑 +4 | yuyu宇 2026-03-23 | 5/250 |
|
|
[考研] 上海電力大學(xué)材料防護(hù)與新材料重點(diǎn)實(shí)驗(yàn)室招收調(diào)劑研究生(材料、化學(xué)、電化學(xué),環(huán)境) +3 | 我愛(ài)學(xué)電池 2026-03-23 | 3/150 |
|
|
[考研] 0854電子信息求調(diào)劑 324 +3 | Promise-jyl 2026-03-23 | 3/150 |
|
|
[考研]
求調(diào)劑材料學(xué)碩080500,總分289分
5+3
|
@taotao 2026-03-19 | 21/1050 |
|
|
[考研] 070300,一志愿北航320求調(diào)劑 +3 | Jerry0216 2026-03-22 | 5/250 |
|
|
[考研] 287求調(diào)劑 +8 | 晨昏線(xiàn)與星海 2026-03-19 | 9/450 |
|
|
[考研] 306求調(diào)劑 +5 | 來(lái)好運(yùn)來(lái)來(lái)來(lái) 2026-03-22 | 5/250 |
|
|
[考研] 275求調(diào)劑 +6 | shansx 2026-03-22 | 8/400 |
|
|
[考研] 085600材料與化工306 +4 | z1z2z3879 2026-03-21 | 4/200 |
|
|
[考研] 一志愿南大,0703化學(xué),分?jǐn)?shù)336,求調(diào)劑 +3 | 收到VS 2026-03-21 | 3/150 |
|
|
[考研] 308求調(diào)劑 +3 | 阿姐阿姐家啊 2026-03-18 | 3/150 |
|
|
[考研] 一志愿武漢理工材料工程專(zhuān)碩調(diào)劑 +9 | Doleres 2026-03-19 | 9/450 |
|
|
[考研]
|
然11 2026-03-19 | 4/200 |
|
|
[考研] A區(qū)線(xiàn)材料學(xué)調(diào)劑 +5 | 周周無(wú)極 2026-03-20 | 5/250 |
|
|
[考研] 一志愿 南京航空航天大學(xué)大學(xué) ,080500材料科學(xué)與工程學(xué)碩 +5 | @taotao 2026-03-20 | 5/250 |
|
|
[考研]
|
不想起名字112 2026-03-19 | 3/150 |
|