// -------------------------------------------------------------------------- // シューティング法により境界値問題の例題を解くスクリプト // -------------------------------------------------------------------------- clear; // 定義済みの変数の消去 exec('f.sci') // 例題の微分方程式の関数定義の読み込み x = 0:0.001:1; // x軸の刻み n = length(x); // x軸の刻みの数 a = 0; b = 1; // 区間[a,b]=[0,1] ya = 2; yb = 5/3; // x=a,bにおける境界条件 z0 = [ya,0,0,1]'; // 微分方程式の解の初期値 z = ode(z0, a, x, f); // ode関数を利用 y = z(1,:) + (yb - z(1,n)) * z(3,:)./ z(3,n); // 結果: y(x) = u(x)+(yb-u(b))/v(b)*v(x) plot2d(x,y); xgrid; // グラフの表示,グリッド表示