我有一个描述人脑中示踪剂特征的功能
输出c_t
是示踪剂浓度和时间之间的关系。
速率常数K1,k2,k3描述了隔室模型的动力学速率常数
以下是我的功能
function c_t = K3_ErrorEstimates_timescan(t,k3)
K_1 = (k1*k2)/(k2+k3);
K_2 = (k1*k3)/(k2+k3);
DV_free = k1/(k2+k3);
c_t = zeros(size(t));
ind = (t > td) & (t< tmax);
c_t(ind) = conv(((t(ind) - td) ./ (tmax - td) * ...
(a1 + a2 + a3)),(K_1*exp(-(k2+k3)*t(ind)+K_2)),'same');
ind = (xdata >= tmax);
c_t(ind) = conv((a1 * exp(-b1 * (t(ind) - tmax))+ a2 * ...
exp(-b2 * (t(ind) - tmax))) + a3 * ...
exp(-b3 * (t(ind) - tmax)),(K_1*exp(-(k2+k3)*xdata(ind)+K_2)),'same');
axis([0 50 0 1400]);
xlabel('noise');
ylabel('concentration [Mbq]% error');
title('Model :Constrained K2');
end
我想使用内置的matlab优化指令fminsearch和fmincon来优化上述函数的参数K3
请告诉我如何使用fminsearch
和fmincon
估算函数中的参数
k3的初始化值为
k3 =0.07;
其余值将保持不变,值如下
t=0:0.1:60;
td =0.3;
tmax=0.8;
a1=2501;
a2=18500;
a3=65000;
b1=0.5;
b2=0.7;
b3=0.3;
k1=0.014;
k2=0.051;
k3=0.07;