| 查看: 2034 | 回复: 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求解,但是精度比较低。 |
» 猜你喜欢
新西兰Robinson研究所招收全奖PhD
已经有0人回复
石墨烯转移--二氧化硅衬底石墨烯
已经有0人回复
物理学I论文润色/翻译怎么收费?
已经有188人回复
笼目材料中量子自旋液体基态的证据
已经有0人回复
数学教学论硕士可以读数学物理博士吗?
已经有0人回复
德国亥姆霍兹Hereon中心汉堡分部招镁合金腐蚀裂变SCC课题方向2026公派博士生
已经有4人回复
澳门大学 应用物理及材料工程研究院 潘晖教授课题组诚招博士后
已经有11人回复
求助NH4V4O10晶体的CIF文件
已经有0人回复
英国全奖博士招聘-深度学习与量子物理
已经有0人回复
间接带隙半导体有效质量求助
已经有1人回复
投稿chemical physical letters不送审?
已经有2人回复
» 本主题相关价值贴推荐,对您同样有帮助:
使用matlab最优化方法拟合获得多个动力学参数中的问题
已经有4人回复
药动学参数求解
已经有8人回复
拜求!matlab拟合动力学参数
已经有14人回复
遗传算法不是用来做计算机模拟的吗?还可以指导实验设计进行参数优化?
已经有3人回复
请教下优化类的算法 处理带约束问题
已经有7人回复
热分析动力学疑问
已经有13人回复
使用lsqnonlin函数优化动力学参数,总是得不到合理的结果
已经有6人回复
通过实验数据拟合,求解公式中的参数
已经有14人回复
微分方程组参数拟合的问题(多参数动力系统参数估计)
已经有11人回复
重金请教-如何用MAtlab对力学模型进行参数识别
已经有12人回复
动力学方程参数估计方法
已经有14人回复
SCR反应动力学方程求解的问题
已经有4人回复
matlab求解方程中的参数
已经有21人回复
动力学参数拟合
已经有26人回复
matlab 拟合反应动力学参数结果很差。大家帮忙看一下
已经有14人回复
请教matlab反应动力学参数估计遇到的问题,谢谢
已经有15人回复
MATLAB用于三元回归参数
已经有3人回复
求回归方程参数估计的最优化算法matlab代码
已经有9人回复
关于反应动力学产物浓度的测定
已经有16人回复
【求助】求助特性粘数的具体算法,谢谢
已经有18人回复
【求助】如何从极化曲线求动力学参数
已经有7人回复
飞鸿印雪jay
银虫 (小有名气)
- 应助: 1 (幼儿园)
- 金币: 340.5
- 散金: 60
- 帖子: 69
- 在线: 60.3小时
- 虫号: 2338094
- 注册: 2013-03-11
- 性别: GG
- 专业: 生物化工与食品化工
7楼2014-06-23 00:27:31
dingd
铁杆木虫 (职业作家)
- 计算强帖: 4
- 应助: 1641 (讲师)
- 金币: 15037.3
- 散金: 101
- 红花: 234
- 帖子: 3410
- 在线: 1223.7小时
- 虫号: 291104
- 注册: 2006-10-28
2楼2014-06-22 22:15:49
月只蓝
主管区长 (职业作家)
-

专家经验: +1059 - 计算强帖: 8
- 应助: 1712 (讲师)
- 贵宾: 8.888
- 金币: 68123.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













回复此楼