| 查看: 2598 | 回复: 8 | |||
whqs8426212铜虫 (正式写手)
|
[求助]
matlab,lsqnonlin拟合曲线,数优化,的修改
|
|
最近,通过学习,写了一个参数优化的程序,觉得不够好。想GA的方法,代替lsqnonlin拟合。 整个程序的思路很明确,三组实验值与理论值的残差最小时,所得参数为最优。具体程序如下:大家研究研究,能否把GA弄进我的程序。具体程序详见二楼。 |
» 收录本帖的淘帖专辑推荐
实用matlab程序 |
» 猜你喜欢
深圳大学2026年秋博士招生-物理学-活性胶体方向-高永祥课题组
已经有18人回复
论物质与能量的统一模型及物理现象解释
已经有0人回复
物理学I论文润色/翻译怎么收费?
已经有252人回复
基于基元I统一理论的数学相关应用推导
已经有0人回复
基元I统一理论:宇宙本质、层级演化与修炼文明的本源规律
已经有1人回复
基元I理论下三大核心空间现象精准推导与细节解析
已经有0人回复
基于基元 I 统一理论的反重力理论推导
已经有0人回复
基于基元I统一理论的量子力学本源推导
已经有1人回复
推荐一款可以AI辅助写作的Latex编辑器SmartLatexEditor,超级好用,AI润色,全免费
已经有20人回复
【EI|Scopus 双检索】第六届智能机器人系统国际会议(ISoIRS 2026)
已经有0人回复
2026年第四届电动车与车辆工程国际会议(CEVVE 2026)
已经有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
- 金币: 68125.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













回复此楼