function task3CaProbeCameleonIntermittentPulse()
%Cameleon Ca応答をシミュレート
param = [1.33*10^6,0.33]; %Cameleon 3.6 kf,kbのパラメータ
y0 = [0,1*10^(-6),0];  % A：カルシウム,B：プローブ,AB：複合体の初期濃度(M)

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

t0 = 0;
dt=0.5;%刺激の時間間隔
axis([0, 10*dt, 0, 0.2*10^(-6)]);% x軸(0-10*dt sec)

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

%ラベリング
xlabel('time (sec)');
ylabel('conc. (M)');
legend('Ca','CaProbe','Complex');
hold off;
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
 