±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 891  |  »Ø¸´: 3

guan0603

гæ (³õÈëÎÄ̳)

[ÇóÖú] ÄÄλMATLAB¸ßÊÖÄܰïæµ÷ÊÔһϳÌÐò£¬²»ÊÇÓöµ½ÕâÎÊÌâ¾ÍÊÇÄÇÎÊÌâ ÒÑÓÐ1È˲ÎÓë

function [x,val,k]=frcg(fun,gfun,x0)
% ¹¦ÄÜ: ÓÃFR¹²éîÌݶȷ¨Çó½âÎÞÔ¼ÊøÎÊÌâ: min f(x)
%ÊäÈë: x0Êdzõʼµã, 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Êdzõʼµã, 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¶ä£©

ÉÆ¶ñµ½Í·ÖÕÓб¨,È˼äÕýµÀÊDz×É£.
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Êdzõʼµã, 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Êdzõʼµã, fun, gfun·Ö±ðÊÇÄ¿±êº¯ÊýºÍÌݶÈ
%Êä³ö: x, val·Ö±ðÊǽüËÆ×îÓŵãºÍ×îÓÅÖµ, kÊǵü´ú´ÎÊý.
...

³öÀ´ÁË£¬Ð»Ð»ÁË
4Â¥2014-12-24 14:26:39
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ guan0603 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 332Çóµ÷¼Á +7 ½¶½¶123 2026-03-28 7/350 2026-03-29 08:25 by fmesaito
[¿¼ÑÐ] ÇóÊÕÁô +3 1943443204 2026-03-28 3/150 2026-03-29 08:14 by fmesaito
[¿¼ÑÐ] 0856Çóµ÷¼Á +13 zhn03 2026-03-25 14/700 2026-03-29 08:13 by fmesaito
[¿¼ÑÐ] 315Çóµ÷¼Á +4 akie... 2026-03-28 5/250 2026-03-28 21:05 by zhq0425
[¿¼ÑÐ] 071000ÉúÎïѧÇóµ÷¼Á£¬³õÊԳɼ¨343 +7 ССÌðÃæÍÅ 2026-03-25 7/350 2026-03-28 20:25 by ÌÆãå¶ù
[¿¼ÑÐ] 085602 »¯¹¤×¨Ë¶ 338·Ö Çóµ÷¼Á +12 ·³ÕСç÷ 2026-03-27 12/600 2026-03-28 15:41 by L135790
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤272Çóµ÷¼Á +9 °¢Ë¹µÙ·Ò2004 2026-03-28 9/450 2026-03-28 15:21 by 1018329917
[¿¼ÑÐ] 394Çóµ÷¼Á +3 ºÃʶàÄ¥¾²ºò¼ÑÒ 2026-03-26 5/250 2026-03-28 14:24 by ÌÆãå¶ù
[¿¼ÑÐ] 339Çóµ÷¼Á£¬Ïëµ÷»Ø½­ËÕ +6 ¿¾ÂóÑ¿ 2026-03-27 8/400 2026-03-28 10:40 by ¿¾ÂóÑ¿
[¿¼ÑÐ] 292Çóµ÷¼Á +14 ¶ì¶ì¶ì¶î¶î¶î¶î¶ 2026-03-25 15/750 2026-03-28 08:45 by WYUMater
[¿¼ÑÐ] 291Çóµ÷¼Á +7 ‹üÈA 2026-03-22 7/350 2026-03-28 04:02 by fmesaito
[¿¼ÑÐ] 07»¯Ñ§280·ÖÇóµ÷¼Á +10 722865 2026-03-23 10/500 2026-03-27 15:51 by Plutoqq
[¿¼ÑÐ] 085600²ÄÁÏÓ뻯¹¤µ÷¼Á +10 A-¶ßÀ²ZÃÎ 2026-03-23 16/800 2026-03-27 15:13 by caszguilin
[¿¼ÑÐ] 343Çóµ÷¼Á +4 ÔùÎÒÒ»±¾Êé 2026-03-23 4/200 2026-03-27 00:40 by wxiongid
[¿¼ÑÐ] ²ÄÁÏ¿¼ÑÐÇóµ÷¼Á +3 Dendel 2026-03-23 6/300 2026-03-26 17:51 by fmesaito
[¿¼ÑÐ] 0854AI CV·½ÏòÕÐÊÕµ÷¼Á +4 ÕÂСÓã567 2026-03-23 4/200 2026-03-25 17:04 by CoderLoser
[¿¼ÑÐ] 0854È˹¤ÖÇÄÜ·½ÏòÕÐÊÕµ÷¼Á +4 ÕÂСÓã567 2026-03-24 4/200 2026-03-25 13:29 by 2177681040
[¿¼ÑÐ] 282Çóµ÷¼Á +3 wcq131415 2026-03-24 3/150 2026-03-25 12:16 by userper
[¿¼ÑÐ] 361Çóµ÷¼Á +3 Glack 2026-03-22 3/150 2026-03-23 22:03 by fuyu_
[¿¼ÑÐ] 328Çóµ÷¼Á +4 LHHL66 2026-03-23 4/200 2026-03-23 14:55 by lbsjt
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û