function task6CaProbeCameleonnCompetitiveInhibition()
param = [1.33*10^6,0.33,15*10^7,23]; % kf0,kb0,kf1,kb1のパラメータ ,kf0,kb0はcameleon3.6を仮定、kf1,kb1はfura2を仮定
End=zeros(21,2);%平衡状態になった時のカルシウム濃度と複合体濃度を格納する行列をつくる

figure;%フィギュアを作成
hold on;%フィギュアを上書きする

t0 = 0:0.001:10;%0から10秒まで0.01秒刻み
dt=5;%刺激の時間間隔
axis([0, 5, 0, 1.2*10^(-4)]);% x軸：0-5秒、y軸：0-0．12mMまで表示

for i=0:1:20
    y0 = [0.2*10^(-4)*i,1*10^(-4),1*10^(-4),0,0]; % A,B,Z,AB,ZAの初期濃度(M)(+プローブ）
     y0 = [0.2*10^(-4)*i,0,1*10^(-4),0,0]; % A,B,Z,AB,ZAの初期濃度(M)(-プローブ）
    
    [t,y] = ode15s(@(t,y) ODE(t,y,param),t0,y0);%ODEソルバを解く
    plot(t,y(:,1),'b',t,y(:,2),'r',t,y(:,3),'c',t,y(:,4),'k',t,y(:,5),'g'); %ODEソルバから返されたベクトルt、yをプロット
    
    End(i+1,1)=y0(1);%y0(1),つまり入力したカルシウムの濃度をEnd(i+1,1)に格納
    End(i+1,2)=y(end,5);%y(end,5),つまりカルシウム-蛋白質複合体の濃度をEnd(i+1,2)に格納
end

%ラベリング
xlabel('time (sec)');
ylabel('conc. (M)');
legend('Ca','Probe','Protein','CaProbeComplex','CaProteinComplex');
hold off;%1つ目のフィギュアの重ね書き終了

figure;%2つ目のフィギュアをつくる
hold on;%フィギュアを上書きする
plot(End(:,1),End(:,2));%x軸：入力カルシウム濃度、y軸複合体濃度のグラフをプロットする
axis([0, 4*10^(-4),0,1.2*10^(-4)]);%x軸：0-0.4mM y軸:0-0.12mMまで表示
xlabel('input CaConc.');
ylabel('CaProteinComplex');
legend('CaProteinComplex');
end
 
function dydt = ODE(t,y,param) % ODE(t,y,param)という関数の定義
A = y(1); % A:カルシウムの濃度
B = y(2); % B：プローブの濃度
Z = y(3); % Z:蛋白質の濃度
AB = y(4); % AB：カルシウム・プローブ複合体の濃度
AZ = y(5); % AZ:カルシウム・蛋白質複合体の濃度
kf0 = param(1); % kf0はparamの1番目の値
kb0 = param(2); % kb0はparamの2番目の値
kf1 = param(3); % kf1はparamの3番目の値
kb1 = param(4); % kb1はparamの4番目の値

dydt(1,:) = **; % dydtの1行目(分子A:カルシウム)の式の定義
dydt(2,:) = **; % dydtの2行目(分子B：プローブ)の式の定義
dydt(3,:) = **; % dydtの4行目(分子Z:蛋白質)の式の定義
dydt(4,:) = **; % dydtの3行目(分子AB：カルシウム・プローブ複合体)の式の定義
dydt(5,:) = **; % dydtの5行目(分子AZ：蛋白質・プローブ複合体)の式の定義
end