24小时热门版块排行榜    

查看: 2117  |  回复: 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求解,但是精度比较低。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞鸿印雪jay

银虫 (小有名气)

引用回帖:
4楼: Originally posted by 飞鸿印雪jay at 2014-06-23 00:09:40
format long
clear all
clc
tspan = ;
x0 = ;
k0 = ;  
lb = ;
ub = ;

data=;
yexp = data(:,1:4);

=...
lsqnonlin(@ObjFunc,k0,lb,ub,[],tspan,x0,yexp);            
ci = nlparci(k,residua ...

我还发觉和x0的初值付的有关,如果初值付(1.2,0,0,0),拟合结果误差会小点,但是初值是我实验测得的,如果改了又不符合实际了。不懂!
8楼2014-06-23 00:34:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 14 个回答

dingd

铁杆木虫 (职业作家)

【答案】应助回帖


感谢参与,应助指数 +1
fegg7502: 金币+1, 3ks 2014-06-24 08:36:44
微分方程拟合问题建议试试1stOpt,论坛有不少类似案例,搜一下。其它数据有的话贴上来看看。
2楼2014-06-22 22:15:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖


感谢参与,应助指数 +1
fegg7502: 金币+1, 鼓励交流 2014-06-24 08:36:50
可以用GA算个初值,给lsqnonlin函数,这样的初值比较合理。
要是嫌麻烦,直接给出数据,让有高版本的1stopt的虫子跑一下也可以。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
3楼2014-06-22 22:37:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞鸿印雪jay

银虫 (小有名气)


fegg7502: 金币+1, 鼓励交流 2014-06-24 08:37:01
引用回帖:
2楼: Originally posted by dingd at 2014-06-22 22:15:49
微分方程拟合问题建议试试1stOpt,论坛有不少类似案例,搜一下。其它数据有的话贴上来看看。

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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿北京化工大学070300 学硕336求调剂 +3 vv迷 2026-03-21 4/200 2026-03-21 23:05 by f19980501
[考研] 311求调剂 +13 冬十三 2026-03-15 14/700 2026-03-21 22:10 by peike
[考研] 278求调剂 +9 烟火先于春 2026-03-17 9/450 2026-03-21 17:47 by 学员8dgXkO
[考研] 一志愿重庆大学085700资源与环境总分308求调剂 +7 墨墨漠 2026-03-20 7/350 2026-03-21 16:36 by barlinike
[基金申请] 学校已经提交到NSFC,还能修改吗? 40+4 babangida 2026-03-19 9/450 2026-03-21 16:12 by babangida
[考研] 265求调剂 +12 梁梁校校 2026-03-19 14/700 2026-03-21 13:38 by lature00
[考研] 能源材料化学课题组招收硕士研究生8-10名 +5 脱颖而出 2026-03-16 15/750 2026-03-21 10:16 by 脱颖而出
[考研] 316求调剂 +6 梁茜雯 2026-03-19 6/300 2026-03-21 06:32 by Ecowxq666!
[考研] 一志愿中国石油大学(华东) 本科齐鲁工业大学 +3 石能伟 2026-03-17 3/150 2026-03-21 02:22 by JourneyLucky
[考研] 288求调剂 +16 于海海海海 2026-03-19 16/800 2026-03-20 22:28 by JourneyLucky
[考研] 287求调剂 +7 晨昏线与星海 2026-03-19 8/400 2026-03-20 22:19 by JourneyLucky
[考研] A区线材料学调剂 +5 周周无极 2026-03-20 5/250 2026-03-20 21:33 by laoshidan
[考研] 一志愿 南京航空航天大学大学 ,080500材料科学与工程学硕 +5 @taotao 2026-03-20 5/250 2026-03-20 20:16 by JourneyLucky
[考研] 环境工程调剂 +9 大可digkids 2026-03-16 9/450 2026-03-20 17:38 by 醉在风里
[考研] 08工学调剂 +5 用户573181 2026-03-20 5/250 2026-03-20 15:47 by xia_2003
[考研] 一志愿中国海洋大学,生物学,301分,求调剂 +5 1孙悟空 2026-03-17 6/300 2026-03-19 23:46 by zcl123
[考研] 材料与化工求调剂 +7 为学666 2026-03-16 7/350 2026-03-19 14:48 by 尽舜尧1
[考研] 收复试调剂生 +4 雨后秋荷 2026-03-18 4/200 2026-03-18 14:16 by elevennnne
[考研] 有没有道铁/土木的想调剂南林,给自己招师弟中~ +3 TqlXswl 2026-03-16 7/350 2026-03-17 15:23 by TqlXswl
[考研] 333求调剂 +3 文思客 2026-03-16 7/350 2026-03-16 18:21 by 文思客
信息提示
请填处理意见