| 查看: 2558 | 回复: 8 | |||
whqs8426212铜虫 (正式写手)
|
[求助]
matlab,lsqnonlin拟合曲线,数优化,的修改
|
|
最近,通过学习,写了一个参数优化的程序,觉得不够好。想GA的方法,代替lsqnonlin拟合。 整个程序的思路很明确,三组实验值与理论值的残差最小时,所得参数为最优。具体程序如下:大家研究研究,能否把GA弄进我的程序。具体程序详见二楼。 |
» 收录本帖的淘帖专辑推荐
实用matlab程序 |
» 猜你喜欢
北京纳米能源与系统研究所 王中林院士/曹南颖研究员课题组2026级硕/博/博后招生
已经有10人回复
荷兰Utrecht University超快太赫兹光谱王海教授课题招收2026 CSC博士生
已经有23人回复
物理学I论文润色/翻译怎么收费?
已经有253人回复
反铁磁体中的磁性切换:两种不同的机制已成功可视化
已经有0人回复
求标准粉末衍射卡号 ICDD 01-076-1802
已经有0人回复
新西兰Robinson研究所招收全奖PhD
已经有0人回复
石墨烯转移--二氧化硅衬底石墨烯
已经有0人回复
笼目材料中量子自旋液体基态的证据
已经有0人回复
数学教学论硕士可以读数学物理博士吗?
已经有0人回复
» 本主题相关价值贴推荐,对您同样有帮助:
呼叫版主,在线紧急求助,关于matlab中微分方程组参数拟合得问题!
已经有12人回复
求大神帮忙matlab拟合函数求参数
已经有9人回复
拜求!matlab拟合动力学参数
已经有14人回复
在进行多元非线性拟合的时候,用matlab拟合的值残差都大于0
已经有14人回复
求助用matlab 多元非线性拟合2
已经有21人回复
matlab非线性拟合模型参数,大神你在哪!
已经有73人回复
使用lsqnonlin函数优化动力学参数,总是得不到合理的结果
已经有6人回复
如何用matlab对四维数据进行非线性拟合?
已经有5人回复
求助,一自变量二因变量拟合matlab该怎么实现呢?
已经有9人回复
关于matlab的参数估计
已经有15人回复
Matlab最小二乘参数优化
已经有3人回复
MATLAB非线性优化拟合怎么改才正确
已经有3人回复
matlab 拟合反应动力学参数结果很差。大家帮忙看一下
已经有14人回复
matlab的残差大小跟什么因素有关?拟合的函数选择?还是给定值的范围?
已经有4人回复
matlab微分方程组参数拟合,以周为单位求解,汇总后以年为单位进行数值比较
已经有4人回复
matlab拟合方程参数时初值的选择
已经有15人回复
matlab 求指点 动力学方程拟合过程中导数的获取
已经有10人回复
matlab非线性参数拟合问题
已经有7人回复
【求助】matlab 二次规划的优化的问题
已经有4人回复
【求助】使用Matlab拟合反应动力学方程问题
已经有7人回复
whqs8426212
铜虫 (正式写手)
- 应助: 5 (幼儿园)
- 金币: 13.2
- 散金: 375
- 红花: 7
- 帖子: 782
- 在线: 685.7小时
- 虫号: 2572504
- 注册: 2013-07-30
- 专业: 数论
|
function parafitN2 clear all clc % t/s Fe(2) H2O2 4-Cp dilos / mol/L Kinetics=[0 0.125 2.5 1 0 100 0.1 1.2 0.5 0.1000 200 0.1 0.5 0.2 0.22 400 0.1 0.15 0.1 0.24 900 0.1 0 0.1 0.25 ]*1e-3; %%用于拟合的实验数据 B0=[4e9 0.6e9 (2.99)*1e11 (1.00)*1e9 (2.00)*1e7 (4.90)*1e9 (9.58)*1e5 400 40]; lb=[0 0 0 0 0 0 0 0 40]; x0=(1e-3)*[0.125 0 2.5 0 0 0 1 0 0 0 0 0]; yexp = Kinetics ; % yexp: 实验数据[x1 x4 x5 x6] % 使用函数lsqnonlin()进行参数估计 options = optimset('largescale','off','display','iter'); options=optimset(options,'tolx',1e-100); options=optimset(options,'tolfun',1e-100); [B,resnorm,residual,exitflag,output,lambda,jacobian] = ... lsqnonlin(@ObjFunc7LNL,B0,lb,[],options,x0,yexp); ci = nlparci(B,residual,jacobian); fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n') fprintf('\tk16 = %.11f\n',B(1)) fprintf('\tk17 = %.11f\n',B(2)) fprintf('\tk18 = %.11f\n',B(3)) fprintf('\tk21 = %.11f\n',B(4)) fprintf('\tk22 = %.11f\n',B(5)) fprintf('\tk23 = %.11f\n',B(6)) fprintf('\tk24 = %.11f\n',B(7)) fprintf('\tk25 = %.11f\n',B(8)) fprintf('\tk26 = %.11f\n',B(9)) fprintf(' 所求残差为: %.1e\n\n',resnorm) % ------------------------------------------------------------------ function f = ObjFunc7LNL(B,x0,yexp) %目标函数=实验值和和理论值之差 tspan = [0 100 200 400 900]; [t x] = ode23s(@KineticEqs,tspan,x0,[],B); f1 = x(:,1) - yexp(:,2); f2 = x(:,3) - yexp(:,3); f3 = x(:,7) - yexp(:,4); f4 = x(:,8) - yexp(:,5); f = [f1 f2 f3 f4]; % ------------------------------------------------------------------ function dxdt = KineticEqs(t,x,B) % 反应模型方程 k(1)=76; k(2)=0.01; k(3)=(1.0e+7)*2.7;k(4)=(1.0e+5)*1.58; k(5)=1.0e+10;k(6)=3.2*(1.0e+8); k(7)=1.2*(1.0e+6); k(8)=3.1*(1.0e+5);k(9)=(1.0e+7) ;k(10)=5*(1.0e+7); k(11)=4.2*(1.0e+9); k(12)=8.3*(1.0e+5); k(13)=(1.0e+10); k(14)=(1.0e+10); k(15)=9.7*(1.0e+7); r1=k(1)*x(1)*x(3);r2 = k(2)*x(2)*x(3); r3 = k(3)*x(4)*x(3); r4 = k(4)*x(5); r5 = k(5)*(1e-3)*x(6);r6 = k(6)*x(4)*x(1);r7 = k(7)*x(5)*x(1)*1e-3; r8 = k(8)*x(5)*x(2)*1e-3; r9 = k(9)*x(6)*x(1)*1e-6; r10 = k(10)*x(6)*x(2);r11 = k(11)*x(4)*x(4);r12 = k(12)*x(5)*x(5); r13 = k(13)*x(4)*x(5);r14 = k(14)*x(4)*x(6);r15 = k(15)*x(5)*x(6); r16 = B(1)*x(7)*x(4); r17 = B(2)*x(7)*x(4); r18 = B(3)*x(9)*x(4); r21 = B(4)*x(8)*x(4); r22 = B(5)*x(8)*x(2)*x(2); r23 = B(6)*x(11)*x(4); r24 = B(7)*x(12)*x(4); r25 = B(8)*x(12)*x(2); r26 = B(9)*x(2)*x(12)*0.3; dx(1)=-r1+r2-r6-r7+r8-r9+r10+2*r22+r25; %检测指标[Fe2 +]: dx(2)= -(-r1+r2-r6-r7+r8-r9+r10+2*r22+r25)-r26; %[Fe3+ ] dx(3)=-r1-r2-r3+r7+r9+r11+r12+r15;% 原文“-r15” %检测指标[h2o2] dx(4)=r1-r3-r6-r11-r13-r14-r16-r21-r23-r24-r18; %[·OH ]: dx(5)=r2-r4+r5-r7-r8-r12-r13-r15; %[HO2·] dx(6)=r4-r5-r9-r10-r14-r15; %x(o2) dx(7)=-r16-r17; %检测指标[4v-xP] dx(8)=r17+r18-r21-r22; %检测指标[diols ] dx(9)=r16-r18; %[xlDHxD ] dx(10)=0; %[xlDHxDP ] dx(11)=r21+r22-r23; %[B Q] dx(12)=3*r23-r24-r25-r26; %aSS dxdt=[ dx(1);dx(2);dx(3);dx(4); dx(5);dx(6);dx(7);dx(8);dx(9); dx(10);dx(11);dx(12)]; |
2楼2014-08-17 20:56:46
feixiaolin
荣誉版主 (文坛精英)
-

