²é¿´: 886  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 292Çóµ÷¼Á +8 ¶ì¶ì¶ì¶î¶î¶î¶î¶ 2026-03-25 9/450 2026-03-26 12:21 by ÕÅ¿­Ê®°ËºÅ
[¿¼ÑÐ] 297Çóµ÷¼Á +3 ÌïºéÓÐ 2026-03-26 3/150 2026-03-26 09:38 by ÑîÑîÑî×Ï
[¿¼ÑÐ] 309Çóµ÷¼Á +4 gajsj 2026-03-25 5/250 2026-03-26 00:27 by Dyhoer
[¿¼ÑÐ] Çóµ÷¼Á +3 «lty 2026-03-25 4/200 2026-03-25 23:25 by «lty
[¿¼ÑÐ] 086000ÉúÎïÓëÒ½Ò©292Çóµ÷¼Á +4 СС³ÂСС 2026-03-22 7/350 2026-03-25 19:07 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤304ÇóBÇøµ÷¼Á +3 Çñgl 2026-03-25 3/150 2026-03-25 19:03 by Ainin_
[¿¼ÑÐ] 302Çóµ÷¼Á +4 ½õÒÂÎÀÌÙ½· 2026-03-25 4/200 2026-03-25 16:29 by ¹¦·ò·è¿ñ
[¿¼ÑÐ] 333Çóµ÷¼Á +6 87639 2026-03-21 11/550 2026-03-25 16:17 by 87639
[¿¼ÑÐ] 282Çóµ÷¼Á +3 wcq131415 2026-03-24 3/150 2026-03-25 12:16 by userper
[¿¼ÑÐ] ²ÄÁÏѧ˶£¬Çóµ÷¼Á 6+4 ÌǺù«888ll 2026-03-22 9/450 2026-03-25 11:19 by greychen00
[¿¼ÑÐ] Çóµ÷¼Á Ò»Ö¾Ô¸ ±¾¿Æ ±±¿Æ´ó »¯Ñ§ 343 +4 13831862839 2026-03-24 5/250 2026-03-25 09:47 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 289²ÄÁÏÓ뻯¹¤£¨085600£©BÇøÇóµ÷¼Á +4 ÕâôÃû×ÖÕ¦Ñù 2026-03-22 5/250 2026-03-25 08:20 by mx.yue
[¿¼ÑÐ] 0856²ÄÁÏר˶353Çóµ÷¼Á +6 NIFFFfff 2026-03-20 6/300 2026-03-24 21:02 by helloÆßÆß
[¿¼ÑÐ] 276Çóµ÷¼Á +3 YNRYG 2026-03-21 4/200 2026-03-23 08:31 by ×íÔÚ·çÀï
[¿¼ÑÐ] Ò»Ö¾Ô¸ÖÐÄÏ»¯Ñ§£¨0703£©×Ü·Ö337Çóµ÷¼Á +9 niko- 2026-03-19 10/500 2026-03-22 16:08 by ColorlessPI
[¿¼ÑÐ] 269ר˶Çóµ÷¼Á +6 ½ð¶÷±´ 2026-03-21 6/300 2026-03-22 14:31 by ColorlessPI
[¿¼ÑÐ] 285Çóµ÷¼Á +6 ytter 2026-03-22 6/300 2026-03-22 12:09 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] 297Çóµ÷¼Á +3 ϲ»¶»¹ÊDz»¸ÊÐÄ 2026-03-20 3/150 2026-03-21 18:33 by ѧԱ8dgXkO
[¿¼ÑÐ] ²ÄÁÏ 271Çóµ÷¼Á +5 Õ¹ÐÅÔÃ_ 2026-03-21 5/250 2026-03-21 17:29 by ѧԱ8dgXkO
[¿¼ÑÐ] Çóµ÷¼Á +3 .m.. 2026-03-21 4/200 2026-03-21 16:25 by barlinike
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û