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

yongcailiu

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

z1-z5ÊÇ·ûºÅ£¿Èç¹ûÈç´ËµÄ»°£¬ÎÒûÓмû¹ýGauss-Newton·¨Ê¹ÓÃÔÚÕâÖÖ³¡ºÏϵġ£
4Â¥2015-01-24 11:14:35
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢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µÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] Ò»Ö¾Ô¸»ªÖÐũҵ071010£¬320Çóµ÷¼Á +17 À§À§À§À§À¤À¤ 2026-04-14 19/950 2026-04-17 20:08 by ¹ØÒ»ÕµµÆcd
[¿¼ÑÐ] 295·ÖÇóµ÷¼Á +5 ?ÒªÉϰ¶? 2026-04-17 5/250 2026-04-17 16:51 by fenglj492
[½Ìʦ֮¼Ò] ɽ¶«Ë«·ÇԺУ¿¼ºË³¬¼¶ÎÞµ×Ïߣ¬Áìµ¼ÐÒÔÖÀÖ»ö£¬½ÌʦÔâÑê¿Ö +4 qut2026 2026-04-11 8/400 2026-04-17 16:10 by »á·ÉµÄÖí157
[¿¼ÑÐ] 322Çóµ÷¼Á +6 tekuzu 2026-04-17 6/300 2026-04-17 13:48 by Espannnnnol
[¿¼ÑÐ] ¿ÒÇëÓÐѧУÊÕÁô +8 ¿Â»´È» 2026-04-12 8/400 2026-04-17 09:34 by Öí»á·É
[¿¼ÑÐ] 22ר˶Çóµ÷¼Á +10 haoyunÉϰ¶ 2026-04-11 12/600 2026-04-16 22:21 by Öí»á·É
[¿¼ÑÐ] 294Çóµ÷¼Á +14 µ­È»654321 2026-04-15 14/700 2026-04-16 21:01 by lpl364211
[¿¼ÑÐ] 307ÖÐÒ½¿¼Ñе÷¼Á +6 ÓÚÒÔ²ÉÞÀ 2026-04-14 6/300 2026-04-16 16:20 by qingfeng258
[¿¼ÑÐ] Ò»Ö¾Ô¸AÇø211£¬22408 321Çóµ÷¼Á +6 ËæÐÄËùÓû¡î 2026-04-15 7/350 2026-04-15 21:45 by lbsjt
[¿¼ÑÐ] ÇóÖúµ÷¼Á£¬¿çµ÷ +19 XÊ®¸¦´çY 2026-04-11 20/1000 2026-04-15 21:18 by cuisz
[¿¼ÑÐ] ÉúÎïѧµ÷¼Á +9 Ö½ÉÈzhishan 2026-04-13 9/450 2026-04-15 18:28 by ANÁ÷800
[¿¼ÑÐ] 0854µ÷¼Á +13 ³¤¹­°Á 2026-04-12 16/800 2026-04-15 13:45 by fenglj492
[¿¼ÑÐ] ¸÷λÀÏʦºÃ£¬Çóµ÷¼Á£¬±¾¿Æ211£¬Ò»Ö¾Ô¸Ìì½ò´óѧÉúÎïÓëҽҩѧ˶£¬²îÁ½Ãû¼ȡ¡£ +11 ·ÁùÁùjjj 2026-04-13 11/550 2026-04-14 16:01 by zs92450
[½Ìʦ֮¼Ò] ת³¤Æ¸ÁË +7 ¼òµ¥»¯xn 2026-04-13 7/350 2026-04-14 14:50 by xindong
[¿¼ÑÐ] Çóµ÷¼Á +12 ºÎÆøÕý 2026-04-13 13/650 2026-04-14 14:47 by zs92450
[¿¼ÑÐ] 2026˶ʿµ÷¼Á_Äܶ¯_ºÓÄÏũҵ´óѧ +4 ºÓÄÏũҵ´óѧ-ÄÜ 2026-04-12 4/200 2026-04-13 22:01 by bljnqdcc
[¿¼ÑÐ] 293Çóµ÷¼Á +16 ÎÒ°®¸ßÊý¸ßÊý°®Î 2026-04-12 18/900 2026-04-13 21:47 by ѧԱJpLReM
[¿¼ÑÐ] BÇø0809 £¬ÊýÒ»Ó¢Ò»£¬290 Çóµ÷¼Á +3 ãöΫ1111 2026-04-12 4/200 2026-04-13 20:35 by ѧԱJpLReM
[¿¼ÑÐ] Ò»Ö¾Ô¸Ïôó0856£¬306Çóµ÷¼Á +15 Bblinging 2026-04-11 15/750 2026-04-11 22:53 by 314126402
[¿¼ÑÐ] 270Çóµ÷¼Á +14 ÑîÀÖ369 2026-04-11 14/700 2026-04-11 20:16 by À¶ÔÆË¼Óê
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û