clear; // *** 近似する元の関数 *** function y = f(x) // y = 2 .* exp(x - 1) - 1 y = 2 ./ (1 + 9 .* x .^ 2) - 1 endfunction // *** データ点 *** N = 10; // データ数 Xn = linspace(-1, 1, N + 1); // xのデータ点 Fn = f(Xn); // yのデータ点 X = linspace(-1, 1, 100); // プロット用のx // *** スプライン補間 *** Pn = interp1(Xn,Fn,X,'spline'); // *** グラフのプロット *** subplot(2,1,1); plot(X, f(X)); plot(X, Pn, '--k'); plot(Xn, Fn, 'sr'); // *** 誤差のプロット *** subplot(2,1,2); plot(X, Pn - f(X));