|
|
【答案】应助回帖
感谢参与,应助指数 +1
数据预处理一下,包括插值以及利用插值数据进行求导得到r_RH.我把模型简化了一下,其中有些参数是乘积然后放在一起的,这显然可以作为一个参数来看待。-y'=c1/(c1+c2*c_RH)*c2*c_RH*sqrt(c3*c_ROOH)+c4*c_ROOH.
1.新建parameter_fix函数
function F=parameter_fix(c,xdata)
F=c(1)./(c(1)+c(2)*xdata(1, )*c(2).*xdata(1, .*sqrt(c(3).*xdata(2, )+c(4)*xdata(2, ;
F=-F;
2.数据预处理及参数优化
clear
clc
close all;
t=[0 1 2 3 4 5 6 8 10];
c_RH=[8.32016 7.37673 6.74433 5.92613 5.68806 5.01584 6.09249 5.34827 4.9961];
c_ROOH=[0 0.21115 0.7379 1.10562 1.29586 1.58327 1.36404 1.84065 2.00986];
dt=0.1;
t_x=0:dt:10;
y_RH=interp1([t,10.1],[c_RH,4.9961-(5.34827-4.9961)],[t_x,t_x(size(t_x,2))+dt]);
dy_RH=y_RH(2:size(t_x,2)+1)-y_RH(1:size(t_x,2));
ydata=interp1(t_x,dy_RH,t);
xdata=[c_RH;c_ROOH];
result=lsqcurvefit(@(c,xdata) parameter_fix(c,xdata),[1;1;1;1],xdata,ydata,[-inf;-inf;0;-inf],[inf;inf;inf;inf]); |
|