| 查看: 647 | 回复: 0 | ||
[求助]
复杂动力学多参数拟合程序
|
|
function Akinetics clear all clc global R C a0=[0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5] %参数初值 lb=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; %参数下限 ub=[+inf +inf +inf +inf +inf +inf +inf +inf +inf +inf +inf +inf +inf +inf +inf +inf +inf +inf +inf +inf +inf]; %参数上限 sulv = ... [0.1260 0.0960 0.0630 0.2680 0.0210 0.0189 0.0126 0.0168 0.0147 0.1260 0.1280 0.0630 0.2800 0.0210 0.0189 0.0126 0.0168 0.0147 0.1220 0.1460 0.0610 0.2840 0.0203 0.0183 0.0122 0.0163 0.0142 0.1400 0.1740 0.0700 0.2960 0.0233 0.0210 0.0140 0.0187 0.0163 0.1700 0.1980 0.0850 0.3280 0.0283 0.0255 0.0170 0.0227 0.0198 0.1700 0.2160 0.0850 0.3320 0.0283 0.0255 0.0170 0.0227 0.0198 0.1760 0.2300 0.0880 0.3400 0.0293 0.0264 0.0176 0.0235 0.0205 0.2140 0.2480 0.1070 0.4560 0.0357 0.0321 0.0214 0.0285 0.0250 0.2440 0.2780 0.1220 0.4680 0.0407 0.0366 0.0244 0.0325 0.0285 0.2620 0.2980 0.1310 0.5560 0.0437 0.0393 0.0262 0.0349 0.0306] nondu = ... [0.0252 0.0192 0.0126 0.0536 0.0042 0.0038 0.0025 0.0034 0.0029 0.0252 0.0256 0.0126 0.0560 0.0042 0.0038 0.0025 0.0034 0.0029 0.0244 0.0292 0.0122 0.0568 0.0041 0.0037 0.0024 0.0033 0.0028 0.0280 0.0348 0.0140 0.0592 0.0047 0.0042 0.0028 0.0037 0.0033 0.0340 0.0396 0.0170 0.0656 0.0057 0.0051 0.0034 0.0045 0.0040 0.0340 0.0432 0.0170 0.0664 0.0057 0.0051 0.0034 0.0045 0.0040 0.0352 0.0460 0.0176 0.0680 0.0059 0.0053 0.0035 0.0047 0.0041 0.0428 0.0496 0.0214 0.0912 0.0071 0.0064 0.0043 0.0057 0.0050 0.0488 0.0556 0.0244 0.0936 0.0081 0.0073 0.0049 0.0065 0.0057 0.0524 0.0596 0.0262 0.1112 0.0087 0.0079 0.0052 0.0070 0.0061] R=sulv(:,1:9);C=nondu(:,1:9); %实验数据 %使用lsqnonlin()进行参数估计 [a,resnorm,residual ,exitflag,output,lambda,jacobian]=lsqnonlin(@objfun,a0,lb,ub,R,C); ci=nlparci(a,residual,jacobian); function f=objfun(a) global R C f=R-r(a,C) function rr=r(a,C) rr=... [(-a(15).*(C(1).^a(1)).*C(2).^a(2)-a(16).*(C(1).^a(3)).*C(2).^a(4)-a(17).*(C(1).^a(5)).*C(4).^a(6)-a(18).*(C(1).^a(7)).*C(4).^a(8)) (-a(15).*(C(1).^a(1)).*C(2).^a(2)-a(16).*(C(1).^a(3)).*C(2).^a(4)-a(17).*(C(1).^a(5)).*C(4).^a(6)-a(19).*(C(3).^a(9)).*C(2).^a(10)-a(21).*(C(3).^a(13)).*C(2).^a(14)) (+a(15).*(C(1).^a(1)).*C(2).^a(2)-a(19).*(C(3).^a(9)).*C(2).^a(10)-a(20).*(C(3).^a(11)).*C(4).^a(12)-a(21).*(C(3).^a(13)).*C(2).^a(14)) (+a(15).*(C(1).^a(1)).*C(2).^a(2)+a(18).*(C(1).^a(7)).*C(4).^a(8)-a(17).*(C(1).^a(5)).*C(4).^a(6)+a(19).*(C(3).^a(9)).*C(2).^a(10)-a(20).*(C(3).^a(11)).*C(4).^a(12)) (+a(16).*(C(1).^a(3)).*C(2).^a(4)+a(20).*(C(3).^a(11)).*C(4).^a(12)) (+a(18).*(C(1).^a(7)).*C(4).^a(8)) (+a(17).*(C(1).^a(5)).*C(4).^a(6)) (+a(19).*(C(3).^a(9)).*C(2).^a(10)) (+a(21).*(C(3).^a(13)).*C(2).^a(14))] Warning: Struct field assignment overwrites a value with class "double". See MATLAB R14SP2 Release Notes, Assigning Nonstructure Variables As Structures Displays Warning, for details. > In createOptionFeedback at 34 In prepareOptionsForSolver at 31 In lsqnonlin at 168 In Akinetics at 34 Error using Akinetics>objfun Too many input arguments. Error in lsqnonlin (line 194) initVals.F = feval(funfcn{3},xCurrent,varargin{:}); Error in Akinetics (line 34) [a,resnorm,residual ,exitflag,output,lambda,jacobian]=lsqnonlin(@objfun,a0,lb,ub,R,C); Caused by: Failure in initial user-supplied objective function evaluation. LSQNONLIN cannot continue. 求指导,程序哪里出错了,或者求大神重新赐予我新的程序,感觉我的程序拟合不出这么多的参数,21个参数。非常感谢。 动力学模型是: R(1)=(-a(15).*(C(1).^a(1)).*C(2).^a(2)-a(16).*(C(1).^a(3)).*C(2).^a(4)-a(17).*(C(1).^a(5)).*C(4).^a(6)-a(18).*(C(1).^a(7)).*C(4).^a(8)) R(2)=(-a(15).*(C(1).^a(1)).*C(2).^a(2)-a(16).*(C(1).^a(3)).*C(2).^a(4)-a(17).*(C(1).^a(5)).*C(4).^a(6)-a(19).*(C(3).^a(9)).*C(2).^a(10)-a(21).*(C(3).^a(13)).*C(2).^a(14)) R(3)= (+a(15).*(C(1).^a(1)).*C(2).^a(2)-a(19).*(C(3).^a(9)).*C(2).^a(10)-a(20).*(C(3).^a(11)).*C(4).^a(12)-a(21).*(C(3).^a(13)).*C(2).^a(14)) R(4)=(+a(15).*(C(1).^a(1)).*C(2).^a(2)+a(18).*(C(1).^a(7)).*C(4).^a(8)-a(17).*(C(1).^a(5)).*C(4).^a(6)+a(19).*(C(3).^a(9)).*C(2).^a(10)-a(20).*(C(3).^a(11)).*C(4).^a(12)) R(5)=(+a(16).*(C(1).^a(3)).*C(2).^a(4)+a(20).*(C(3).^a(11)).*C(4).^a(12)) R(6)= (+a(18).*(C(1).^a(7)).*C(4).^a(8)) R(7)= (+a(17).*(C(1).^a(5)).*C(4).^a(6)) R(8)= (+a(19).*(C(3).^a(9)).*C(2).^a(10)) R(9)= (+a(21).*(C(3).^a(13)).*C(2).^a(14))] |
» 猜你喜欢
311求调剂
已经有9人回复
302求调剂
已经有4人回复
被我言中:新模板不强调格式了,假专家开始管格式了
已经有4人回复
303求调剂
已经有5人回复
考研求调剂
已经有4人回复
085601专硕,总分342求调剂,地区不限
已经有4人回复
085601材料工程专硕求调剂
已经有5人回复
一志愿天津大学化学工艺专业(081702)315分求调剂
已经有6人回复
能源材料化学课题组招收硕士研究生8-10名
已经有6人回复
296求调剂
已经有5人回复













回复此楼
20