フーリエベース仮説 - ページ 9

 
grasn писал(а)>>

線形代数の専門家ではありませんが、より高速なアルゴリズムの記述を見たことがあります。ちなみに、もし持っている人がいたら、Urainに 渡すと、計算のスピードという意味で、さらに便利なライブラリになると思います。

より高速なアルゴリズムは、ガウス法(適切な修正あり)です。

昨日から線形代数のライブラリを書き始めた(Urainの ライブラリには頼らない)。私のライブラリーは、もっと可能性を秘めています。待っててね。

 
lea писал(а)>>

より高速なアルゴリズムとして、ガウス法(適切な修正を加えたもの)がある。

昨日から線形代数のライブラリを書き始めた(Urainの ライブラリには頼らなかった)。私のライブラリーは、もっと可能性を秘めています。待ってください。

私の言葉が空疎にならないように、私のライブラリのヘッダーファイルを並べてみます。私のライブラリ自体もまだ拡張中で、テスト中です(メイプルで計算を確認しています)。

ファイル:
libmatrix.mqh  18 kb
削除済み  
grasn >> :

線形代数の専門家ではありませんが、より高速なアルゴリズムの記述を見たことがあります。ちなみに、もし持っている人がいたら、Urainに渡してあげると、計算のスピードという意味で、さらに便利なライブラリになると思います。

その(三角形の)対角要素の積が初期行列の行列式となります(このとき、消去の際の行の転置の符号を考慮する必要があります)。その後、部分マイナスと部分行列式を用いて行列全体を逆行列化することができる。canonicalメソッドの10倍の速さで動作します。そして、プログラムの正しさを正準短期アルゴリズムだけでチェックすることが可能です。

C言語による数値計算のレシピ 第2版 (1992).

線形代数方程式の解法

http://www.nrbook.com/a/bookcpdf.php


ちなみに、便利な無料の良書もあります(フーリエのことがほとんどですが)。

2.科学者と技術者のためのディジタル信号処理ガイド
スティーブン・W・スミス(Steven W. Smith)著

http://www.dspguide.com/pdfbook.htm

 
AlexEro >> :

行列を三角形に縮小します。例えば、Jordano-Hauss の消去法では、その(三角形の)対角要素の積が初期行列の行列式になります(消去時に行を並べ替えるときは符号も考慮する必要があります)。その後、部分マイナスと部分行列式を用いて行列全体を逆行列化することができる。canonicalメソッドの10倍の速さで動作します。そして、プログラムの正しさを正準短期アルゴリズムだけでチェックすることが可能です。

C言語による数値計算のレシピ 第2版 (1992).

線形代数方程式の解法

http://www.nrbook.com/a/bookcpdf.php


ちなみに、無料の便利な良書もあります(フーリエのことがほとんどですが)。

2.科学者と技術者のためのディジタル信号処理ガイド
スティーブン・W・スミス(Ph.D.)著

http://www.dspguide.com/pdfbook.htm


実はこの方法は行列式を求める際に実装されているのですが、Conversionのためにもっと速いものはないのでしょうか?

各セルのマイナーを求め、行列式で割る(これは求めるマイナーがN^2であることが判明し、マイナーは1ランク小さい行列式でもある)。

 
Urain писал(а)>>

実はこの方法は行列式を求める際に実装されているのですが、Conversionのためにもっと速いものはないでしょうか?

各セルのマイナー値を求め、行列式で割ります(N^2個のマイナーを求める必要があり、マイナーは1ランク小さい行列式でもあります)。

ガウス法はこれに適応することができる。O(N^3)です。ウィキペディアで「逆行列」を調べてみてください。

削除済み  
Urain >> :

実はこの方法は行列式を求める際に実装されているのですが、Conversionのためにもっと速いものはないでしょうか?

各セルのマイナー値を求め、行列式で割ります(N^2個のマイナーを求める必要があり、マイナーは1ランク小さい行列式でもあります)。

このサイクルはほんの少し時間がかかります。問題は、マイナーを再帰的にカウントすることですよね。各マイナーを再帰ではなく、各(マイナー、プライベート、サブマトリクス)行列をVERで三角形に変換してカウントすることで高速化できます。

削除済み  
grasn >> :

このような行列の行は、基本的に、ある履歴に対するKP係数のダイナミクスである。そして、そのようなシリーズは、不思議なことに、据え置き型であり、多くの利点があるのです。ここでは、例としていくつかのサンプルをご紹介します。

周波数0:

Mathcadeのプログラムありがとうございました。再現してみましたが、あなたの例とは少し異なる挙動をすることがわかりました。予測には、EURUSDの1500本の長さのM15で先週のセクションを取りました。あなたのテストコーナーとほぼ同じに見えます。

しかし、CreateModeMatrix()を使った後では、周波数0では全く違う絵になっています。


他の周波数でもだいたい同じような絵になります。つまり、あなたの例のような大きなピリオドはありません。差し支えなければ、どの選択肢が正しいか、ご意見をお聞かせください。

a) 異なるデータセット - 異なる特性。

b) DWマトリックスの結果の誤認識。

c) プログラムのタイピングエラー

 
equantis >> :

Mathcadeのプログラムありがとうございました。再現してみましたが、あなたの例とは少し異なる挙動をすることがわかりました。予測には、EURUSDの1500本のバーの長さでM15の先週のセクションを取りました。テストコーナーとほぼ同じような感じですね。

しかし、CreateModeMatrix()を使った後では、周波数0では全く違う絵になっています。


他の周波数でもだいたい同じような絵になります。つまり、あなたの例のような大きなピリオドはありません。差し支えなければ、どの選択肢が正しいか、ご意見をお聞かせください。

a) 異なるデータセット - 異なる特性。

b) DWマトリックスの結果の誤認識。

c) プログラムのタイピングエラー


1:1実装?


追記:訂正です。1:1で入力列が引用されると、かなり変なことになります。絵が安定しているならば、もう本当におかしい。

 
Urain >> :

各セルのマイナー値を求め、行列式で割る。 (求めるマイナー値はN^2であり、マイナー値は1ランク小さい行列式でもある)。

もちろん、ゆっくりした方法です。100×100のマトリックスで、よくぞまだ何かを手に入れたものだと思う。

 

念のため、良心の呵責を和らげるために:o)

警告

フーリエ変換の応用という話題を見て、昔、自分が面白がっていたことを思い出し、これは「あってはならないモデルの保存」だろうと思いながら書きました。正直なところ、このモデルを導入することの複雑さと現実的な不可能さを十分に理解し、あきらめました。あくまでもコンセプトの中で、複雑なものをシンプルに壊していくのです。実際には、50、100、あるいはそれ以上の予測を十分な精度で行うことは、控えめに言っても不可能であることが判明しています。自然は、むしろごまかしが効かない、正確には不可能なものなのです。さらに悪いことに、最初の結果(最も精度が高い)ではなく、予測シリーズの最後の結果が必要で、しかもそれは最も精度が 低いだけなのです。そして、シリーズ自体もそう単純なものではありません。その結果、予測を取引に 利用することは事実上不可能である(幸運な一枚絵に注目する必要はない)。


この方向で時間を かける必要があるのかどうか...。解決策は確かに存在するかもしれませんが、市場の相場という特殊性を考慮すると、それを見つけるのは非常に、非常に、非常に、非常に難しいのです。