見出し画像

max/msp gen~ ラグランジュ補間多項式_チェビシェフ節点


max/msp gen~でラグランジュ補間多項式_チェビシェフ節点を書いてみました。

補間において振幅が大きくなりすぎたり近似から大きくかけ離れた波形となることをルンゲ現象というらしいです。ルンゲ現象を軽減するためには節点の座標をチェビシェフ節点で決めると良いらしいのでラグランジュ補間多項式をチェビシェフ節点で書いてみました。


以下のように波形を変形できます。

ラグランジュ補間多項式_チェビシェフ節点


以下がgen~の中身です。

画像2


以下がgen~のコードです。


x=in1;
fx1=in2;fx2=in3;fx3=in4;fx4=in5;fx5=in6;fx6=in7;fx7=in8;fx8=in9;
//x1=in10;x2=in11;x3=in12;x4=in13;x5=in14;x6=in15;x7=in16;x8=in17;
x1=0.0;x2=0.842652;x3=2.222149;x4=4.0245452;x5=5.975452;x6=7.7777851;x7=9.157348;x8=10.0;


L0=(x-x2)*(x-x3)*(x-x4)*(x-x5)*(x-x6)*(x-x7)*(x-x8)*fx1/((x1-x2)*(x1-x3)*(x1-x4)*(x1-x5)*(x1-x6)*(x1-x7)*(x1-x8));
L1=(x-x1)*(x-x3)*(x-x4)*(x-x5)*(x-x6)*(x-x7)*(x-x8)*fx2/((x2-x1)*(x2-x3)*(x2-x4)*(x2-x5)*(x2-x6)*(x2-x7)*(x2-x8));
L2=(x-x2)*(x-x1)*(x-x4)*(x-x5)*(x-x6)*(x-x7)*(x-x8)*fx3/((x3-x2)*(x3-x1)*(x3-x4)*(x3-x5)*(x3-x6)*(x3-x7)*(x3-x8));
L3=(x-x2)*(x-x3)*(x-x1)*(x-x5)*(x-x6)*(x-x7)*(x-x8)*fx4/((x4-x2)*(x4-x3)*(x4-x1)*(x4-x5)*(x4-x6)*(x4-x7)*(x4-x8));
L4=(x-x2)*(x-x3)*(x-x4)*(x-x1)*(x-x6)*(x-x7)*(x-x8)*fx5/((x5-x2)*(x5-x3)*(x5-x2)*(x5-x1)*(x5-x6)*(x5-x7)*(x5-x8));
L5=(x-x2)*(x-x3)*(x-x4)*(x-x5)*(x-x1)*(x-x7)*(x-x8)*fx6/((x6-x2)*(x6-x3)*(x6-x4)*(x6-x5)*(x6-x1)*(x6-x7)*(x6-x8));
L6=(x-x2)*(x-x3)*(x-x4)*(x-x5)*(x-x6)*(x-x1)*(x-x8)*fx7/((x7-x2)*(x7-x3)*(x7-x4)*(x7-x5)*(x7-x6)*(x7-x1)*(x7-x8));
L7=(x-x2)*(x-x3)*(x-x4)*(x-x5)*(x-x6)*(x-x7)*(x-x1)*fx8/((x8-x2)*(x8-x3)*(x8-x4)*(x8-x5)*(x8-x6)*(x8-x7)*(x8-x1));

out1=L0+L1+L2+L3+L4+L5+L6+L7;
















よろしければサポートお願いします!