Znn3bq.jpeg
²é¿´: 1900  |  »Ø¸´: 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)
ÊäÈë²ÎÊýµÄÊýÄ¿²»×ã¡£
»Ø¸´´ËÂ¥
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

yongcailiu

½ð³æ (СÓÐÃûÆø)

z1-z5ÊÇ·ûºÅ£¿Èç¹ûÈç´ËµÄ»°£¬ÎÒûÓмû¹ýGauss-Newton·¨Ê¹ÓÃÔÚÕâÖÖ³¡ºÏϵġ£
4Â¥2015-01-24 11:14:35
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 9 ¸ö»Ø´ð

yongcailiu

½ð³æ (СÓÐÃûÆø)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï ¡ï ¡ï ¡ï ¡ï
¸Ðл²ÎÓ룬ӦÖúÖ¸Êý +1
makechange74: ½ð±Ò+5, ¡ï¡ï¡ïºÜÓаïÖú 2015-01-23 19:13:55
²ÎÊýûÓмӽøÈ¥Ñ½£¬µ±È»µ÷ÓôíÎóÁË¡£eps=1.0e-3;ÏÂÃæÒ»ÐеÄGNÌæ»»³ÉGN(f,x0,var,eps)ÊÔÒ»ÏÂ
2Â¥2015-01-23 08:56:32
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

makechange74

Ìú³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
2Â¥: Originally posted by yongcailiu at 2015-01-23 08:56:32
²ÎÊýûÓмӽøÈ¥Ñ½£¬µ±È»µ÷ÓôíÎóÁË¡£eps=1.0e-3;ÏÂÃæÒ»ÐеÄGNÌæ»»³ÉGN(f,x0,var,eps)ÊÔÒ»ÏÂ

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
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

makechange74

Ìú³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
4Â¥: Originally posted by yongcailiu at 2015-01-24 11:14:35
z1-z5ÊÇ·ûºÅ£¿Èç¹ûÈç´ËµÄ»°£¬ÎÒûÓмû¹ýGauss-Newton·¨Ê¹ÓÃÔÚÕâÖÖ³¡ºÏϵġ£

Gauss-Newton·¨¿ÉÒÔÓÃÇó½â×îС·ÇÏßÐζþ³Ë·¨£¬ÔÚÎÄÏ×ÉÏ¿´µ½µÄ£¬´ËÍâΪÁ˸ĽøGauss-NewtonËã·¨£¬ÓÖÌá³öÁËLMËã·¨¡£
z1-z5ÊDZäÁ¿£¬Ò²¾ÍÊÇÕâ¸ö·ÇÏßÐÎ×îС¶þ³Ë·¨ÒªÇó½âµÄÖµ
5Â¥2015-01-25 09:45:11
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 304Çóµ÷¼Á +7 castLight 2026-04-16 7/350 2026-04-17 20:05 by ¹ØÒ»ÕµµÆcd
[Óлú½»Á÷] ¶þ±½¼×ͪËáÀàÑÜÉúÎï 50+3 С°×°®Ö÷ÈË 2026-04-17 6/300 2026-04-17 18:47 by kf2781974
[¿¼ÑÐ] Ò»Ö¾Ô¸Öпƴó²ÄÁÏÓ뻯¹¤£¬353·Ö»¹Óе÷¼ÁѧУÂð +10 ·ñ¼«Ì©À´2026 2026-04-15 12/600 2026-04-17 17:54 by mapenggao
[ÂÛÎÄͶ¸å] ÓÐûÓнÓÊձȽϿìµÄsciÆÚ¿¯Ñ½£¬×îºÃÔÚÒ»¸öÔÂÖ®Äڵģ¬ÑÐÈýº¢×ÓÇó±ÏÒµ 20+4 Ö®»¤×Å 2026-04-16 5/250 2026-04-17 10:02 by bobvan
[¿¼ÑÐ] »¯Ñ§070300 Çóµ÷¼Á +28 ¹þ¹þ¹þ^_^ 2026-04-12 28/1400 2026-04-16 21:36 by ´óÁ¦Ë®ÊÖÁ¦´óÎÞÇ
[¿¼ÑÐ] 294Çóµ÷¼Á +14 µ­È»654321 2026-04-15 14/700 2026-04-16 21:01 by lpl364211
[¿¼ÑÐ] 297£¬¹¤¿Æµ÷¼Á?ºÓÄÏũҵ´óѧ±¾¿Æ +14 ºÓÄÏũҵ´óѧ-ÄÜ 2026-04-14 14/700 2026-04-16 14:41 by dingyanbo1
[¿¼ÑÐ] Ò»Ö¾Ô¸AÇø211£¬22408 321Çóµ÷¼Á +6 ËæÐÄËùÓû¡î 2026-04-15 7/350 2026-04-15 21:45 by lbsjt
[¿¼ÑÐ] 0854µ÷¼Á +13 ³¤¹­°Á 2026-04-12 16/800 2026-04-15 13:45 by fenglj492
[¿¼ÑÐ] ¿¼ÑÐÇóµ÷¼Á +6 ban°àСÆß 2026-04-11 6/300 2026-04-14 14:06 by ¶ßÀ²AÃÎÖ»ÊǸöÃÎ
[¿¼ÑÐ] 300·ÖÇóµ÷¼Á £¨085501»úеר˶£¬±¾¿ÆÑï´ó£© +9 xu@841019 2026-04-11 10/500 2026-04-14 08:48 by ľľmumu¡«
[¿¼ÑÐ] Çóµ÷¼Á£¬985²ÄÁÏÓ뻯¹¤348·Ö +9 º­ÖñÁõ 2026-04-11 14/700 2026-04-13 22:26 by º­ÖñÁõ
[¿¼ÑÐ] 302Çóµ÷¼Á +10 Ò×£¡? 2026-04-13 10/500 2026-04-13 19:04 by lbsjt
[¿¼ÑÐ] Ò»Ö¾Ô¸Õã´óÉúÎï325·ÖÇóµ÷¼Á +9 zysheng 2026-04-12 9/450 2026-04-12 22:31 by yuyin1233
[¿¼ÑÐ] 344 ²ÄÁÏרҵ Çóµ÷¼Á211 ÎÞµØÓòÒªÇó +8 hualkop 2026-04-11 8/400 2026-04-12 22:24 by fqwang
[¿¼ÑÐ] 339Çóµ÷¼Á +8 hanwudada 2026-04-11 9/450 2026-04-12 15:36 by laoshidan
[¿¼ÑÐ] 331Çóµ÷¼Á +5 Íõ¹ú˧ 2026-04-11 5/250 2026-04-11 22:56 by Ϫ½§Á÷Ë®
[¿¼ÑÐ] Ò»Ö¾Ô¸Ïôó0856£¬306Çóµ÷¼Á +15 Bblinging 2026-04-11 15/750 2026-04-11 22:53 by 314126402
[¿¼ÑÐ] µ÷¼ÁÇóÖú +6 ¹ûÈ»ÓÐÎÒ 2026-04-11 7/350 2026-04-11 16:22 by Ã÷Ô´ËʱÓÐ
[¿¼ÑÐ] Ò»Ö¾Ô¸985»úеѧ˶380Çóµ÷¼Á +5 ¹Ø¹ØöÂð¯10 2026-04-11 5/250 2026-04-11 10:10 by ÖªÄî¡£A
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û