実行した結果が0,0,.になるというのが再現できません。
下記の通り問題なく実行できているのでコードは正しくできているようです。
t = 0:0.01:1.7;
A = func_RK(t,2.072)
%% ローカル関数
function x = func_RK(t, x0)
% 刻み時間Δtの設定
del_t = t(2) - t(1);
% ベクトル t をコピーして, 漸化式で計算する x を作成
x = t;
% 初期値
x(1) = x0;
% 漸化式
for i = 1:(length(t)-1)
% 式(10.16)
dx0 = func(x(i))*del_t;
% 式(10.17)
dx1 = func(x(i)+dx0/2)*del_t;
% 式(10.18)
dx2 = func(x(i)+dx1/2)*del_t;
% 式(10.19)
dx3 = func(x(i)+dx2)*del_t;
% 式(10.20)
x(i+1) = x(i) + (dx0 + 2*dx1 + 2*dx2 + dx3)/6;
end
end
function f = func(x)
A = 2; B = 1;
% f(x) = dx/dt
f = -A*x + B*x^2;
end