专家经验: +518 - 应助: 942 (博后)
- 贵宾: 1.275
- 金币: 3430
- 散金: 58785
- 红花: 532
- 沙发: 11
- 帖子: 24215
- 在线: 2601.8小时
- 虫号: 2139575
- 注册: 2012-11-21
- 专业: 光学信息获取与处理
- 管辖: 数学
3楼2014-08-18 07:46:36
whqs8426212
铜虫 (正式写手)
- 应助: 5 (幼儿园)
- 金币: 13.2
- 散金: 375
- 红花: 7
- 帖子: 782
- 在线: 685.7小时
- 虫号: 2572504
- 注册: 2013-07-30
- 专业: 数论
4楼2014-08-18 10:17:07
feixiaolin
荣誉版主 (文坛精英)
-

专家经验: +518 - 应助: 942 (博后)
- 贵宾: 1.275
- 金币: 3430
- 散金: 58785
- 红花: 532
- 沙发: 11
- 帖子: 24215
- 在线: 2601.8小时
- 虫号: 2139575
- 注册: 2012-11-21
- 专业: 光学信息获取与处理
- 管辖: 数学
5楼2014-08-18 10:22:36
whqs8426212
铜虫 (正式写手)
- 应助: 5 (幼儿园)
- 金币: 13.2
- 散金: 375
- 红花: 7
- 帖子: 782
- 在线: 685.7小时
- 虫号: 2572504
- 注册: 2013-07-30
- 专业: 数论
6楼2014-08-18 12:13:41
月只蓝
主管区长 (职业作家)
-

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

7楼2014-08-18 20:50:42
whqs8426212
铜虫 (正式写手)
- 应助: 5 (幼儿园)
- 金币: 13.2
- 散金: 375
- 红花: 7
- 帖子: 782
- 在线: 685.7小时
- 虫号: 2572504
- 注册: 2013-07-30
- 专业: 数论
8楼2014-08-18 21:04:12
whqs8426212
铜虫 (正式写手)
- 应助: 5 (幼儿园)
- 金币: 13.2
- 散金: 375
- 红花: 7
- 帖子: 782
- 在线: 685.7小时
- 虫号: 2572504
- 注册: 2013-07-30
- 专业: 数论
9楼2014-08-18 21:10:34







回复此楼