// ================================================================== // Lagrange.sci: ラグランジュの補間多項式を求める関数 // ------------------------------------------------------------------ // 引数 x: 補間点のx軸の値の系列 // y: 補間点のy軸の値の系列 // 返り値 f: 補間多項式 // ================================================================== function f = Lagrange(x, y) f = 0; // 多項式fを0で初期化 for i = 1:length(x) // length(x)はxの要素数(補間点の数) xi = [x(1:i-1), x(i+1:$)]; // xiはxからi番目の点を除いたベクトル f = f + poly(xi, 'x') * y(i) / prod( x(i) - xi ); // p.17式(2.11)の各項を順に加える end endfunction