| 查看: 479 | 回复: 0 | ||
[求助]
求助遗传算法对反应速率常数初步估算的问题
|
|
各位大神小弟先在此谢过 我要用matlab做反应速率常数的拟合,打算用遗传算法对常数先进性拟合再用最小二乘法拟合,但用遗传算法是程序进行不下去,请各位帮忙看一下,问题出在哪,急求。 数据: kineticsA4data % 动力学数据 mmol/m2)% t(h) C A P P ExpData = ... [ 0.00 25.2751 0 0 0 0.25 22.9500 0.3201 1.0294 0.3103 0.50 21.6138 0.4853 1.4568 0.6454 0.75 21.2019 0.5185 1.8947 0.9272 1.00 20.3590 0.6083 2.1379 1.1658 1.25 20.0490 0.6995 2.3849 1.2432 1.50 19.3850 0.7270 2.4681 1.5247 1.75 19.1517 0.7706 2.6907 1.6407 2.00 18.9174 0.8237 3.1265 1.7000 2.25 18.1695 0.9126 3.3860 1.9000 2.50 18.3046 0.9659 3.3133 2.0000 2.75 16.7374 0.9784 4.1797 2.1000 3.00 17.2217 1.0000 3.9054 2.3000]; c程序: function ga_test_fuzamodel_feifor clear all clc lb = [0 0 0 0 0 0 0 0 0]; % 参数下限 ub = [+inf +inf +inf +inf +inf +inf +inf +inf +inf]; x0=[25.2751 0 0 0 0.0001 0.0001 0.0001]; kineticsA4data; yexp=ExpData(:,2:5); options = gaoptimset('Generations',1000,'StallGenLimit',300,... 'StallTimeLimit',50,'TolFun',1e-12,'TolCon',1e-12); [k1,fva,reason,output,final_pop]=ga(@objfun,9,options); options = gaoptimset('InitialPopulation',final_pop,'Generations',1000,'StallGenLimit',300,... 'StallTimeLimit',50,'TolFun',1e-12,'TolCon',1e-12); [k2,fva,reason,output,final_pop2]=ga(@objfun,9,options); fprintf('\n\n遗传算法的初始估计数值:\n'); fprintf('\n\t参数 a0 = %.9f',k2(1)); fprintf('\n\t参数 b0 = %.9f',k2(2)); fprintf('\n\t参数 c0 = %.9f',k2(3)); fprintf('\n\t参数 d0 = %.9f',k2(4)); fprintf('\n\t参数 d0 = %.9f',k2(5)); fprintf('\n\t参数 d0 = %.9f',k2(6)); fprintf('\n\t参数 d0 = %.9f',k2(7)); fprintf('\n\t参数 d0 = %.9f',k2(8)); fprintf('\n\t参数 d0 = %.9f',k2(9)); function fun=objfun(k) tspan=[0 0.25 0.5 0.75 1 1.25 1.5 1.75 2 2.25 2.5 2.75 3]; x0=[25.2751 0 0 0 0.0001 0.0001 0.0001]; [t x] = ode45(@KineticEqs,tspan,x0,[],k); kineticsA4data; yexp=ExpData(:,2:5); ycal(:,1) = x(:,1); ycal(:,2) = x(:,2); ycal(:,3) = x(:,3); ycal(:,4) = x(:,4) fun = sum((ycal(:,1)-yexp(:,1)).^2) + sum((ycal(:,2)-yexp(:,2)).^2) ... + sum((ycal(:,3)-yexp(:,3)).^2) + sum((ycal(:,4)-yexp(:,4)).^2) % ------------------------------------------------------------------ function dxdt = KineticEqs(t,x,k) dxdt=[(-k(3)*x(1)*x(7)-k(4)*x(1)*x(6)) (k(7)*x(6)) (k(4)*x(1)*x(6)+k(5)*x(4)*x(6)) (k(3)*x(1)*x(7)-k(1)*x(4)-k(5)*x(4)*x(6)) (-k(2)*x(5)+k(3)*x(1)*x(7)+k(4)*x(1)*x(6)-2*k(9)*x(5)^2) (k(1)*x(4)-k(4)*x(1)*x(6)-k(5)*x(4)*x(6)-k(7)*x(6)+2*k(6)*x(6)^2) (k(2)*x(5)-k(3)*x(1)*x(7)+k(5)*x(4)*x(6)-2*(k(6)+k(8))*x(7)^2)]; |
» 猜你喜欢
基金申请
已经有44人回复
CSC与新西兰维多利亚大学PhD奖学金项目
已经有0人回复
物理学I论文润色/翻译怎么收费?
已经有190人回复
新西兰Robinson研究所 招聘CSC公派访问人员
已经有0人回复
帮我的英语口语老师找学生
已经有0人回复
什么时候开奖?
已经有13人回复
散金币祈福
已经有94人回复
青基已中
已经有1人回复
散金币祈福
已经有185人回复
求助,如何提取ELK的rt-TDDFT在某一时刻的自旋密度分布和电子密度分布
已经有1人回复
找到一些相关的精华帖子,希望有用哦~
反应势能面中势垒为正,计算反应速率拟合出来的活化能为负,急求解释!
已经有3人回复
求助:光催化降解率和伪一级反应速率常数疑惑
已经有4人回复
Matlab同时拟合活化能,反应级数,速率常数
已经有26人回复
关于双分子反应速率常数问题
已经有3人回复
求助用matlab三次样条法算一个反应的反应速率
已经有13人回复
有关反应速率常数的计算
已经有9人回复
速率常数的计算
已经有8人回复
有用经典过渡态理论TST计算反应速率的高手吗?求救,撒金币!
已经有12人回复
Gaussian 计算二级反应速率常数
已经有4人回复
高斯计算微观动力学研究-计算结果:逆反应速率常数大于正反应速率常数 是否正常
已经有14人回复
关于化学反应速率常数指前因子单位的问题。
已经有6人回复
求gaussian计算反应速率常数,指前因子方法。
已经有25人回复
如何用MS计算反应速率常数k
已经有3人回复
【求助】催化反应动力学matlab计算各基元反应的速率常数时,该如何避免较小量被忽略?
已经有3人回复
【求助】扩散控制的反应速率常数
已经有11人回复
【求助】反应速率常数怎么算
已经有5人回复
科研从小木虫开始,人人为我,我为人人










mmol/m2)
回复此楼
点击这里搜索更多相关资源
30