% ------------------------------------------------------------------
function f = ObjFunc4LNL(k,x0,yexp)
tspan = [t0(1) t0(end)];
[t,xx] = ode45(@KineticEqs,tspan,x0,[],k);
x=spline(t,xx,t0);
f = x - yexp; % 理论值与实验值的差值,残差
end
% ------------------------------------------------------------------
function dXbdt = KineticEqs(t,Xb,k) % 微分方程, k10,E,Ka 对应k(1)、k(2)、k(3)
T=358.15;
m=3;
N0=0.1467;
Cb0=0.5564;
Ca=Cb0*(3-Xb);
Cb=Cb0*(1-Xb);
Cc=Cb0*Xb;
Keq=exp(4873/T-13.813);
Kb=5.2112*k(3);
Kc=2.2695*k(3);
dXbdt = (m*k(1)*exp(-k(2)/8.314*T)*(Ca*Cb-Cc/Keq))/(N0*(1+k(3)*Ca+Kb*Cb+Kc*Cc)^2);
end
% ------------------------------------------------------------------
end