24小时热门版块排行榜    

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

zhaoshazhu

新虫 (小有名气)

[求助] 求Matlab高手指导 已有1人参与

Matlab运算结果的置信区间很大,和什么有关系呢?
function KineticsEst6
clear all
clc
tspan = [0 662.25];
k0 = [0.4587 0.4971  10  12 6 8 205 0.5653];   
lb = [0  0  0  0  0 0 0];
ub = [50  50  100  100 50 50 1000 50];

P0 =[0.04020         4.02010         0.18794         0        0;
     0.02228         4.45682         0.10418         0        0;
     0.01541         4.62428         0.07206         0        0;
     0.01336         4.67446         0.06244         0        0;
     0.04020         4.02010         0.18794         0        0;
     0.04020         4.02010         0.18794         0        0;
     0.04020         4.02010         0.18794         0        0
];  % 初始分压,MPa

Pi=[0.01303         4.00374         0.96404         0.007095         0.012097;
    0.00393         4.44636         0.53626         0.074475         0.005998;
    0.00127         4.61707         0.37150         0.070931         0.003074;
    0.00090         4.66795         0.32206         0.066794         0.002414;
    0.00243         4.00519         0.96961         0.158768         0.006883;
    0.00681         4.00390         0.96766         0.117792         0.009855;
    0.01303         4.00374         0.96404         0.070945         0.012097
];
% 经过Wc/F0后,各物质分压,MPa

