| 查看: 701 | 回复: 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))] |
» 猜你喜欢
应该是93bebmhtak前后十一个字符比较关键
已经有19人回复
2026国自然放榜时间
已经有9人回复
这样的filecode谁见过
已经有22人回复
据悉今年马上要出结果了
已经有6人回复
综述论文作为代表作会不会影响评审专家的印象分?
已经有7人回复
面上项目filecode邪修
已经有7人回复
关于代码变化问题,想知道的进来
已经有22人回复
filecode与中标关系的预测
已经有5人回复
fileCode有新解读?
已经有18人回复
关于filecode,很负责任的告诉大家
已经有7人回复










回复此楼
20