私が持っているデータ セットに MATLAB の曲線を当てはめようとしていて、最小二乗最小化を取得しようとしています。曲線はガウス関数と指数関数の畳み込みであるため、for ループを使用しました。曲線には 5 つの変数があります。
clip = 8192;
marker=(1:8192);
ti=(1:8192);
counts=counts(1:8192);
sigma=125;
lambda=0.00028;
b=0.69;
a=8;
t0=850;
clear Z;
Z(1:clip,1:clip)=zeros;
marker1=marker;
marker1(1:t0)=0;
Z(ti,marker1);
for i=t0:clip;
Z(:,i)=(exp(-lambda*ti(:))).*(exp(-(power((marker1(i)-ti(:)),2)/(2*sigma*sigma))));
end
est=sum(Z,2);
est=b*est+a;
%chi squared calculation:
delta = counts - est;
error = est.^(1/2);
u=(delta./error).^2;
chi2=sum(u);
chi2red=chi2/(8192-5-1)
counts は、私が入力した唯一のデータです。
この曲線を最小化して変数 (a、b、sigma、t0、lambda) が可能な限り最適に適合する関数を見つけるのに苦労しています。可能な限りカウントします。どんな助けでも大歓迎です!