| 查看: 2129 | 回復(fù): 13 | |||
飛鴻印雪jay銀蟲 (小有名氣)
|
[求助]
想用遺傳算法求解動(dòng)力學(xué)參數(shù) 已有2人參與
|
||
|
dCAdt =-k(1)*C(1)-k(2)*C(1)-k(3)*C(1); dCBdt =k(1)*C(1)-k(4)*C(2)-k(5)*C(2); dCCdt =k(2)*C(1)+k(4)*C(2)-k(6)*C(3); dCDdt =k(3)*C(1)+k(5)*C(2)+k(6)*C(3); 請(qǐng)問怎么用遺傳算法求解參數(shù)k啊,c的數(shù)值都是實(shí)驗(yàn)已知的,我用lsqnonlin求解,但是精度比較低。 |
鐵桿木蟲 (職業(yè)作家)
鐵桿木蟲 (職業(yè)作家)
主管區(qū)長(zhǎng) (職業(yè)作家)
![]() |
專家經(jīng)驗(yàn): +1059 |

銀蟲 (小有名氣)
|
format long clear all clc tspan = [0 10 20 30 40 50 60 70 80 90 100 110 120]; x0 = [0.877667262 0.188437508 0.069051676 0.067639913]; k0 = [0 0 0 0 0 0]; lb = [0 0 0 0 0 0]; ub = [+inf +inf +inf +inf +inf +inf]; data=[ 0.683038504 0.34538674 0.138009043 0.135964027 0.398422967 0.413279625 0.203080312 0.189874719 0.266300405 0.468253074 0.289896419 0.348481733 0.142059055 0.397710816 0.305786676 0.424846321 0.068339284 0.34043909 0.335003128 0.497043462 0.049669997 0.312376889 0.351124377 0.609259358 0.025110016 0.237590973 0.335397788 0.723901322 0.012801963 0.197342301 0.32083196 0.736810004 0.005763427 0.156055501 0.306141448 0.834373408 0.002640872 0.10259385 0.238964753 0.755687994 0.001332663 0.091170321 0.248694235 0.903738353 0.004102735 0.066072318 0.220813975 0.917511998 ]; yexp = data(:,1:4); [k,resnorm,residual,exitflag,output,lambda,jacobian] =... lsqnonlin(@ObjFunc,k0,lb,ub,[],tspan,x0,yexp); ci = nlparci(k,residual,jacobian); fprintf('\n\n使用函數(shù)lsqnonlin()估計(jì)得到的參數(shù)值為:\n') fprintf('\tk1 = %.9f ± %.9f\n',k(1),ci(1,2)-k(1)) fprintf('\tk2 = %.9f ± %.9f\n',k(2),ci(2,2)-k(2)) fprintf('\tk3 = %.9f ± %.9f\n',k(3),ci(3,2)-k(3)) fprintf('\tk4 = %.9f ± %.9f\n',k(4),ci(4,2)-k(4)) fprintf('\tk5 = %.9f ± %.9f\n',k(5),ci(5,2)-k(5)) fprintf('\tk6 = %.9f ± %.9f\n',k(6),ci(6,2)-k(6)) %fprintf('\tk7 = %.9f ± %.9f\n',k(7),ci(7,2)-k(7)) %fprintf('\tk8 = %.9f ± %.9f\n',k(8),ci(8,2)-k(8)) %fprintf('\tk9 = %.9f ± %.9f\n',k(9),ci(9,2)-k(9)) %fprintf('\tk10 = %.9f ± %.9f\n',k(10),ci(10,2)-k(10)) fprintf('The sum of the squares is: %.9e\n\n',resnorm) function f = ObjFunc(k,tspan,x0,yexp) [t, Xsim] = ode45(@KineticsEqs,tspan,x0,[],k); Xsim1=Xsim(:,1); Xsim2=Xsim(:,2); Xsim3=Xsim(:,3); Xsim4=Xsim(:,4); %Xsim5=Xsim(:,5); %Xsim6=Xsim(:,6); ysim(:,1) = Xsim1(2:end); ysim(:,2) = Xsim2(2:end); ysim(:,3) = Xsim3(2:end); ysim(:,4) = Xsim4(2:end); %ysim(:,5) = Xsim5(2:end); %ysim(:,6) = Xsim6(2:end); size(ysim(:,1)); size(ysim(:,2)); size(ysim(:,3)); size(ysim(:,4)); %size(ysim(:,5)); %size(ysim(:,6)); size(yexp(:,1)); size(yexp(:,2)); size(yexp(:,3)); size(yexp(:,4)); %size(yexp(:,5)); %size(yexp(:,6)); f = [(ysim(:,1)-yexp(:,1)) (ysim(:,2)-yexp(:,2)) (ysim(:,3)-yexp(:,3)) (ysim(:,4)-yexp(:,4)) ];%(ysim(:,5)-yexp(:,5)) function dCdt = KineticsEqs(t,C,k) dCAdt =-k(1)*C(1)-k(2)*C(1)-k(3)*C(1); dCBdt =k(1)*C(1)-k(4)*C(2)-k(5)*C(2); dCCdt =k(2)*C(1)+k(4)*C(2)-k(6)*C(3); dCDdt =k(3)*C(1)+k(5)*C(2)+k(6)*C(3); dCdt = [dCAdt; dCBdt;dCCdt;dCDdt]; |
銀蟲 (小有名氣)
|
我目前是用這個(gè)程序算的,但是結(jié)果中的置信區(qū)間大于參數(shù)本身 k1 = 0.037030991 ± 0.006759768 k2 = 0.007075182 ± 0.009153909 k3 = 0.000041516 ± 0.009209723 k4 = 0.013350201 ± 0.013257063 k5 = 0.015151332 ± 0.013589322 k6 = 0.012992896 ± 0.009006184 The sum of the squares is: 5.640933494e-02 這樣是不是不符合物理意義呢?這樣得到的結(jié)果能用嗎? 所以才想用遺傳算法,據(jù)說全局搜索,精度會(huì)高。 |
銀蟲 (小有名氣)
|
還想用fmincon()進(jìn)行參數(shù)估計(jì)初值的,然后帶入lsqnonlin算參數(shù),但是用fmincon估算得到的參數(shù)初值都比較大,而用lsqnonlin得到是0.x,我感覺又不對(duì)。 使用函數(shù)fmincon()估計(jì)得到的參數(shù)值為: k1 = 1142.104196787 k2 = 1422.318008542 k3 = 2030.140731692 k4 = 60.162585855 k5 = 190.663749814 k6 = 47.821277380 The sum of the squares is: 8.001056406e+00 Local minimum possible. lsqnonlin stopped because the final change in the sum of squares relative to its initial value is less than the default value of the function tolerance. <stopping criteria details> 使用函數(shù)lsqnonlin()估計(jì)得到的參數(shù)值為: k1 = 0.037030991 ± 0.006759768 k2 = 0.007075182 ± 0.009153909 k3 = 0.000041516 ± 0.009209723 k4 = 0.013350201 ± 0.013257063 k5 = 0.015151332 ± 0.013589322 k5 = 0.012992896 ± 0.009006184 The sum of the squares is: 5.640933494e-02 不懂為什么?還有是不是和參數(shù)比方程個(gè)數(shù)多有關(guān)? |
銀蟲 (小有名氣)
銀蟲 (小有名氣)
銀蟲 (小有名氣)
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[論文投稿] 急發(fā)核心期刊論文 +3 | 賢達(dá)問津 2026-03-23 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 276求調(diào)劑。有半年電池和半年高分子實(shí)習(xí)經(jīng)歷 +8 | 材料學(xué)257求調(diào)劑 2026-03-23 | 9/450 |
|
|
[考研]
求調(diào)劑材料學(xué)碩080500,總分289分
5+3
|
@taotao 2026-03-19 | 21/1050 |
|
|
[考研] 291求調(diào)劑 +5 | 孅華 2026-03-22 | 5/250 |
|
|
[考研] 070300,一志愿北航320求調(diào)劑 +3 | Jerry0216 2026-03-22 | 5/250 |
|
|
[考研] 0854電子信息求調(diào)劑 +3 | α____ 2026-03-22 | 3/150 |
|
|
[考研] 298求調(diào)劑一志愿211 +3 | 上岸6666@ 2026-03-20 | 3/150 |
|
|
[考研] 生物學(xué)調(diào)劑 +5 | Surekei 2026-03-21 | 5/250 |
|
|
[考研] 303求調(diào)劑 +5 | 安憶靈 2026-03-22 | 6/300 |
|
|
[基金申請(qǐng)] 山東省面上項(xiàng)目限額評(píng)審 +4 | 石瑞0426 2026-03-19 | 4/200 |
|
|
[考研] 【考研調(diào)劑】化學(xué)專業(yè) 281分,一志愿四川大學(xué),誠(chéng)心求調(diào)劑 +11 | 吃吃吃才有意義 2026-03-19 | 11/550 |
|
|
[考研] 材料 271求調(diào)劑 +5 | 展信悅_ 2026-03-21 | 5/250 |
|
|
[考研] 材料專業(yè)求調(diào)劑 +6 | hanamiko 2026-03-18 | 6/300 |
|
|
[考研] 329求調(diào)劑 +9 | 想上學(xué)吖吖 2026-03-19 | 9/450 |
|
|
[考研] 290求調(diào)劑 +7 | ^O^乜 2026-03-19 | 7/350 |
|
|
[考研] 材料學(xué)碩297已過四六級(jí)求調(diào)劑推薦 +11 | adaie 2026-03-19 | 11/550 |
|
|
[考研] 材料學(xué)求調(diào)劑 +4 | Stella_Yao 2026-03-20 | 4/200 |
|
|
[考博] 申博26年 +3 | 八6八68 2026-03-19 | 3/150 |
|
|
[考研] 0703化學(xué)調(diào)劑 +3 | 妮妮ninicgb 2026-03-17 | 3/150 |
|
|
[考研] [導(dǎo)師推薦]西南科技大學(xué)國(guó)防/材料導(dǎo)師推薦 +3 | 尖角小荷 2026-03-16 | 6/300 |
|