24小时热门版块排行榜    

查看: 701  |  回复: 0

898766282

新虫 (正式写手)

[求助] 复杂动力学多参数拟合程序

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))]
回复此楼
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 898766282 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 2026国自然放榜时间 +9 布布和一二 2026-08-08 9/450 2026-08-10 11:22 by xxxx2020
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
[基金申请] 关于代码变化问题,想知道的进来 +15 且听虎啸 2026-08-07 22/1100 2026-08-09 22:13 by 布布和一二
[基金申请] 关于filecode,很负责任的告诉大家 +6 爱看书的可乐 2026-08-08 7/350 2026-08-08 22:13 by a_niu
[考博] 【2027博士申请】纳米药物递送方向 20+3 13586093586 2026-08-03 5/250 2026-08-08 21:54 by 13586093586
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 好奇怪的filecode +3 布布和一二 2026-08-08 4/200 2026-08-08 17:46 by zhanghaozhu
[基金申请] 基金中了 +14 laoda193707 2026-08-06 14/700 2026-08-08 00:23 by 实验小白ha
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 娱乐 +6 Tide man 2026-08-03 6/300 2026-08-07 22:40 by 铁帽子农民
[基金申请] 化学口download_prp&fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
[基金申请] filecode +14 等待解的谜 2026-08-06 19/950 2026-08-07 12:20 by wlwhappy
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
[基金申请] 影响面上的因素 +8 布布和一二 2026-08-05 11/550 2026-08-06 10:41 by 宝贝虫子
[基金申请] 8月时间戳变的,举个手。玩一下,释放压力 +9 archvillain 2026-08-04 11/550 2026-08-05 20:06 by wlwhappy
[基金申请] 纯娱乐,不喜欢勿喷 +7 Tide man 2026-08-04 10/500 2026-08-04 15:10 by loufangrui
[基金申请] 什么时候能放榜呀? +3 Jacob678 2026-08-03 3/150 2026-08-03 16:14 by gltch
信息提示
请填处理意见