function [k_est] = fit_Rap1_2param()

    param = [0.05, NaN, 1.5, NaN]; % [k1, k2, k3, k4]の順に(k2, k4は後で変えるので、仮にNaNを代入)
    y0 = [1, 0, 0.005, 0]; % [S, GEFa, GAPa, Rap1a]
    
    load('data_Rap1_2para.mat'); % x: Rap1aのデータ、t:時間
    
    %% k4を振って、残差2乗和(RSS)が最小となるときのk2, k4を求める
    k2 = 0.1:0.05:3;  % k2の候補。0.1から3まで0.05刻み。実行確認のときは 0.1:0.2:3でも良い。
    k4 = 0.1:0.05:3;  % k4の候補。0.1から3まで0.05刻み。実行確認のときは0.1:0.2:3でも良い。
    
    [x_Rap1_RSS] = landscape_Rap1_2param(k2, k4, t, x, param, y0); % t及びxはデータ点の時間とRap1aの波形
    
    % RSSの最小値をみつける。そのときの行と列を保存する。
    [RSS_min_row, idk2_minRSS_vec] = min(x_Rap1_RSS);
    [RSS_min, idk4_minRSS] = min(RSS_min_row);
    idk2_minRSS = idk2_minRSS_vec(idk4_minRSS);
    
    k2_est = k2(idk2_minRSS); % RSSが最小となるときのk2を代入
    k4_est = k4(idk4_minRSS); % RSSが最小となるときのk4を代入
    k_est = [k2_est, k4_est];  %RSSが最小となるk2とk4
    
    %% 上で求めた残差2乗和(RSS)が最小となるときのk2, k4を代入し、シミュレーション
    temp_param = 　　　　;
    　　　　　　　　　　　　;
    　　　　　　　　　　　　;
    [t_sim, timeCourse_sim] = ode15s(@(t, y) ODE(t, y, temp_param), t, y0);
    
    %% 描画
    figure
    %% 時間波形
    subplot(1, 3, 1)
    plot(t, x, 'bo'); % データ点
    hold on
    plot(t_sim, timeCourse_sim(:, 4), 'r-'); % シミュレーション
    title('データとODEの出力');
    xlabel('時間');
    ylabel('Rap1a');
    %% RSSとk2の関係
    subplot(1, 3, 2);
    plot(　　　　　　　　　　　　, 'b-'); % k2 vs RSS, k4は最適解
    hold on
    plot(k2_est, RSS_min, 'ro');
    title('評価関数の景観');
    xlabel('k2');
    ylabel('残差二乗和');
    xlim([0,3]) %x軸の範囲を指定
    ylim([0,1]) %y軸の範囲を指定
    %% RSSとk4の関係
    subplot(1, 3, 3);
    plot(　　　　　　　　　　　　, 'b-'); % k4 vs RSS, k2は最適解
    hold on
    plot(k4_est, RSS_min, 'ro');
    title('評価関数の景観');
    xlabel('k4');
    ylabel('残差二乗和');
    xlim([0,3]) %x軸の範囲を指定
    ylim([0,1]) %y軸の範囲を指定
end

function [x_Rap1_RSS] = landscape_Rap1_2param(k2, k4, SamplingTime, x_Rap1, param, y0)
    
x_Rap1_RSS = zeros(length(k2), length(k4));   % 結果のRSSは行列として保存する。
disp('k2') % disp(X): command windowにXを表示
for r = 1:length(k2)
    disp(k2(r))
    for c = 1:length(k4)
        　　　　　　　　　　　　; % 変えているパラメータは？
        　　　　　　　　　　　　; % 変えているパラメータは？
        [~, tc] = ode15s(@(t, y) ODE(t, y, param), SamplingTime, y0);
        vary_x_Rap1 = tc(:, 4);
        x_Rap1_Residual = 　　　　　　　　;
        x_Rap1_RSS(r,c) = 　　　　　　　　;
    end
end

end

function dydt = ODE(t, y, param)
    % ここにモデルをコピー
　　　　　　　　　　　　
end

