問題タブ [mathnet-numerics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
6360 参照

c# - Math.NET フーリエを機能させる

私は数週間解決策を見つけようとしていますが、このトピックに関連するすべてのスレッドを実際に読んだので、誰かが私を助けてくれることを本当に願っています.

私がやりたいことは、ウェーブファイルを入力として使用し、それをフーリエ変換し、これらの値を取得して別のファイルと比較し、違いを取得することです。

私が長い間取り組んできた課題は、そのフーリエ変換を機能させることです。

妥当な結果が得られる代わりに、NaN 値しか得られません。

次のコードがあります。

4096 は通常、2 のべき乗であるより大きな数値に置き換えられますが、その数値では機能しません。

もう少し詳細な説明: 4096 の値の長さを設定します。これは 2 の係数であり、この長さはテスト目的のみであるため、数百万の値の元のサウンドファイルを使用するよりもチェックが少し速くなります。 ) アルゴリズムが機能することが証明されていない限り、これはこのようなものです。これは、奇妙な for ループの理由でもあります。厳しい Math.Net でも、Bluestein のアルゴリズムを使用して計算します。他のアルゴリズム atm を使用しても機能するはずなので、とにかく 2 の因数で試してみてください。

Float-Decimal 変換のため、その try-catch でエラー メッセージを取得しようとしましたが、何も発生しません。

私の問題は、その fft で 4096 複素数を送信することです。それらはすべて Y=0 ですが、X はオーディオ ファイルに依存します (オーディオ fft には Y 値は必要ないことを別のスレッドで読んでください。 0 に設定する必要があります)。すべての X 値は通常の浮動小数点数であり、NaN ではありません。それでも、FFT は NaN でいっぱいの配列を返すだけです。

最初に System.Numerics.Complex の暗黙的な変換を試みましたが、うまくいきませんでした。

編集:FFTアルゴリズムに関するさらに多くの記事を読むことになりました。今でも、soundvalues als float を取得し、Complex-Array に変換しています。すべての変換ステップを一貫性があるようにチェックしましたが、その領域では問題ありません。だから私の質問は、私が本当にこれを使用するだけでよいかどうかです

または、Math.NET できれいな FFT を実行するためにその前に何かが必要な場合

0 投票する
1 に答える
99 参照

f# - MathNet Numerics を正常にビルドするには、FsUnit.CustomMatchers が必要です。オプションを使い果たしました

単体テスト用の DLL をインストールする必要があるものを使用して、 GitHubMathNet Numericsからの最新バージョンをビルドしようとしています。Visual Studio Community 15MathNet.Numerics.sln

したがって、Visual Studio 内から NuGet を使用すると、以下を正常にインストールできます。

残っている唯一の DLL は

私は見つけることができません。

ヒントは ですが、の下にディレクトリ..\..\packages\test\FsUnit\lib\FsUnit.CustomMatchers.dllがありません。testpackages

これを正しく解決するにはどうすればよいですか?
DLL は必要ですか? 必要な場合はどこにありますか?
手動でコードを修正する必要がありますか?
ヒントを更新する必要がありますか?

TLDR;

欠落している DLL なしでビルドすると、基本的なエラーは次のようになります。

インストールすることで解決できます

と追加

の署名がある

しかし、それは正しい DLL ( Microsoft.VisualStudio.QualityTools.UnitTestFramework.dllvs FsUnit.CustomMatchers) をインストールしないため正しくありません。また、過去の F# ユニット テストの経験から、そのようにすることで誤検知を可能にする字幕があることを認識しています。

編集:

インストールに成功した後、これがどこに文書化されているか知りたいと思いました。

参照: Math.NET 数値の構築

unit tests、ドキュメント、API リファレンス、NuGet および Zip パッケージを含む完全に自動化されたビルドは、FAKE を使用しています。

0 投票する
1 に答える
369 参照

c# - MathNet.Symbolics Evaluate関数で倍精度を設定するには?

私には、Dictionary<string, double> values値の精度が重要です。Infix が解析できる文字列 Formula があります。私はこのようなことをする方法を疑問に思います:

倍精度で結果を取得するには?

0 投票する
1 に答える
143 参照

c# - c#のMathNet.SymbolicsのMathMLはどこにありますか?

これはF# の場合です。ここに UnitTests があります。そのため、少なくとも F# ディストリビューション、したがって .net dll にある必要があります。それでも、アセンブリエクスプローラーには表示されません ここに画像の説明を入力

CSharp で MathNet.Symbolics MathML クラスを使用するには?

0 投票する
1 に答える
771 参照

matrix - F# 関数は引数が多すぎるか、予期しないコンテキストで使用されています

コスト関数を実装しようとしていますが、現在持っています

何らかの理由で、最初の * の後の半分で、「この関数は引数が多すぎるか、関数が予期されていないコンテキストで使用されています」というエラーが表示されます。

しかし、私がこれを行うとき

それは完全に正常に機能し、それval J:floatが私が期待していることだと言っています。しかし、その部分である 2 番目のピースを追加するとすぐに(1.0/(2.0*m))、エラーが発生します。私はすべてを括弧で囲んでいるので、部分的な関数が適用されたり、それらの線に沿って何かがどのように適用されるのかわかりません。私はそれがばかげていると確信していますが、私はそれを理解できないようです。

0 投票する
1 に答える
363 参照

c# - MathNet.Numerics 名前空間のベクトルの長さを問い合わせる

MathNet.Numerics 名前空間の Vector データ構造のベクトル (または行列) の次元を見つける方法はありますか? の線に沿った何か

0 投票する
1 に答える
1232 参照

c# - Math.Net Numerics ライブラリの転置が機能しない

だから、私が定義した行列を転置したい

だから私が得る結果は、転置ではない非常に奇妙な行列です。これはマトリックスが DenseColumnMajor と定義されているためだと思いますが、どうすれば変更できますか?

したがって、次のような 3 x 2 の行列があります。

私の望む結果は次のとおりです。

0 投票する
2 に答える
866 参照

c# - 2D 配列 - ネストされた配列初期化子が必要です。C#

行列計算にMathNet.Numericsパッケージを使用しています。

行列の宣言と初期化の場合、予想されるコードは次のとおりです。

私自身のコードでは、3 つの 1 次元配列 (xPointsSquared、yPoints、one) があります。

この次の方法でマトリックスを初期化しようとすると、「ネストされた配列初期化子が必要です」というエラーが表示されます。

0 投票する
0 に答える
109 参照

c# - MathNet - マトリックスが間違った係数を多項式のベスト フィットに返す - C#

MathNet 行列計算を使用して、2 次多項式の係数を計算しました。

However, the coefficients created by this does not give the accurate curve. It creates a line that nowhere runs along the scatterplot of the data points.

I suspect this is because of the functions using double as opposed to decimal. Can anyone please help me get around this?