著者の対談です。アレクサンドル・スミルノフ - ページ 35

 

また、init()関数で二次関数の重みの配列を計算すれば、まったくいい結果が得られます。また、IndicatorCounted()を使用して計算を最適化することができます。まあ、期間が長いと最初の数秒はハングするので、なんとも...。

 
Mathemat:

また、init()関数で二次関数の重みの配列を計算すると、全くいい結果が得られないことがあります。また、IndicatorCounted()を使用して計算を最適化することができます。まあ、期間が長いと最初の数秒はハングするので、なんとも...。

試してみました。用意された配列を使って、普通の魔法使いのようなスピードで移動回帰を計算します。
唯一の不都合は、配列がA[][20]次元であることが判明したことです(isiには構造体が存在しません)。
で、BESM-3のようにセルのアドレスを数字で覚えておく必要があります)))
 
Mathemat:

だから、長時間の使用時に最初の数秒間はハングアップしてしまうので、なんとも......。

最初の計算で顕著な遅れが出ることはないはずです。しかし、今のように、まず発信値を計算し(覚えていても意味がないようです)、次に縮小和を計算し、その新しい値を再帰的に計算し、最後に受信値を足せばいいのではないでしょうか。これらはすべて、3つの和(適切な和、1次および2次導関数)に対するものです。わずかな期間、必要な和だけを完全に計算することが、演算回数でいえば、かなり可能です。
一般に、このような極端な強制は、テスターでの最適化を前提にしたアルゴリズムの場合のみ正当化される、と私は考えています。
 
面白いのは、多項式の次数に関係なく、計算時間がほぼ同じになることです(重みの配列をあらかじめ用意しておけば)。
 
私の作品を掘り出した - 多項式マッシュ
ファイル:
 
説明するのは難しいですか、ディミトリ さん、特にパラメータの意味について。職人の技は、控えめに言っても、非常に高いクオリティを誇っています。
 

大変なんですよ:-)

多項式:K0*X^0+K1*X^1+K2*X^2+K3*X^3...、K個の係数はK="1/5/6/1/20" (K0=1, K2=5...) で定義されています。引数XがArgumentMinからArgumentMaxの範囲で変化し、ControlMode=trueで見ることができる何らかの曲率が得られ、この曲率を滑り用の係数として使用する。

このポルニモードではなかなか思うようなカーブ形状にならないので、スプラインにした方が面白そうですね。

 
カーブは、ウェービングマシンのk型の重み関数のようなものでしょうか?
 
Mathemat:
カーブは、ウェービングマシンのk型の重み関数のようなものでしょうか?

はい、そうです。
 

MNCを用いて構築した3次多項式のエッジ値(X 1、右辺)、系列の7点に対して、(X 7*(-2)+X 6*(4)+X 5*(1)+X 4*(-4)+X 3*(-4)+X 2*(8)+X 1*(39) )/42 .確認する行は、0, 1, 8, 27, 64, 125, 216で、最初の6つの数字を式に代入すると、3次多項式は立方体からなる級数を揃えるので、結果は216になるはずである。出典:Kendall M、Stewart A.


ところで、7点に対して同じ三次多項式でも、中間点に対してMNCによる値の推定値を与える、つまり

X 4については、( X 7*(-2)+X 6*(3)+X 5*(6)+X 4*(7)+X 3*(6)+X 2*(3)+X 1*(-2))/21となります。

X3については、( X 7*(1)+X 6*(-4)+X 5*(2)+X 4*(12)+X 3*(19)+X 2*(16)+X 1*(-4) )/42となります。

X2については、( X 7*(4)+X 6*(-7)+X 5*(-4)+X 4*(6)+X 3*(16)+X 2*(19)+X 1*(8) )/42となります。


一般にこれらは補間式なので、例えばX 0まで、つまり既存の系列を超えて未来に外挿するためには、式の中の他の係数を探す必要があるのです。