24小时热门版块排行榜    

查看: 956  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

898766282

新虫 (正式写手)

[求助] matlab 拟合多参数动力学方程 求程序 已有1人参与

模型方程在上传的图片里,求大神、高手帮帮忙,给我一个matlab拟合程序,非常感谢。
下面的是我自己写的,但是求不出,一直出错。
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))]

matlab 拟合多参数动力学方程  求程序
dlxmx.png
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

引用回帖:
3楼: Originally posted by 898766282 at 2015-11-01 19:07:31
这么多的参数,1sOpt 可以求出来吗?1sOpt 都还没接触过呢?...

1stOpt如果都不行的话,Matlab就更困难了。自己先动手试试。
5楼2015-11-01 20:48:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
这种问题建议楼主用1stOpt来求解。
2楼2015-11-01 19:04:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

898766282

新虫 (正式写手)

引用回帖:
2楼: Originally posted by dingd at 2015-11-01 19:04:30
这种问题建议楼主用1stOpt来求解。

这么多的参数,1sOpt 可以求出来吗?1sOpt 都还没接触过呢?
3楼2015-11-01 19:07:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

898766282

新虫 (正式写手)

引用回帖:
2楼: Originally posted by dingd at 2015-11-01 19:04:30
这种问题建议楼主用1stOpt来求解。

求代码
4楼2015-11-01 19:20:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见