% 使用函数lsqnonlin()进行参数估计
options=optimset('MaxFunEvals',1000000,'MaxIter',400000)
[k,resnorm,residual,exitflag,output,lambda,jacobian] = lsqnonlin(@ObjFunc,k0,lb,ub,[],P0,Pi);      
ci = nlparci(k,residual,jacobian);
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n')
fprintf('\tk1 = %.4f ± %.4f\n',k(1),ci(1,2)-k(1))
fprintf('\tk2 = %.4f ± %.4f\n',k(2),ci(2,2)-k(2))
fprintf('\tk3 = %.4f ± %.4f\n',k(3),ci(3,2)-k(3))
fprintf('\tk4 = %.4f ± %.4f\n',k(4),ci(4,2)-k(4))
fprintf('\tk5 = %.4f ± %.4f\n',k(5),ci(5,2)-k(5))
fprintf('\tk6 = %.4f ± %.4f\n',k(6),ci(6,2)-k(6))
fprintf('\tk7 = %.4f ± %.4f\n',k(7),ci(7,2)-k(7))
fprintf('\tk8 = %.4f ± %.4f\n',k(8),ci(8,2)-k(8))
% ------------------------------------------------------------------
function f = ObjFunc(k,P0,Pi)           % 目标函数
[m,n] = size(P0);
Pcal = zeros(m,n);
tspan =[0 662.25];         % 即Wc/F0,g.h/mol
for i = 1:m
[t PP] = ode45(@Euqations,tspan,P0(i,,[],k);
Pcal(i, = PP(end,;
end
f= Pcal-Pi;

% ------------------------------------------------------------------
function dPdt = Euqations(t, P, k)        % here t = Wc / F0
denom = 1+k(3)*P(1)+k(5)*P(4)+k(5)*P(3)+k(6)*P(5);               % k(3) = KDMM, k(4) = KME ,k(5)=KHPM,k(6)=KPDO,k(7)=Kp1,k(8)=Kp2
theA =k(3)*P(1)*P(2)*(1-P(4)*P(3)/k(7)*P(1)*P(2)^2) / denom;
theB =k(5)* P(4)*P(2)*(1-P(5)*P(3)/k(8)*P(4)*P(2)^2)/ denom;
r1 = k(1)*theA;
r2 = k(2)*theB;

dPDMMdt = -r1;
dPHdt = -2*r1-2*r2;
dPMEdt = r1+r2;
dPHPMdt = r1-r2;
dPPDOdt = r2;

dPdt = [dPDMMdt;dPHdt;dPMEdt;dPHPMdt;dPPDOdt];
使用函数lsqnonlin()估计得到的参数值为:
        k1 = 0.4599 ± 89509.6910
        k2 = 0.4971 ± 101889.0949
        k3 = 10.0001 ± 1946900.8019
        k4 = 12.0000 ± 8639183.4320
        k5 = 5.9997 ± 420897.9438
        k6 = 7.9999 ± 2837488.5903
        k7 = 205.0000 ± 1472315356.6507
        k8 = 0.5653 ± 3696268.6136
结果和我设的初值一样,是不是就没有计算程序。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhaoshazhu

新虫 (小有名气)

引用回帖:
3楼: Originally posted by 月只蓝 at 2014-10-24 16:27:49
楼上说初值给得不好是因为 MATLAB 的lsqnonlin 对初值的依赖性很大

您可以帮我设计一下吗,因为我不是搞模拟的,这只是我论文中的一部分,我是初学者有点不入门。程序里需要加一些残差平方和,相关系数或者其他的,您可以帮我吗?谢谢了
4楼2014-10-24 21:14:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

月只蓝

主管区长 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
这算是很普遍的问题了,初值给得不好。建议添加相关系数或者决定系数定量地考察拟合效果,只看输出的参数数值没什么意义。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2014-10-24 16:25:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

楼上说初值给得不好是因为 MATLAB 的lsqnonlin 对初值的依赖性很大
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
3楼2014-10-24 16:27:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhaoshazhu

新虫 (小有名气)

引用回帖:
2楼: Originally posted by 月只蓝 at 2014-10-24 16:25:38
这算是很普遍的问题了,初值给得不好。建议添加相关系数或者决定系数定量地考察拟合效果,只看输出的参数数值没什么意义。

我现在改初值就会运行的特别慢,计算不出结果,是因为我的程序写的不对吗?您可以帮我看一下吗,我是初学者,对Matlab不怎么入门,帮我在程序中相应的残差平方和,残差,相关系数吧。。。谢谢啦
5楼2014-10-24 21:17:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[公派出国] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 PbwVEMK5haaE 2026-08-25 5/250 2026-08-26 05:09 by cNXvBfCpiZOM
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 Qj98d49dHFb9 2026-08-25 5/250 2026-08-26 04:57 by cNXvBfCpiZOM
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 7K1CJE38xLG4 2026-08-25 4/200 2026-08-26 02:04 by cNXvBfCpiZOM
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 7K1CJE38xLG4 2026-08-25 4/200 2026-08-26 02:04 by cNXvBfCpiZOM
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +17 木水思豆 2026-08-25 20/1000 2026-08-26 01:26 by chengyan1220
[基金申请] 有没有大神帮我看看基金代码 28+4 1234567wang 2026-08-24 10/500 2026-08-25 19:15 by lfy8008
[基金申请] 某些机构,以效率低为荣,以效率低作为存在感 +9 yuleib84 2026-08-25 10/500 2026-08-25 17:14 by alexon
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[基金申请] 没有任何消息-是不是就凉了 +9 图啦图啦 2026-08-24 10/500 2026-08-25 11:59 by 南海小哥
[基金申请] 人气不行了 +11 fansofjerry 2026-08-21 11/550 2026-08-25 11:04 by 孤独的英雄6
[教师之家] 导师吐槽:我怎么摊上了这么个极品研究生! +3 苏东坡二世 2026-08-23 3/150 2026-08-25 10:35 by shisan1313
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +5 process2012 2026-08-23 7/350 2026-08-25 09:42 by huixian257
[基金申请] 范进中举一文的中心思想 +7 炎黄贵胄 2026-08-22 8/400 2026-08-25 08:48 by ZJTJZ
[基金申请] 只有每年这种时候来逛逛小木虫 +25 yaoyewhu2008 2026-08-20 27/1350 2026-08-25 08:01 by Equinoxhua
[基金申请] 能否退出参与的面上项目解除限项 +21 koalala 2026-08-24 24/1200 2026-08-24 19:25 by 家与远方
[基金申请] filecode,4个jtjc了 +14 ziyangfang 2026-08-19 17/850 2026-08-24 18:37 by 哈哈蛤?
[基金申请] 建议基金发布提前给出明确的时间点 +13 kulium 2026-08-21 16/800 2026-08-24 16:27 by superceng
[基金申请] 让我中一个面上吧! +13 大萍1987 2026-08-20 16/800 2026-08-24 10:23 by 太傻了
[基金申请] 时间戳今天,20号变了 +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[基金申请] 时间戳又变了 +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by 紫杉醇
信息提示
请填处理意见