| 查看: 805 | 回复: 4 | |||
[求助]
动力学参数拟合matlab程序有问题 已有1人参与
|
| 求大神帮看下程序问题在哪? |
» 猜你喜欢
情人节自我反思:在爱情中有过遗憾吗?
已经有8人回复
基金正文30页指的是报告正文还是整个申请书
已经有5人回复
今年春晚有几个节目很不错,点赞!
已经有6人回复
过年走亲戚时感受到了所开私家车的鄙视链
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
向大神求教一个用matlab拟合动力学参数的问题,求指导
已经有5人回复
给我大神求教一个用matlab拟合动力学参数的问题,求指导
已经有0人回复
Matlab拟合动力学参数问题,求指导!
已经有9人回复
各位大神能不能帮小弟看看动力学编程的问题
已经有8人回复
matlab 非线性拟合 数据拟合
已经有3人回复
最小二乘 平方和初值小于函数公差的默认值(动力学方程拟合)
已经有3人回复
使用matlab最优化方法拟合获得多个动力学参数中的问题
已经有4人回复
求助1stopt拟合动力学参数
已经有4人回复
Matlab动力学拟合问题!求助!!!!
已经有0人回复
使用lsqnonlin函数优化动力学参数,总是得不到合理的结果
已经有6人回复
matlab 拟合反应动力学参数结果很差。大家帮忙看一下
已经有14人回复
matlab拟合拟均相动力学参数
已经有6人回复
请那位帮我看看这个MATLAB程序那里有问题!先谢谢
已经有2人回复
请那位帮我看看这个MATLAB程序那里有问题!先谢谢
已经有0人回复
【求助】使用Matlab预估动力学方程问题
已经有13人回复

