私は関数を持っています.3つの指数の合計です:
F = f1*exp1 + f2*exp2 + f3*exp3
まさに:
F=1-((1-f(2)-f(3)).*(exp(-abs(data)./a(1)))+((1-f(1)-f(3)).*(exp(-abs(data)./a(2))))+((1-f(1)-f(2)).*(exp(-abs(data)./a(3)))));
ここで、f1、f2、f3 は分数で、各 exp には 1 つのパラメーターがあり、a1、a2、a3 と呼びます。
したがって、この関数を実験データに当てはめると、6 つのパラメーター (f1、f2、f3、a1、a2、a3) が得られます。
ご了承ください
a1 > a2 > a3
と
f1 + f2 + f3 = 1
フィッティングは、いくつかのタイムラグ (t1、t2、t3 と呼ぶ) に対して行われます。したがって、タイムラグごとに、6 つのパラメーターのセットが 1 つあります。
パラメータ a1、a2、および a3 はタイムラグとともに直線的に増加します (a1(t1) < a1(t2) < a1(t3)... など)。分数は各タイムラグで同じです。
私が必要とするのは、a1(t)、a2(t)、a3(t)、および分数の勾配です。問題は、タイムラグごとに関数をフィッティングしているときに、a1 と a2 が順調に上昇している (完全な線形適合) が、a3 が下降しているという状況がよくあることです。また、分数にも問題があります。f1(t) + f2(t) + f3(t) を加算すると 1 に等しくならないため、各分数の平均を取ることができません。
「一度に」すべてを合わせる(簡単な)方法はありますか?どうやってするか?ありがとう!