| 4 | 1/1 | 返回列表 |
| 查看: 884 | 回復: 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; 下面是運行結(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 |

| 4 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 0854人工智能方向招收調(diào)劑 +3 | 章小魚567 2026-03-24 | 3/150 |
|
|---|---|---|---|---|
|
[考研] 307求調(diào)劑 +5 | 超級伊昂大王 2026-03-24 | 5/250 |
|
|
[考研] 305分求調(diào)劑(食品工程) +5 | Sxy112 2026-03-21 | 7/350 |
|
|
[考研] 求材料,環(huán)境專業(yè)調(diào)劑 +3 | 18567500178 2026-03-18 | 3/150 |
|
|
[考研] 269求調(diào)劑 +4 | 我想讀研11 2026-03-23 | 4/200 |
|
|
[考研] 一志愿 西北大學 ,070300化學學碩,總分287,雙非一本,求調(diào)劑。 +3 | 晨昏線與星海 2026-03-20 | 3/150 |
|
|
[考研] 289求調(diào)劑 +7 | 懷瑾握瑜l 2026-03-20 | 7/350 |
|
|
[考研] 269專碩求調(diào)劑 +6 | 金恩貝 2026-03-21 | 6/300 |
|
|
[考研] 考研調(diào)劑 +4 | 來好運來來來 2026-03-21 | 4/200 |
|
|
[考研] 考研調(diào)劑 +3 | 呼呼?~+123456 2026-03-21 | 3/150 |
|
|
[考研] 材料與化工(0856)304求B區(qū)調(diào)劑 +3 | 邱gl 2026-03-20 | 7/350 |
|
|
[考研] 307求調(diào)劑 +3 | 余意卿 2026-03-18 | 3/150 |
|
|
[考研] 0805材料320求調(diào)劑 +3 | 深海物語 2026-03-20 | 3/150 |
|
|
[考研] 材料與化工(0856)304求 B區(qū) 調(diào)劑 +3 | 邱gl 2026-03-21 | 3/150 |
|
|
[考研] 085601調(diào)劑 358分 +3 | zzzzggh 2026-03-20 | 4/200 |
|
|
[考研] 274求調(diào)劑 +10 | S.H1 2026-03-18 | 10/500 |
|
|
[考研] 321求調(diào)劑 +9 | 何潤采123 2026-03-18 | 11/550 |
|
|
[考研] 一志愿西安交通大學 學碩 354求調(diào)劑211或者雙一流 +3 | 我想要讀研究生 2026-03-20 | 3/150 |
|
|
[考研] 材料學碩318求調(diào)劑 +5 | February_Feb 2026-03-19 | 5/250 |
|
|
[考研] 一志愿福大288有機化學,求調(diào)劑 +3 | 小木蟲200408204 2026-03-18 | 3/150 |
|