- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
工程应用数学作业
题目:利用lsqcurvefit与lsqnonlin 两种最优化方法分别通过积分法与微分法来进行动力学方程的估计,并对两种最优化方法进行比较。
微分方程为:
—
积分法
function KineticsEst1_int
% 动力学参数辨识: 用积分法进行反应速率分析得到速率常数k和反应级数n
% Analysis of kinetic rate data by using the integral method
% Reaction of the type -- rate = kCA^order
% order - reaction order
% rate -- reaction rate vector
% CA -- concentration vector for reactant A
% T -- vector of reaction time
% N -- number of data points
% k- reacion rate constant
Lsqnonlin积分法程序如下:
clear all
clc
global CAm
t = [0 20 40 60 120 180 300];
CAm = [10 8 6 5 3 2 1];
% 非线性拟合
beta0 = [0.0053 1.39];
tspan = [0 20 40 60 120 180 300];
CA0 = 10;
[beta,resnorm,resid,exitflag,output,lambda,jacobian] = ...
lsqnonlin(@OptObjFunc,beta0,[],[],[],tspan,CA0,CAm)
ci = nlparci(beta,resid,jacobian)
% 拟合效果图(实验与拟合的比较)
[t4plot CA4plot] = ode45(@KineticsEqs,[tspan(1) tspan(end)],CA0,[],beta);
plot(t,CAm,bo,t4plot,CA4plot,k-)
legend(Exp,Model)
xlabel(时间t, s)
ylabel(浓度C_A, mol/L)
% 残差关于拟合值的残差图
[t CAc] = ode45(@KineticsEqs,tspan,CA0,[],beta);
figure
plot(CAc,resid,*)
xlabel(浓度拟合值(mol/L))
ylabel(残差R (mol/L))
refline(0,0)
% 参数辨识结果
fprintf(Estimated Parameters:\n)
fprintf(\tk = %.4f ± %.4f\n,beta(1),ci(1,2)-beta(1))
fprintf(\tn = %.2f ± %.2f\n,beta(2),ci(2,2)-beta(2))
% ------------------------------------------------------------------
function f = OptObjFunc(beta,tspan,CA0,CAm)
[t CAc] = ode45(@KineticsEqs,tspan,CA0,[],beta);
f = CAc - CAm;
% ------------------------------------------------------------------
function dCAdt = KineticsEqs(t,CA,beta)
dCAdt = -beta(1)*CA^beta(2); % k = beta(1), n = beta(2)
dCAdt = -beta(1)*CA^beta(2); % k = beta(1), n = beta(2)
Optimization terminated: relative function value
changing by less than OPTIONS.TolFun.
beta =
0.0047 1.4555
resnorm =
0.0941
resid =
0
-0.2408
0.1813
0.0303
-0.0169
-0.0435
0.0131
exitflag =
3
output =
firstorderopt: 0.0041
iteratio
文档评论(0)