我有一个包含一个积分函数的2参数模型,我完全不知道如何解决这个问题。
我的数据由一组给定的分子大小 r_m 和计算得到的响应 K 组成。
理论模型是该分子大小 r_m 的函数,但还涉及吸附材料的孔径分布的高斯分布(为简化起见)的积分。因此它具有以下形式:
r_p 和 s_p 是2个参数。
到目前为止,我已尝试根据以下文章在MATLAB中解决此问题: https://de.mathworks.com/help/optim/examples/nonlinear-data-fitting.html
这是我到目前为止的代码:
Data = ...
[0.5 1
1.1 0.83
1.6 0.74
2.2 0.55
2.5 0.28
3.5 0];
r = Data(:,1);
K_exp = Data(:,2);
F = @(x,xdata) quad( (exp(-1/2.*((xdata - x(1))/x(2)).^2).*(1 - (xdata(1)/xdata).^2)),xdata(1),120)./quad(exp(-1/2.*((xdata - x(1))/x(2)).^2,0,120) ; ;
x0 = [6 0.5] ;
[x,resnorm,~,exitflag,output] = lsqcurvefit(F,x0,r,K_exp)
这种适应是否有意义?我不确定一方面要如何在拟合语法中适当地包含一个积分,另一方面我不知道如何正确地告诉MATLAB分子的积分下限应为分子 r_m 。我正在想象的是 xdata 是某种大小为 r 的向量,如时间链接 t 。但是,积分的下限不是固定的,而是随我要拟合的每个点而变化。
非常感谢您的帮助!