clear; // *** 微分方程式の定義 *** function dx = vanderpol(t,x) mu = 1.0; k = 1.0; f = 2.0; w = 2 * %pi; dx(1) = x(2); dx(2) = mu * (1 - x(1) ^ 2) * x(2) - k * x(1) + f * cos(w * t); endfunction // *** 時間ベクトル *** T = linspace(0,40,800); // *** 微分方程式ソルバ *** x0 = 0.0; v0 = -3.0; X0 = [x0; v0]; // 初期条件 X = ode(X0,0,T,vanderpol); // *** グラフのプロット *** xsetech([0,0,1,0.45]); plot(X(1,:),X(2,:)); xlabel("x"); ylabel("v"); xsetech([0,0.5,1,0.45]); plot(T,X(1,:)); xlabel("t"); ylabel("x");