| 查看: 2030 | 回复: 9 | |||
[求助]
动力学方程组参数求解问题 已有3人参与
|
» 本主题相关价值贴推荐,对您同样有帮助:
使用matlab最优化方法拟合获得多个动力学参数中的问题
已经有4人回复
有关伪一级动力学和伪二级动力学方程
已经有9人回复
用matlab求解方程
已经有6人回复
求助动力学方程???
已经有3人回复
求助用matlab拟合动力学方程
已经有9人回复
如何求解带有固定参数的超定方程组?
已经有21人回复
求助,matlab自定义微分方程拟合实验数据来求方程中的参数
已经有4人回复
微分方程组求参数问题,求高人指教,感谢
已经有11人回复
微分方程组参数拟合的问题(多参数动力系统参数估计)
已经有11人回复
【求助】非线性方程组的求解问题
已经有6人回复
求助matlab拟合方程组
已经有12人回复
动力学方程参数估计方法
已经有14人回复
SCR反应动力学方程求解的问题
已经有4人回复
动力学参数拟合
已经有26人回复
请教matlab反应动力学参数估计遇到的问题,谢谢
已经有15人回复
车辆动力学模型的解法
已经有14人回复
matlab m文件运行出错
已经有4人回复
matlab-常微分方程参数估计
已经有12人回复
lsqnonlin函数拟合微分方程组参数拟合问题
已经有10人回复
求回归方程参数估计的最优化算法matlab代码
已经有9人回复
matlab非线性参数拟合问题
已经有7人回复
【求助】matlab 求解微分方程中的未知参数
已经有20人回复
【求助】多元方程组求解及拟合
已经有9人回复
【求助】催化反应动力学
已经有5人回复
【求助】使用Matlab预估动力学方程问题
已经有13人回复
月只蓝
主管区长 (职业作家)
-

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

2楼2014-09-02 14:26:53
Cle_key
铁虫 (小有名气)
- 应助: 22 (小学生)
- 金币: 1560.8
- 红花: 2
- 帖子: 178
- 在线: 28.9小时
- 虫号: 2625972
- 注册: 2013-08-31
- 性别: GG
- 专业: 内流流体力学

3楼2014-09-02 17:38:33
polypro
木虫 (正式写手)
- 应助: 197 (高中生)
- 金币: 3921.3
- 散金: 160
- 红花: 22
- 帖子: 512
- 在线: 62.6小时
- 虫号: 1809438
- 注册: 2012-05-11
- 性别: GG
- 专业: 理论和计算化学

