function task5CaProbeCameleonnContinuousPulse()
%Cameleon3.6とcameleon Nano15を比較
param = [1.33*10^6,0.33]; % Cameleon 3.6:kf,kbのパラメータ
%  param = [2.36*10^7,0.33]; % Cameleon Nano15:kf,kbのパラメータ
y0 = [0,1*10^(-6),0];  % A：カルシウム,B：プローブ,AB：複合体の初期濃度(M)

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

dt=20;%刺激の時間間隔
axis([0, 20*dt, 0, 1*10^(-6)]);% 20*dt

t0 = 0;
for i=0:10
    [t,y] = ode15s(@(t,y) ODE(t,y,param),[t0,t0+dt],y0); %ODEソルバを解く(刺激なし、20秒間）
    plot(t,y(:,1),'b',t,y(:,2),'r',t,y(:,3),'k'); %ODEソルバから返されたベクトルt、yをプロット
    
    t0 = t(end);%ｔの最後の値を次のシミュレーションの初期値に設定し直す
    y0 = y(end,:);%ｙの最後の値を次のシミュレーションの初期値に設定し直す
    y0(1) = 1*10^(-7);%yAの濃度を100nMに設定
%     y0(1) = 5*10^(-9);%Aの濃度を5nMに設定
    
    [t,y] = ode15s(@(t,y) ODE(t,y,param),[t0,t0+dt],y0);%ODEソルバを解く(刺激あり、20秒間）
    plot(t,y(:,1),'b',t,y(:,2),'r',t,y(:,3),'k'); %ODEソルバから返されたベクトルt、yをプロット
    
    t0 = t(end);%ｔの最後の値を次のシミュレーションの初期値に設定し直す
    y0 = y(end,:);%ｙの最後の値を次のシミュレーションの初期値に設定し直す
    y0(1) = **;%Aの濃度を0nMに設定してforループで矩形波にする
end

%ラベリング
xlabel('time (sec)');
ylabel('conc. (M)');
legend('Ca','CaProbe','Complex');
end
 
function dydt = ODE(t,y,param) % ODE(t,y,param)という関数の定義
A = y(1); % A:カルシウムの濃度
B = y(2); % B：プローブの濃度
AB = y(3); % AB：複合体の濃度
 
kf = param(1); % Kfはparamの1番目の値
kb = param(2); % Kbはparamの2番目の値
 
dydt(1,:) = 0; % dydtの1行目(分子A:カルシウム)の式の定義
dydt(2,:) = -kf*A*B+kb*AB; % dydtの2行目(分子B：プローブ)の式の定義
dydt(3,:) = kf*A*B-kb*AB;  % dydtの3行目(分子AB：複合体)の式の定義
end
 



