| 查看: 2010 | 回复: 13 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
飞鸿印雪jay银虫 (小有名气)
|
[求助]
想用遗传算法求解动力学参数 已有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); 请问怎么用遗传算法求解参数k啊,c的数值都是实验已知的,我用lsqnonlin求解,但是精度比较低。 |
» 猜你喜欢
【复旦大学】二维材料方向招收2026年博士研究生1名
已经有0人回复
北京纳米能源与系统研究所 王中林院士/曹南颖研究员课题组2026级硕/博/博后招生
已经有10人回复
物理学I论文润色/翻译怎么收费?
已经有225人回复
荷兰Utrecht University超快太赫兹光谱王海教授课题招收2026 CSC博士生
已经有23人回复
反铁磁体中的磁性切换:两种不同的机制已成功可视化
已经有0人回复
求标准粉末衍射卡号 ICDD 01-076-1802
已经有0人回复
新西兰Robinson研究所招收全奖PhD
已经有0人回复
石墨烯转移--二氧化硅衬底石墨烯
已经有0人回复
笼目材料中量子自旋液体基态的证据
已经有0人回复
飞鸿印雪jay
银虫 (小有名气)
- 应助: 1 (幼儿园)
- 金币: 340.5
- 散金: 60
- 帖子: 69
- 在线: 60.3小时
- 虫号: 2338094
- 注册: 2013-03-11
- 性别: GG
- 专业: 生物化工与食品化工
14楼2014-11-18 21:16:44
dingd
铁杆木虫 (职业作家)
- 计算强帖: 4
- 应助: 1641 (讲师)
- 金币: 15037.3
- 散金: 101
- 红花: 234
- 帖子: 3410
- 在线: 1223.5小时
- 虫号: 291104
- 注册: 2006-10-28
2楼2014-06-22 22:15:49
月只蓝
主管区长 (职业作家)
-

专家经验: +1059 - 计算强帖: 8
- 应助: 1712 (讲师)
- 贵宾: 8.888
- 金币: 68121.7
- 散金: 1938
- 红花: 443
- 沙发: 4
- 帖子: 4373
- 在线: 3291.4小时
- 虫号: 1122189
- 注册: 2010-10-14
- 专业: 宇宙学
- 管辖: 计算模拟区

3楼2014-06-22 22:37:13
飞鸿印雪jay
银虫 (小有名气)
- 应助: 1 (幼儿园)
- 金币: 340.5
- 散金: 60
- 帖子: 69
- 在线: 60.3小时
- 虫号: 2338094
- 注册: 2013-03-11
- 性别: GG
- 专业: 生物化工与食品化工
★
fegg7502: 金币+1, 鼓励交流 2014-06-24 08:37:01
fegg7502: 金币+1, 鼓励交流 2014-06-24 08:37:01
|
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使用函数lsqnonlin()估计得到的参数值为:\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]; |
4楼2014-06-23 00:09:40













回复此楼