4楼2014-09-03 08:20:26
5楼2014-09-03 10:16:34
6楼2014-09-03 10:17:13
7楼2014-09-03 10:18:51
|
你好,能麻烦你帮我看一下我的下面这个程序为什么运行不了嘛? function fourLumpK_VR440 clc; clear all; format long; fourLumpData=[... 0 69.33 21.33 7.66 1.76 15 52.96 26.45 17.84 3.18 30 49.9 27.61 18.29 3.92 45 39.03 28.51 27.93 5 60 33.45 25.4 34.49 7.1 90 25.76 24.99 42.38 7.48 ]; % vector of yields/% Xexp=fourLumpData(2:6,2:5); % oil residence time,unit: min time= fourLumpData(2:6,1)'; % initiate parameter for optimization X0=fourLumpData(1,2:5); % k1 k2 k3 k4 k5 K0 =[0.0014 0.0012 0.0005 0.0020 0.0013]; lb=0; ub=inf; %计时开始拟合 tic; K=lsqnonlin(@objFun,K0,lb,ub,[],X0,Xexp,time); % 拟合结果显示 disp(K) % 计时结束 disp('耗时:'); toc; % 保存拟合结果 save fourLumpK_VR440; % 检验----------------------------------------------- tf=max(time); tspan=[0:1:tf]; [nr,nc]=size(Xexp); XcalFinal=zeros(nr,nc); for i=1:nr [t,Xcal]=ode45(@modelEquation,tspan,X0,[],K,tf); n=find(t>=time(i)); m=n(1); %线性内插 Xc=Xcal(m, -(Xcal(m, -Xcal(m-1, )/(t(m)-t(m-1))*(t(m)-time(i));XcalFinal(i, =Xc;save XcalFinal end objX = abs((XcalFinal - Xexp)./100).^2; F=sum(sum(objX))^0.5; error=(XcalFinal - Xexp) avrError=sum(abs(error))/nr relatError=(XcalFinal - Xexp)./Xexp*100 avrRelError=sum(abs(relatError))/nr rou_2=1-sum((XcalFinal - Xexp).^2)./sum(Xexp.^2) Fc_11=(sum(XcalFinal.^2)-sum((XcalFinal - Xexp).^2))/5./(sum((XcalFinal - Xexp).^2)/(5*4-5)) % 残差图----------------------------------------------------------- figure(1); clf; hold on; plot(XcalFinal(:,1),Xexp(:,1),'m*'); plot(XcalFinal(:,2),Xexp(:,2),'r*'); plot(XcalFinal(:,3),Xexp(:,3),'b*'); plot(XcalFinal(:,4),Xexp(:,4),'k*'); legend('尾油','蜡油','轻油','气+焦'); % 图形注解 xlabel('Xcal,%'); % x轴注解 ylabel('Xexp,%'); % y轴注解 % title('Xexp-Xcal'); % 图形标题 hold on; x=0:0.1:80; plot(x,x,'k-'); % y-t图形显示 figure(2); clf; hold on; tf=max(time); tspan=[0:1:tf]; [t,XcalFinal]=ode45(@modelEquation,tspan,X0,[],K,tf); plot(t,XcalFinal(:,1),'m'); plot(t,XcalFinal(:,2),'r'); plot(t,XcalFinal(:,3),'b'); plot(t,XcalFinal(:,4),'k'); legend('尾油','蜡油','轻油','气+焦'); % 图形注解 xlabel('t/min'); % x轴注解 ylabel('X/%'); % y轴注解 % title('X--t'); % 图形标题 hold; %绘制试验点 figure(2); hold on; plot(fourLumpData(:,1)',fourLumpData(:,2),'m*'); plot(fourLumpData(:,1)',fourLumpData(:,3),'r*'); plot(fourLumpData(:,1)',fourLumpData(:,4),'b*'); plot(fourLumpData(:,1)',fourLumpData(:,5),'k*'); % ----------------------------------------------------------------- function F = objFun(K,X0,Xexp,time) tf=max(time); tspan=[0:1:tf]; [nr,nc]=size(Xexp); XcalFinal=zeros(nr,nc); for i=1:nr [t,Xcal]=ode45(@modelEquation,tspan,X0,[],K,tf); n=find(t>=time(i)); m=n(1); %线性内插 Xc=Xcal(m, -(Xcal(m, -Xcal(m-1, )/(t(m)-t(m-1))*(t(m)-time(i));XcalFinal(i, =Xc;end objX = abs((XcalFinal - Xexp)./100).^2; F=sum(sum(objX))^0.5; error=(XcalFinal - Xexp) avrError=sum(abs(error))/nr avrErr=sum(avrError)/nc relatError=(XcalFinal - Xexp)./Xexp*100 avrRelError=sum(abs(relatError))/nr avrRelErr=sum(avrRelError)/nc K function dxdt = modelEquation(t,X,K,tf) f1=-(K(1)+K(2)+K(3))*X(1); f2= K(1)*X(1)-(K(4)+K(5))*X(2); f3= K(2)*X(1)+K(4)*X(2); f4= K(3)*X(1)+K(5)*X(2); dxdt = [f1;f2;f3;f4]; |
8楼2014-09-04 20:20:33
|
发现有乱码哎,我上传个附件给你,麻烦你帮我看一下吧。 |
» 本帖附件资源列表
-
欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com - 附件 1 : fourLumpK_VR440.m
2014-09-04 20:22:37, 3.21 K
9楼2014-09-04 20:22:41
10楼2015-05-02 15:10:19







回复此楼
-(Xcal(m,