| ²é¿´: 1899 | »Ø¸´: 8 | |||
| µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû | |||
makechange74Ìú³æ (СÓÐÃûÆø)
|
[ÇóÖú]
ÓÃGauss-NeutonËã·¨½â·ÇÏßÐÎ×îС¶þ³Ë·¨ÎÊÌâ ÒÑÓÐ1È˲ÎÓë
|
||
|
×Ô¼º¸ù¾ÝÍøÉÏÏÂÔØÔ´´úÂëÐ޸ĵĸß˹-Å£¶Ùµü´ú·¨Çó·ÇÏßÐÎ×îС¶þ³ËÎÊÌ⣬ÀÏÊÇÏÔʾÊäÈë²ÎÊý²»×ã¡£×¢ÊÍÊǸù¾Ý×Ô¼ºÀí½âÌîдµÄ mÎļþ´úÂëÈçÏ£º function [x,minf] = GN(f,x0,var,eps) format long; if nargin == 3 %Èç¹ûûÓÐÉèÖÃeps£¬Ôòeps=1.0e-6 eps = 1.0e-6; end S = transpose(f)*f; %trnsposeÊÇתÖÃ,ÇóµÃr·½ k = length(f); % n = length(x0); %nΪ±äÁ¿¸öÊý,µ«ÊÇûÓõ½°¡£¿ x0 = transpose(x0); %½«ÐÐÏòÁ¿×ªÖÃΪÁÐÏòÁ¿ tol = 1; %³õʼÈݲî A = jacobian(f,var); while tol>eps Fx = zeros(k,1); for i=1:k Fx(i,1) = subs(f(i),var,x0); end Sx = subs(S,var,x0); %ÇóµÃfתÖÃÓëÆä±¾ÉíÖµ£¬ Ax = subs(A,var,x0); %Ñſ˱ȾØÕóµÄÖµ gSx = transpose(Ax)*Fx; dx = -transpose(Ax)*Ax\gSx; x0 = x0 + dx; tol = norm(dx); %tol=dx¾ø¶ÔÖµÖ®ºÍ end minf = subs(S,var,x); format short; x = x0; end ÃüÁî´°¿Úµ÷ÓÃÈçÏ£º xdata = S1o; %S1o¼°ÏÂÃæµÄydata1¶¼ÊÇ×Ô¼ºµÄÊý¾Ý syms z1 z2 z3 z4 z5 f = ydata1 - exp(z1)./(exp(z1)+exp(-z1)).*exp(-(xdata./exp(z3)).^exp(z2))+(1-exp(z1)./(exp(z1)+exp(-z1))).*exp(-(xdata./exp(z5)).^exp(z4)); x0 = [1.7380;0.9555;-1.3863;2.0149;-2.5257]; var = findsym(f); eps = 1.0e-3; >> GN Ìáʾ´íÎóÈçÏ£º ´íÎóʹÓà GN (line 6) ÊäÈë²ÎÊýµÄÊýÄ¿²»×ã¡£ |
» ÊÕ¼±¾ÌûµÄÌÔÌûר¼ÍƼö
source |
» ²ÂÄãϲ»¶
»ùµ×STO,±¡Ä¤SRO£¬XRDÀïÃæµÄÕñµ´£¬ÊÇlaueÕðµ´»¹ÊÇkiessigÕñµ´? ÔõôÅжϣ¿
ÒѾÓÐ2È˻ظ´
BÇøÑ§Éúµ÷¼Á-À¼Öݽ»Í¨´óѧ²ÄÁÏ¿ÆÑ§Ó빤³ÌѧԺ
ÒѾÓÐ12È˻ظ´
ÎïÀíѧIÂÛÎÄÈóÉ«/·ÒëÔõôÊÕ·Ñ?
ÒѾÓÐ189È˻ظ´
ɽÎ÷´óͬ´óѧÎïÀíѧרҵ»¹Óе÷¼ÁÃû¶î£¬»¶Óµ÷¼Á£¡
ÒѾÓÐ13È˻ظ´
¹ðÁÖÀí¹¤´óѧÎïÀíѧרҵÕÐÊÕµ÷¼Á
ÒѾÓÐ17È˻ظ´
VASP µÄÒ»×é GPU / CPU »ù×¼²âÊԼǼ
ÒѾÓÐ0È˻ظ´
´ËÌùÒÑɾ³ý
ÒѾÓÐ7È˻ظ´
½òÀí¹¤´óѧ¾§Ìå²ÄÁÏÈ«¹úÖØµãʵÑéÊÒÁõºì¾ü½ÌÊÚ¿ÎÌâ×éÕÐÊÕ²©Ê¿ÉúÒ»Ãû
ÒѾÓÐ0È˻ظ´
¡¾Ô´´ÌÖÂÛ¡¿´Óµç×ÓÔ¼Êøµ½ÎïÖʱ༣ºÒ»Ì׿ɵü´úµÄ»·Ðδų¡¿Æ¼¼Ê÷
ÒѾÓÐ0È˻ظ´
¡¾·½°¸·ÖÏí¡¿µ¥»·´Å³¡+ÖáÐÄ¿ØÖÆ+ƫתµ¼³öµç×ÓÊøÔ¼ÊøÏµÍ³£¨¿ÉÐÐÐÔʵÑ飩
ÒѾÓÐ0È˻ظ´
» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:
ÓÃGauss-NeutonËã·¨½â·ÇÏßÐÎ×îС¶þ³Ë·¨ÎÊÌâ
ÒѾÓÐ0È˻ظ´
makechange74
Ìú³æ (СÓÐÃûÆø)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ½ð±Ò: 322.2
- Ìû×Ó: 70
- ÔÚÏß: 84.2Сʱ
- ³æºÅ: 3646387
- ×¢²á: 2015-01-15
- רҵ: »úе½á¹¹Ç¿¶Èѧ
|
function [x,minf] = GN(f,x0,var,eps) format long; if nargin == 3 %Èç¹ûûÓÐÉèÖÃeps£¬Ôòeps=1.0e-6 eps = 1.0e-6; end m = 0; S = transpose(f)*f; %trnsposeÊÇתÖÃ,ÇóµÃr·½ k = length(f); % %n = length(x0); %nΪ±äÁ¿¸öÊý,µ«ÊÇûÓõ½°¡£¿ x0 = transpose(x0); %½«ÐÐÏòÁ¿×ªÖÃΪÁÐÏòÁ¿ tol = 1; %³õʼÈݲî A = jacobian(f,var); while tol>eps Fx = zeros(k,1); for i=1:k Fx(i,1) = subs(f(i),var,x0); end Sx = subs(S,var,x0); %ÇóµÃfתÖÃÓëÆä±¾ÉíÖµ£¬ Ax = subs(A,var,x0); %Ñſ˱ȾØÕóµÄÖµ gSx = transpose(Ax)*Fx; dx = -transpose(Ax)*Ax\gSx; x0 = x0 + dx; tol = norm(dx); %tol=dx¾ø¶ÔÖµÖ®ºÍ m = m+1; if(m>100000) disp('µü´ú²½ÊýÌ«¶à£¬¿ÉÄܲ»ÊÕÁ²'); return; end end minf = subs(S,var,x); format short; x = x0; end xdata = S1o; f = ydata1 - exp(z1)./(exp(z1)+exp(-z1)).*exp(-(xdata./exp(z3)).^exp(z2))+(1-exp(z1)./(exp(z1)+exp(-z1))).*exp(-(xdata./exp(z5)).^exp(z4)); x0 = [1.7380;0.9555;-1.3863;2.0149;-2.5257]; var = findsym(f); eps = 1.0e-3; GN(f,x0,var,eps) ´Ó sym ת»»Îª double ʱ³öÏÖÒÔÏ´íÎó: ³ö´í GN (line 17) Fx(i,1) = subs(f(i),var,x0); ÓÖ³öÐÂÎÊÌâÁË£¬»¹ÊÇÂé·³Äܹ»½â´ðһϠÒÔÏÂÊÇÊý¾Ý S1o£º0.0580000000000000 0.0710000000000000 0.0760000000000000 0.0790000000000000 0.0830000000000000 0.0870000000000000 0.0980000000000000 0.111000000000000 0.117000000000000 0.122000000000000 0.122000000000000 0.133000000000000 0.134000000000000 0.138000000000000 0.140000000000000 0.142000000000000 0.150000000000000 0.155000000000000 0.160000000000000 0.160000000000000 0.168000000000000 0.173000000000000 0.173000000000000 0.173000000000000 0.175000000000000 0.176000000000000 0.177000000000000 0.181000000000000 0.182000000000000 0.183000000000000 0.194000000000000 0.203000000000000 0.214000000000000 0.218000000000000 0.222100000000000 0.223000000000000 0.225000000000000 0.247000000000000 0.253000000000000 0.256000000000000 0.257000000000000 0.258000000000000 0.262000000000000 0.263000000000000 0.264000000000000 0.266000000000000 0.267000000000000 0.276000000000000 0.278000000000000 0.280000000000000 0.288000000000000 0.289000000000000 0.306000000000000 0.315000000000000 0.333000000000000 0.335000000000000 0.353000000000000 0.389000000000000 0.404000000000000 0.418000000000000 0.456000000000000 0.489000000000000 ydata1£º 0.983870967741936 0.967741935483871 0.951612903225807 0.935483870967742 0.919354838709677 0.903225806451613 0.887096774193548 0.870967741935484 0.854838709677419 0.838709677419355 0.822580645161290 0.806451612903226 0.790322580645161 0.774193548387097 0.758064516129032 0.741935483870968 0.725806451612903 0.709677419354839 0.693548387096774 0.677419354838710 0.661290322580645 0.645161290322581 0.629032258064516 0.612903225806452 0.596774193548387 0.580645161290322 0.564516129032258 0.548387096774193 0.532258064516129 0.516129032258064 0.500000000000000 0.483870967741935 0.467741935483871 0.451612903225806 0.435483870967742 0.419354838709677 0.403225806451613 0.387096774193548 0.370967741935484 0.354838709677419 0.338709677419355 0.322580645161290 0.306451612903226 0.290322580645161 0.274193548387097 0.258064516129032 0.241935483870968 0.225806451612903 0.209677419354839 0.193548387096774 0.177419354838710 0.161290322580645 0.145161290322581 0.129032258064516 0.112903225806452 0.0967741935483870 0.0806451612903230 0.0645161290322580 0.0483870967741930 0.0322580645161290 0.0161290322580639 0 |
3Â¥2015-01-23 19:12:03
yongcailiu
½ð³æ (СÓÐÃûÆø)
- Ó¦Öú: 63 (³õÖÐÉú)
- ½ð±Ò: 2283.9
- ºì»¨: 10
- Ìû×Ó: 181
- ÔÚÏß: 250.4Сʱ
- ³æºÅ: 1406563
- ×¢²á: 2011-09-18
- ÐÔ±ð: GG
- רҵ: ¼ÆËãÊýѧÓë¿ÆÑ§¹¤³Ì¼ÆËã
2Â¥2015-01-23 08:56:32
yongcailiu
½ð³æ (СÓÐÃûÆø)
- Ó¦Öú: 63 (³õÖÐÉú)
- ½ð±Ò: 2283.9
- ºì»¨: 10
- Ìû×Ó: 181
- ÔÚÏß: 250.4Сʱ
- ³æºÅ: 1406563
- ×¢²á: 2011-09-18
- ÐÔ±ð: GG
- רҵ: ¼ÆËãÊýѧÓë¿ÆÑ§¹¤³Ì¼ÆËã
4Â¥2015-01-24 11:14:35
makechange74
Ìú³æ (СÓÐÃûÆø)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ½ð±Ò: 322.2
- Ìû×Ó: 70
- ÔÚÏß: 84.2Сʱ
- ³æºÅ: 3646387
- ×¢²á: 2015-01-15
- רҵ: »úе½á¹¹Ç¿¶Èѧ
5Â¥2015-01-25 09:45:11













»Ø¸´´ËÂ¥