|
程序如下 : function PX4800602 clear all clc global x0 % k0 = [1.8887 0.0036 0.0070 0.7557 0.1455]; % k0 = [4.4163008451 0.0033686022 0.0065669052 1.6201160059 16.2647816]; k0= [ 5.2766233638 0.0030934069 0.0060459974 1.8656945060 20.6241874]; % 参数初值 lb = [0 0 0 0 0]; % 参数下限 ub = [+inf +inf +inf +inf +inf ]; % 参数上限 x0 = [0 0 0 0 0 0]; tspn=[0 43.2 72]; % yexp =[0 0 0 0 0;0.2282 0.2067 0.0057 0.0025 0.0132;0.2394 0.2170 0.0063 0.0037 0.0123; 0.2515 0.2278 0.0069 0.0040 0.0128;0.2638 0.2378 0.0081 0.0043 0.0135;0.2738109 0.2461347 0.0049171 0.011883 0.01087607]; % yexp: 实验数据 % yexp =[0 0 0 0 0;22.81824 20.67075 0.571198 0.253676 1.322614; 23.94047 21.7016 0.633422 0.372055 1.233396;25.14798 22.77878 0.692198 0.39614 1.280859;26.37669 23.78016 0.811828 0.432807 1.351893;27.38109 24.61347 0.8883 0.49171 1.387607]*0.01; % yexp: 实验数据 yexp=[0 0 0 0 0 0; 22.253 20.067 0.340 0.633 1.213 53.06753634; 23.532 21.175 0.385 0.662 1.310 50.31636493]; % yexp=[0 0 0 0 0 0;23.679 21.655 0.421 0.715 0.888 50.9; 24.415 22.131 0.463 0.724 1.096 48.978;25.148 22.580 0.481 0.751 1.336 47.073;26.377 23.580 0.564 0.869 1.364 44.518;27.110 23.948 0.594 1.177 1.392 43; % 15.51 14.1 0.2476 0.545 0.614 67.75;15.78 14.24 0.265 0.6352 0.632 67.18;16.4 14.51 0.292 0.672 0.937 65.32;]*0.01; % yexp: 两个配比 % yexp=[0 0 0 0 0 0;23.679 21.655 0.421 0.715 0.888 50.9; 24.415 22.131 0.463 0.724 1.096 48.978;25.148 22.580 0.481 0.751 1.336 47.073;26.377 23.580 0.564 0.869 1.364 44.518;27.110 23.948 0.594 1.177 1.392 43;] % yexp: 一个配比 % 使用函数lsqnonlin()进行参数估计 [k,resnorm,residual,exitflag,output,lambda,jacobian] = lsqnonlin(@ObjFunc4LNL,k0,lb,ub,optimset('TolFun',1.0000e-12),x0,yexp); ci = nlparci(k,residual,jacobian) fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n') fprintf('\tk1 = %.10f ± %.7f\n',k(1),ci(1,2)-k(1)) fprintf('\tk2 = %.10f ± %.7f\n',k(2),ci(2,2)-k(2)) fprintf('\tk3 = %.10f ± %.7f\n',k(3),ci(3,2)-k(3)) fprintf('\tk4 = %.10f ± %.7f\n',k(4),ci(4,2)-k(4)) fprintf('\tk5 = %.7f ± %.7f\n',k(5),ci(5,2)-k(5)) % fprintf('\tk6 = %.7f ± %.7f\n',k(4),ci(6,2)-k(6)) fprintf(' The sum of the squares is: %.1e\n\n',resnorm) % ------------------------------------------------------------------ function f = ObjFunc4LNL(k,x0,yexp) tspn=[0 43.2 72]; [t x] = ode45(@KineticEqs1,tspn,x0,[],k); y = x f1 = y(2:3,1) - yexp(2:3,1); f2 = y(2:3,2) - yexp(2:3,2); f3 = y(2:3,3) - yexp(2:3,3); f4 = y(2:3,4) - yexp(2:3,4); f5 = y(2:3,5) - yexp(2:3,5); f6 = y(2:3,6) - yexp(2:3,6); z1=x % -------------------------------------------不同配比的方程组 function dxdt = KineticEqs1(t,x,k) p0=1.3*1; dxdt = ... [(k(1)*(2*p0*(1-x(1))/(19+0.5*x(6)))*(1-2*x(1)-2*x(5)-x(6))*p0/(19+0.5*x(6))) (k(1)*(2*p0*(1-x(1))/(19+0.5*x(6)))*((1-2*x(1)-2*x(5)-x(6))*p0/(19+0.5*x(6)))-2*(k(2)+k(3))*p0*x(2)/(19+0.5*x(6))-2*k(4)*p0*x(2)/(19+0.5*x(6))*((1-2*x(1)-2*x(5)-x(6))*p0/(19+0.5*x(6)))) (2*k(2)*p0*x(2)/(19+0.5*x(6))-2*k(4)*p0*x(3)/(19+0.5*x(6))*((1-2*x(1)-2*x(5)-x(6))*p0/(19+0.5*x(6)))) (2*k(3)*p0*x(2)/(19+0.5*x(6))-2*k(4)*p0*x(4)/(19+0.5*x(6))*((1-2*x(1)-2*x(5)-x(6))*p0/(19+0.5*x(6)))) (k(4)*(2*(x(2)+x(3)+x(4))*p0/(19+0.5*x(6)))*((1-2*x(1)-2*x(5)-x(6))*p0/(19+0.5*x(6)))) (2*k(5)*((1-2*x(1)-2*x(5)-x(6))*p0/(19+0.5*x(6)))^2) ]; |

2楼2015-10-10 13:49:42
|
??? Error using ==> feval Output argument "f" (and maybe others) not assigned during call to "C:\Users\cai\Desktop\Matlab模拟\PX程序\PX新动力学\拟合程序\PX480602.m>ObjFunc4LNL". **********错误提示***************** Error in ==> lsqnonlin at 203 initVals.F = feval(funfcn{3},xCurrent,varargin{:}); Error in ==> PX480602 at 30 [k,resnorm,residual,exitflag,output,lambda,jacobian] = lsqnonlin(@ObjFunc4LNL,k0,lb,ub,optimset('TolFun',1.0000e-12),x0,yexp); Caused by: Failure in initial user-supplied objective function evaluation. LSQNONLIN cannot continue. |

3楼2015-10-10 13:50:13
月只蓝
主管区长 (职业作家)
-

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

4楼2015-10-10 14:35:18

5楼2015-10-18 16:59:01













回复此楼